/** * Consent-Text-Versionierung — Art. 9 DSGVO (Gesundheitsdaten / Mail-Auto-Delete) * * WORKFLOW: * 1. Hans-Müller (DSB) gibt neuen Text frei. * 2. Neue Version hier eintragen, CURRENT_ART9_MAIL_VERSION bumpen. * 3. Nach Migration: alle MailConnection.consentVersion !== CURRENT werden * als "Re-Consent pending" behandelt (consentAt bleibt, aber Daemon pausiert). * 4. Frontend zeigt Re-Consent-Modal beim App-Open (UI-Agent-Task). * * WICHTIG: Texts sind NICHT für LLM-Prompts — das ist reiner Compliance-Text. * Formulierung liegt bei Hans-Müller (DSB) + Anwalt-Review. * Dieser File ist Backend-Infrastruktur, kein Stil-File. */ export const CURRENT_ART9_MAIL_VERSION = "art9-mail-v1-2026-05-13"; interface ConsentTextEntry { de: string; en: string; } const CONSENT_TEXTS: Record = { "art9-mail-v1-2026-05-13": { de: `Mit der Verbindung meines E-Mail-Postfachs willige ich ausdrücklich ein, dass Rebreak in meinem Postfach gezielt nach Glücksspiel-Werbemails sucht und diese löscht. Mir ist bewusst, dass aus dieser Verarbeitung Rückschlüsse auf eine Suchterkrankung möglich sind, und ich willige in diese Verarbeitung von Gesundheitsdaten gem. Art. 9 Abs. 2 lit. a DSGVO ausdrücklich ein. Diese Einwilligung kann ich jederzeit für die Zukunft widerrufen, indem ich die Mail-Verbindung in den Einstellungen trenne.`, en: `By connecting my email mailbox, I expressly consent to Rebreak searching my mailbox for gambling promotional emails and deleting them. I am aware that this processing may allow inferences about an addiction disorder, and I expressly consent to the processing of health data pursuant to Art. 9(2)(a) GDPR. I may revoke this consent at any time with future effect by disconnecting the mail connection in the settings.`, }, }; /** * Gibt den Consent-Text für eine gegebene Version zurück. * Wirft wenn die Version unbekannt ist — das ist ein Programmierfehler, * kein User-Fehler (Frontend sollte nie eine unbekannte Version schicken). */ export function getConsentText(version: string): ConsentTextEntry { const entry = CONSENT_TEXTS[version]; if (!entry) { throw new Error( `Unknown consent version: "${version}". Known versions: ${Object.keys(CONSENT_TEXTS).join(", ")}`, ); } return entry; } /** * Gibt alle bekannten Consent-Versionen zurück — für interne Konsistenz-Checks. */ export function getKnownConsentVersions(): string[] { return Object.keys(CONSENT_TEXTS); }