-- GlobalMailDisplayName — admin-kuratierte Glücksspiel-Marken für Mail-Display-Name-Matching.
--
-- Analog BlocklistDomain (gleiche Struktur, anderer Zweck):
--   - kein User-Bezug, keine Mail-Inhalte (Art. 5 DSGVO)
--   - source: "seed" (initiale 30 Brands) | "manual" (Admin-App) | "community" (zukünftig)
--
-- Genutzt von: server/db/domains.ts getMailDisplayNamePatterns()
--   → server/utils/mail-classifier.ts (Display-Name-Heuristik, Layer 2.5)
--
-- Backend-Code hatte try/catch-graceful-degradation bis diese Tabelle existiert.
-- Nach Deploy dieser Migration fällt der Code auf den echten Pfad.

CREATE TABLE IF NOT EXISTS "rebreak"."global_mail_display_names" (
    "id"         UUID        NOT NULL DEFAULT gen_random_uuid(),
    "pattern"    TEXT        NOT NULL,
    "is_active"  BOOLEAN     NOT NULL DEFAULT true,
    "source"     TEXT        NOT NULL DEFAULT 'manual',
    "added_at"   TIMESTAMPTZ NOT NULL DEFAULT now(),

    CONSTRAINT "global_mail_display_names_pkey" PRIMARY KEY ("id"),
    CONSTRAINT "global_mail_display_names_pattern_key" UNIQUE ("pattern")
);

-- Seed: 30 initiale Glücksspiel-Brand-Patterns (Mo's Empfehlungsliste, 2026-05-28)
INSERT INTO "rebreak"."global_mail_display_names" ("id", "pattern", "source") VALUES
    (gen_random_uuid(), 'Tipico',       'seed'),
    (gen_random_uuid(), 'Bet365',       'seed'),
    (gen_random_uuid(), 'bwin',         'seed'),
    (gen_random_uuid(), 'Unibet',       'seed'),
    (gen_random_uuid(), 'Betway',       'seed'),
    (gen_random_uuid(), 'PokerStars',   'seed'),
    (gen_random_uuid(), 'Interwetten',  'seed'),
    (gen_random_uuid(), 'LeoVegas',     'seed'),
    (gen_random_uuid(), 'Mr Green',     'seed'),
    (gen_random_uuid(), 'Betsson',      'seed'),
    (gen_random_uuid(), 'Betano',       'seed'),
    (gen_random_uuid(), 'William Hill', 'seed'),
    (gen_random_uuid(), 'Paddy Power',  'seed'),
    (gen_random_uuid(), 'Betfair',      'seed'),
    (gen_random_uuid(), '1xBet',        'seed'),
    (gen_random_uuid(), 'Melbet',       'seed'),
    (gen_random_uuid(), 'Mostbet',      'seed'),
    (gen_random_uuid(), 'NetBet',       'seed'),
    (gen_random_uuid(), 'Lottoland',    'seed'),
    (gen_random_uuid(), 'Neobet',       'seed'),
    (gen_random_uuid(), 'mybet',        'seed'),
    (gen_random_uuid(), 'Wildz',        'seed'),
    (gen_random_uuid(), 'Spinit',       'seed'),
    (gen_random_uuid(), 'Caesars',      'seed'),
    (gen_random_uuid(), 'GambleZen',    'seed'),
    (gen_random_uuid(), 'Rolletto',     'seed'),
    (gen_random_uuid(), 'Vbet',         'seed'),
    (gen_random_uuid(), 'Stake',        'seed'),
    (gen_random_uuid(), '888 Casino',   'seed'),
    (gen_random_uuid(), 'Casinoly',     'seed')
ON CONFLICT ("pattern") DO NOTHING;
