-- Benachrichtigungs-Kanaele: Vorlagen (E-Mail) + In-App-Nachrichten
-- (CFG-03, siehe core-kanban/tickets/CFG-03.md). Beide leben in der
-- Registry-DB, analog zu feature_flags/config_values — modulübergreifende
-- Konfiguration/UI-Zustand, keine Mandanten-Geschaeftsdaten.

-- tenant_slug = 'global' ist der Fallback-Wert, wenn ein Tenant keine
-- eigene Vorlage gesetzt hat (Akzeptanzkriterium 3: Vorlagen pro Tenant
-- anpassbar, mit sinnvollem Default).
CREATE TABLE notification_templates (
    tenant_slug TEXT NOT NULL,
    key         TEXT NOT NULL,
    subject     TEXT NOT NULL,
    body        TEXT NOT NULL,
    updated_at  TIMESTAMPTZ NOT NULL DEFAULT now(),
    PRIMARY KEY (tenant_slug, key)
);

CREATE TABLE in_app_notifications (
    id          UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    tenant_slug TEXT NOT NULL,
    user_id     TEXT NOT NULL,
    title       TEXT NOT NULL,
    body        TEXT NOT NULL,
    read_at     TIMESTAMPTZ,
    created_at  TIMESTAMPTZ NOT NULL DEFAULT now()
);

CREATE INDEX in_app_notifications_user_idx ON in_app_notifications (tenant_slug, user_id, created_at);
