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