-- In-app varslingssenter (FEATURE_BACKLOG.md "Varsler"-runden, 2026-07-25). -- Eid av BRUKER (mottaker), ikke organisasjon -- INGEN RLS, samme -- plain_connection()-mønster som personlig profil/HCP-historikk/venner -- (ADR-033 Beslutning A / ADR-036 Beslutning A). `message` er en FERDIG -- norsk tekst, snapshot-prinsipp (samme som author_display_name i -- meldinger, ADR-025) -- unngår å måtte slå opp relaterte data på nytt ved -- hver lesing, og overlever at den relaterte raden (f.eks. en venneforespørsel) -- senere slettes. CREATE TABLE notification ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), user_id uuid NOT NULL REFERENCES app_user(id) ON DELETE CASCADE, type text NOT NULL CHECK (type IN ('friend', 'tournament', 'round', 'result')), message text NOT NULL, link_path text NOT NULL, created_at timestamptz NOT NULL DEFAULT now(), read_at timestamptz ); CREATE INDEX notification_user_created_idx ON notification (user_id, created_at DESC); CREATE INDEX notification_user_unread_idx ON notification (user_id) WHERE read_at IS NULL; GRANT SELECT, INSERT, UPDATE, DELETE ON notification TO teecup_app;