-- P80: Compliance-Check Snapshots fuer Replay-Mode
--
-- Persistiert die Roh-Daten eines Scans (DSE-Text, Banner-HTML, Cookies,
-- CMP-Vendors, Profile) damit die Audit-Pipeline ohne erneuten Crawl
-- nur die Interpretations-Logik (MC-Scorecard, Mail-Render) neu laufen
-- kann. Test-Cycle 7min -> 5-10sec bei reinen Logik-Aenderungen.

DO $$
BEGIN
    CREATE TABLE IF NOT EXISTS compliance.compliance_check_snapshots (
        id              UUID PRIMARY KEY DEFAULT gen_random_uuid(),
        check_id        VARCHAR(36)  NOT NULL,
        site_domain     VARCHAR(255) NOT NULL,
        site_label      VARCHAR(255),

        -- Roh-Daten als JSONB (alles was sich pro Lauf NICHT aendert)
        doc_entries     JSONB NOT NULL,   -- [{doc_type, url, full_text, cmp_payloads, ...}]
        banner_result   JSONB,            -- {phases, cookies_detailed, cmp_vendors, ...}
        profile         JSONB,            -- {business_type, industry, no_direct_sales, ...}
        scan_context    JSONB,            -- P79: User-Pre-Scan-Felder
        cmp_vendors     JSONB,            -- vendor-list (post-Phase G)

        -- Meta
        created_at      TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
        replay_count    INTEGER          NOT NULL DEFAULT 0,
        last_replay_at  TIMESTAMP WITH TIME ZONE,
        notes           TEXT
    );

    CREATE INDEX IF NOT EXISTS idx_snapshots_check_id
        ON compliance.compliance_check_snapshots(check_id);
    CREATE INDEX IF NOT EXISTS idx_snapshots_domain
        ON compliance.compliance_check_snapshots(site_domain);
    CREATE INDEX IF NOT EXISTS idx_snapshots_created
        ON compliance.compliance_check_snapshots(created_at DESC);

    COMMENT ON TABLE compliance.compliance_check_snapshots IS
        'P80 Replay-Mode: persistierte Roh-Daten eines Scans. Ermoeglicht '
        'Audit-Pipeline ohne erneuten Browser-Crawl neu zu laufen.';
END $$;
