-- Migration: 20260516_domain_submission_type
--
-- Erweitert domain_submissions um das `type`-Feld — spiegelt den Type der
-- zugehörigen user_custom_domains-Row wider.
--
-- Erlaubte Werte:
--   'web'         — Web-Domain-Block (bisheriges Verhalten, Default)
--   'mail_domain' — Sender-Domain-Block im Mail-Filter
--
-- Note: 'mail_display_name' ist v1.0 nicht submittable (Guard in submit.post.ts),
-- daher kein CHECK-Constraint dafür — erleichtert spätere v1.1-Erweiterung.
--
-- Backfill: bestehende Rows erhalten den Type der zugehörigen user_custom_domains-Row.
-- Rows ohne passende CustomDomain (CASCADE-gelöscht) behalten das Default 'web'.

ALTER TABLE rebreak.domain_submissions
    ADD COLUMN IF NOT EXISTS type TEXT NOT NULL DEFAULT 'web';

-- Backfill: JOIN auf user_custom_domains via custom_domain_id
UPDATE rebreak.domain_submissions ds
SET    type = ucd.type
FROM   rebreak.user_custom_domains ucd
WHERE  ds.custom_domain_id = ucd.id
  AND  ds.type = 'web';  -- nur noch nicht gesetzte Rows (idempotent bei Re-Run)

-- Composite-Index für gefilterte Admin-Listen (type + status)
CREATE INDEX IF NOT EXISTS domain_submissions_type_status_idx
    ON rebreak.domain_submissions (type, status);
