-- 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);