/**
 * DSFA Massnahmenbibliothek - Vordefinierte Massnahmen
 *
 * ~50 Massnahmen gegliedert nach SDM-Gewaehrleistungszielen
 * (Vertraulichkeit, Integritaet, Verfuegbarkeit, Datenminimierung,
 * Transparenz, Nichtverkettung, Intervenierbarkeit) sowie
 * Automatisierung/KI, Rechtlich/Organisatorisch.
 *
 * Quellen: Art. 25/32 DSGVO, SDM V2.0, BSI Grundschutz,
 * Baseline-DSFA Katalog
 */

import type { DSFAMitigationType } from './types'
import type { SDMGoal } from './types'

// =============================================================================
// TYPES
// =============================================================================

export interface CatalogMitigation {
  id: string
  type: DSFAMitigationType
  sdmGoals: SDMGoal[]
  title: string
  description: string
  legalBasis: string
  evidenceTypes: string[]
  addressesRiskIds: string[]
  effectiveness: 'low' | 'medium' | 'high'
}

// =============================================================================
// MASSNAHMENBIBLIOTHEK
// =============================================================================

export const MITIGATION_LIBRARY: CatalogMitigation[] = [
  // =========================================================================
  // VERTRAULICHKEIT (Access Control & Encryption)
  // =========================================================================
  {
    id: 'M-ACC-01',
    type: 'technical',
    sdmGoals: ['vertraulichkeit'],
    title: 'Multi-Faktor-Authentifizierung (MFA) & Conditional Access',
    description: 'Einfuehrung von MFA fuer alle Benutzerkonten mit Zugriff auf personenbezogene Daten. Conditional Access Policies beschraenken den Zugriff basierend auf Standort, Geraet und Risikobewertung.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['MFA-Policy-Screenshot', 'Conditional-Access-Regeln', 'Login-Statistiken'],
    addressesRiskIds: ['R-CONF-02', 'R-CONF-06'],
    effectiveness: 'high',
  },
  {
    id: 'M-ACC-02',
    type: 'technical',
    sdmGoals: ['vertraulichkeit'],
    title: 'Passwort-Policy & Credential-Schutz',
    description: 'Durchsetzung starker Passwort-Richtlinien, Credential-Rotation, Einsatz eines Passwort-Managers und Monitoring auf kompromittierte Zugangsdaten (Breach Detection).',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['Passwort-Policy-Dokument', 'Breach-Detection-Report'],
    addressesRiskIds: ['R-CONF-02'],
    effectiveness: 'medium',
  },
  {
    id: 'M-CONF-01',
    type: 'technical',
    sdmGoals: ['vertraulichkeit'],
    title: 'Rollenbasierte Zugriffskontrolle (RBAC) & Least Privilege',
    description: 'Implementierung eines RBAC-Systems mit dem Prinzip der minimalen Berechtigung. Jeder Benutzer erhaelt nur die Rechte, die fuer seine Aufgabe erforderlich sind.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO, Art. 25 Abs. 2 DSGVO',
    evidenceTypes: ['Rollen-Matrix', 'Berechtigungs-Audit-Report', 'Access-Review-Protokoll'],
    addressesRiskIds: ['R-CONF-01', 'R-CONF-03', 'R-INT-04'],
    effectiveness: 'high',
  },
  {
    id: 'M-CONF-02',
    type: 'technical',
    sdmGoals: ['vertraulichkeit'],
    title: 'Security Configuration Management',
    description: 'Regelmaessige Ueberpruefung und Haertung der Systemkonfiguration. Automatisierte Konfigurationschecks (CIS Benchmarks) und Monitoring auf Konfigurationsaenderungen.',
    legalBasis: 'Art. 32 Abs. 1 lit. d DSGVO',
    evidenceTypes: ['CIS-Benchmark-Report', 'Konfigurationsaenderungs-Log'],
    addressesRiskIds: ['R-CONF-01'],
    effectiveness: 'high',
  },
  {
    id: 'M-CONF-03',
    type: 'organizational',
    sdmGoals: ['vertraulichkeit'],
    title: 'Regelmaessige Zugriffsrechte-Ueberpruefung (Access Review)',
    description: 'Quartalsweiser Review aller Zugriffsberechtigungen durch Vorgesetzte. Entzug nicht mehr benoetigter Rechte, Offboarding-Prozess bei Mitarbeiteraustritt.',
    legalBasis: 'Art. 32 Abs. 1 lit. d DSGVO',
    evidenceTypes: ['Access-Review-Protokoll', 'Offboarding-Checkliste'],
    addressesRiskIds: ['R-CONF-01', 'R-CONF-03'],
    effectiveness: 'medium',
  },
  {
    id: 'M-CONF-04',
    type: 'technical',
    sdmGoals: ['vertraulichkeit', 'integritaet'],
    title: 'Privileged Access Management (PAM)',
    description: 'Absicherung administrativer Zugriffe durch Just-in-Time-Elevation, Session-Recording und Break-Glass-Prozeduren fuer Notfallzugriffe.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['PAM-Policy', 'Session-Recording-Logs', 'Break-Glass-Protokolle'],
    addressesRiskIds: ['R-CONF-03', 'R-INT-04'],
    effectiveness: 'high',
  },
  {
    id: 'M-CONF-05',
    type: 'organizational',
    sdmGoals: ['vertraulichkeit'],
    title: 'Vier-Augen-Prinzip fuer sensible Operationen',
    description: 'Fuer den Zugriff auf besonders schutzwuerdige Daten oder kritische Systemoperationen ist die Genehmigung durch eine zweite Person erforderlich.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['Prozessbeschreibung', 'Genehmigungsprotokoll'],
    addressesRiskIds: ['R-CONF-03'],
    effectiveness: 'medium',
  },
  {
    id: 'M-CONF-06',
    type: 'technical',
    sdmGoals: ['vertraulichkeit'],
    title: 'Verschluesselung at-rest und in-transit',
    description: 'Vollstaendige Verschluesselung personenbezogener Daten bei Speicherung (AES-256) und Uebertragung (TLS 1.3). Verwaltung der Schluessel ueber ein zentrales Key-Management-System.',
    legalBasis: 'Art. 32 Abs. 1 lit. a DSGVO',
    evidenceTypes: ['Verschluesselungs-Policy', 'TLS-Konfigurationsreport', 'KMS-Audit'],
    addressesRiskIds: ['R-CONF-04', 'R-TRANS-01', 'R-AUTO-05'],
    effectiveness: 'high',
  },
  {
    id: 'M-CONF-07',
    type: 'technical',
    sdmGoals: ['vertraulichkeit'],
    title: 'End-to-End-Verschluesselung fuer Kommunikation',
    description: 'Einsatz von End-to-End-Verschluesselung fuer sensible Kommunikation (E-Mail, Messaging), sodass auch der Betreiber keinen Zugriff auf die Inhalte hat.',
    legalBasis: 'Art. 32 Abs. 1 lit. a DSGVO',
    evidenceTypes: ['E2E-Konfiguration', 'Testbericht'],
    addressesRiskIds: ['R-CONF-04'],
    effectiveness: 'high',
  },
  {
    id: 'M-CONF-08',
    type: 'technical',
    sdmGoals: ['vertraulichkeit', 'datenminimierung'],
    title: 'Log-Sanitization & PII-Filtering',
    description: 'Automatische Filterung personenbezogener Daten aus Logs, Fehlermeldungen und Debug-Ausgaben. Einsatz von Tokenisierung oder Maskierung.',
    legalBasis: 'Art. 25 Abs. 1 DSGVO, Art. 32 Abs. 1 lit. a DSGVO',
    evidenceTypes: ['Log-Policy', 'PII-Filter-Konfiguration', 'Stichproben-Audit'],
    addressesRiskIds: ['R-CONF-07'],
    effectiveness: 'medium',
  },

  // =========================================================================
  // INTEGRITAET (Audit, Monitoring, Integrity Checks)
  // =========================================================================
  {
    id: 'M-INT-01',
    type: 'technical',
    sdmGoals: ['integritaet'],
    title: 'Input-Validierung & Injection-Schutz',
    description: 'Konsequente Validierung aller Eingaben, Prepared Statements fuer Datenbankzugriffe, Content Security Policy und Output-Encoding zum Schutz vor Injection-Angriffen.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['SAST-Report', 'Penetrationstest-Bericht', 'WAF-Regeln'],
    addressesRiskIds: ['R-INT-01'],
    effectiveness: 'high',
  },
  {
    id: 'M-INT-02',
    type: 'technical',
    sdmGoals: ['integritaet', 'transparenz'],
    title: 'Audit-Logging & SIEM-Integration',
    description: 'Lueckenlose Protokollierung aller sicherheitsrelevanten Ereignisse mit Weiterleitung an ein SIEM-System. Manipulation-sichere Logs mit Integritaetspruefung.',
    legalBasis: 'Art. 32 Abs. 1 lit. d DSGVO',
    evidenceTypes: ['SIEM-Dashboard-Screenshot', 'Audit-Log-Beispiel', 'Alert-Regeln'],
    addressesRiskIds: ['R-INT-01', 'R-INT-04', 'R-INT-05', 'R-CONF-03', 'R-ORG-04'],
    effectiveness: 'high',
  },
  {
    id: 'M-INT-03',
    type: 'technical',
    sdmGoals: ['integritaet'],
    title: 'Web Application Firewall (WAF) & API-Gateway',
    description: 'Einsatz einer WAF zum Schutz vor OWASP Top 10 Angriffen und eines API-Gateways fuer Rate-Limiting, Schema-Validierung und Anomalie-Erkennung.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['WAF-Regelset', 'API-Gateway-Konfiguration', 'Blockierungs-Statistiken'],
    addressesRiskIds: ['R-INT-01'],
    effectiveness: 'medium',
  },
  {
    id: 'M-INT-04',
    type: 'technical',
    sdmGoals: ['integritaet'],
    title: 'Daten-Synchronisations-Monitoring & Integritaetspruefung',
    description: 'Automatische Ueberwachung von Synchronisationsprozessen mit Checksummen-Vergleich, Konflikterkennung und Alerting bei Inkonsistenzen.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['Sync-Monitoring-Dashboard', 'Checksummen-Report', 'Incident-Log'],
    addressesRiskIds: ['R-INT-02'],
    effectiveness: 'medium',
  },
  {
    id: 'M-INT-05',
    type: 'technical',
    sdmGoals: ['integritaet'],
    title: 'Versionierung & Change-Tracking fuer personenbezogene Daten',
    description: 'Alle Aenderungen an personenbezogenen Daten werden versioniert gespeichert (Audit-Trail). Wer hat wann was geaendert ist jederzeit nachvollziehbar.',
    legalBasis: 'Art. 5 Abs. 1 lit. f DSGVO',
    evidenceTypes: ['Versionierungs-Schema', 'Change-Log-Beispiel'],
    addressesRiskIds: ['R-INT-02', 'R-INT-05'],
    effectiveness: 'medium',
  },

  // =========================================================================
  // VERFUEGBARKEIT (Backup, Recovery, Redundancy)
  // =========================================================================
  {
    id: 'M-AVAIL-01',
    type: 'technical',
    sdmGoals: ['verfuegbarkeit'],
    title: 'Backup-Strategie mit 3-2-1-Regel',
    description: 'Implementierung einer Backup-Strategie nach der 3-2-1-Regel: 3 Kopien, 2 verschiedene Medien, 1 Offsite. Verschluesselte Backups mit regelmaessiger Integritaetspruefung.',
    legalBasis: 'Art. 32 Abs. 1 lit. c DSGVO',
    evidenceTypes: ['Backup-Policy', 'Backup-Monitoring-Report', 'Offsite-Nachweis'],
    addressesRiskIds: ['R-AVAIL-01', 'R-AVAIL-03', 'R-INT-03'],
    effectiveness: 'high',
  },
  {
    id: 'M-AVAIL-02',
    type: 'organizational',
    sdmGoals: ['verfuegbarkeit'],
    title: 'Regelmaessige Restore-Tests & Disaster Recovery Uebungen',
    description: 'Mindestens quartalsweise Durchfuehrung von Restore-Tests und jaehrliche Disaster-Recovery-Uebungen. Dokumentation der Ergebnisse und Lessons Learned.',
    legalBasis: 'Art. 32 Abs. 1 lit. d DSGVO',
    evidenceTypes: ['Restore-Test-Protokoll', 'DR-Uebungs-Dokumentation', 'RTO/RPO-Nachweis'],
    addressesRiskIds: ['R-AVAIL-01', 'R-AVAIL-03', 'R-INT-03'],
    effectiveness: 'high',
  },
  {
    id: 'M-AVAIL-03',
    type: 'technical',
    sdmGoals: ['verfuegbarkeit'],
    title: 'Endpoint Protection & Anti-Ransomware',
    description: 'Einsatz von Endpoint-Detection-and-Response (EDR) Loesungen mit spezifischem Ransomware-Schutz, Verhaltensanalyse und automatischer Isolation kompromittierter Systeme.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['EDR-Dashboard', 'Threat-Detection-Statistiken', 'Incident-Response-Plan'],
    addressesRiskIds: ['R-AVAIL-01'],
    effectiveness: 'high',
  },
  {
    id: 'M-AVAIL-04',
    type: 'technical',
    sdmGoals: ['verfuegbarkeit'],
    title: 'Redundanz & High-Availability-Architektur',
    description: 'Redundante Systemauslegung mit automatischem Failover, Load-Balancing und geo-redundanter Datenhaltung zur Sicherstellung der Verfuegbarkeit.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['HA-Architekturdiagramm', 'Failover-Testprotokoll', 'SLA-Dokumentation'],
    addressesRiskIds: ['R-AVAIL-02', 'R-AVAIL-04'],
    effectiveness: 'high',
  },
  {
    id: 'M-AVAIL-05',
    type: 'organizational',
    sdmGoals: ['verfuegbarkeit', 'intervenierbarkeit'],
    title: 'Exit-Strategie & Datenportabilitaetsplan',
    description: 'Dokumentierte Exit-Strategie fuer jeden kritischen Anbieter mit Datenexport-Verfahren, Migrationsplan und Uebergangsfristen. Regelmaessiger Export-Test.',
    legalBasis: 'Art. 28 Abs. 3 lit. g DSGVO, Art. 20 DSGVO',
    evidenceTypes: ['Exit-Plan-Dokument', 'Export-Test-Protokoll', 'Vertragliche-Regelung'],
    addressesRiskIds: ['R-AVAIL-02', 'R-AVAIL-05'],
    effectiveness: 'medium',
  },
  {
    id: 'M-AVAIL-06',
    type: 'technical',
    sdmGoals: ['verfuegbarkeit'],
    title: 'DDoS-Schutz & Rate-Limiting',
    description: 'Einsatz von DDoS-Mitigation-Services, CDN-basiertem Schutz und anwendungsspezifischem Rate-Limiting zur Abwehr von Verfuegbarkeitsangriffen.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['DDoS-Schutz-Konfiguration', 'Rate-Limit-Regeln', 'Traffic-Analyse'],
    addressesRiskIds: ['R-AVAIL-04'],
    effectiveness: 'high',
  },

  // =========================================================================
  // DATENMINIMIERUNG (Retention, Anonymization, Purpose Limitation)
  // =========================================================================
  {
    id: 'M-DMIN-01',
    type: 'technical',
    sdmGoals: ['datenminimierung'],
    title: 'Privacy by Design: Datenerhebung auf das Minimum beschraenken',
    description: 'Technische Massnahmen zur Beschraenkung der Datenerhebung: Pflichtfelder minimieren, optionale Felder deutlich kennzeichnen, Default-Einstellungen datenschutzfreundlich.',
    legalBasis: 'Art. 25 Abs. 1 DSGVO',
    evidenceTypes: ['Formular-Review', 'Default-Settings-Dokumentation'],
    addressesRiskIds: ['R-RIGHTS-07', 'R-CONF-07'],
    effectiveness: 'medium',
  },
  {
    id: 'M-DMIN-02',
    type: 'technical',
    sdmGoals: ['datenminimierung', 'nichtverkettung'],
    title: 'Pseudonymisierung & Anonymisierung',
    description: 'Einsatz von Pseudonymisierungsverfahren (Token-basiert, Hash-basiert) und k-Anonymity/Differential Privacy bei der Weitergabe oder Analyse von Daten.',
    legalBasis: 'Art. 25 Abs. 1 DSGVO, Art. 32 Abs. 1 lit. a DSGVO',
    evidenceTypes: ['Pseudonymisierungs-Konzept', 'Re-Identifizierungs-Risiko-Analyse'],
    addressesRiskIds: ['R-RIGHTS-04', 'R-RIGHTS-07'],
    effectiveness: 'high',
  },
  {
    id: 'M-DMIN-03',
    type: 'technical',
    sdmGoals: ['datenminimierung'],
    title: 'Automatisiertes Loeschkonzept mit Aufbewahrungsfristen',
    description: 'Implementierung automatischer Loeschroutinen basierend auf definierten Aufbewahrungsfristen. Monitoring der Loeschvorgaenge und Nachweis der Loeschung.',
    legalBasis: 'Art. 5 Abs. 1 lit. e DSGVO, Art. 17 DSGVO',
    evidenceTypes: ['Loeschkonzept-Dokument', 'Loeschfrist-Uebersicht', 'Loeschprotokoll'],
    addressesRiskIds: ['R-RIGHTS-07', 'R-ORG-02'],
    effectiveness: 'high',
  },
  {
    id: 'M-DMIN-04',
    type: 'organizational',
    sdmGoals: ['datenminimierung'],
    title: 'Regelmaessige Ueberpruefung der Datenbestaende',
    description: 'Jaehrlicher Review aller gespeicherten personenbezogenen Daten auf Erforderlichkeit. Identifikation und Bereinigung von Altbestaenden, verwaisten Datensaetzen und redundanten Kopien.',
    legalBasis: 'Art. 5 Abs. 1 lit. e DSGVO',
    evidenceTypes: ['Datenbestand-Review-Bericht', 'Bereinigungs-Protokoll'],
    addressesRiskIds: ['R-ORG-02'],
    effectiveness: 'medium',
  },

  // =========================================================================
  // TRANSPARENZ (Information, Documentation, Auditability)
  // =========================================================================
  {
    id: 'M-TRANS-01',
    type: 'organizational',
    sdmGoals: ['transparenz'],
    title: 'Datenschutzhinweise & Privacy Notices',
    description: 'Umfassende, verstaendliche Datenschutzhinweise gemaess Art. 13/14 DSGVO an allen Erhebungsstellen. Layered-Approach fuer unterschiedliche Detailstufen.',
    legalBasis: 'Art. 13, Art. 14 DSGVO',
    evidenceTypes: ['Privacy-Notice-Review', 'Zustellungs-Nachweis', 'Usability-Test'],
    addressesRiskIds: ['R-CONF-05', 'R-RIGHTS-02', 'R-RIGHTS-03', 'R-RIGHTS-06', 'R-TRANS-03', 'R-SPEC-02'],
    effectiveness: 'medium',
  },
  {
    id: 'M-TRANS-02',
    type: 'technical',
    sdmGoals: ['transparenz'],
    title: 'Vollstaendiger Audit-Trail fuer personenbezogene Daten',
    description: 'Lueckenloser, manipulationssicherer Audit-Trail fuer alle Verarbeitungsvorgaenge personenbezogener Daten. Wer hat wann auf welche Daten zugegriffen oder sie veraendert.',
    legalBasis: 'Art. 5 Abs. 2 DSGVO (Rechenschaftspflicht)',
    evidenceTypes: ['Audit-Trail-Architektur', 'Log-Integritaets-Nachweis', 'Beispiel-Audit-Export'],
    addressesRiskIds: ['R-INT-05'],
    effectiveness: 'high',
  },
  {
    id: 'M-TRANS-03',
    type: 'technical',
    sdmGoals: ['transparenz'],
    title: 'Erklaerbarkeit von KI-Entscheidungen (Explainability)',
    description: 'Implementierung von Erklaerungsverfahren (SHAP, LIME, Feature-Importance) fuer automatisierte Entscheidungen. Bereitstellung verstaendlicher Begruendungen fuer Betroffene.',
    legalBasis: 'Art. 22 Abs. 3 DSGVO, Art. 13 Abs. 2 lit. f DSGVO',
    evidenceTypes: ['XAI-Konzept', 'Erklaerbarkeits-Beispiel', 'Betroffenen-Information'],
    addressesRiskIds: ['R-AUTO-01', 'R-AUTO-03', 'R-RIGHTS-01'],
    effectiveness: 'medium',
  },
  {
    id: 'M-TRANS-04',
    type: 'organizational',
    sdmGoals: ['transparenz'],
    title: 'Ueberwachungs-Folgenabschaetzung & Informationspflicht',
    description: 'Bei systematischer Ueberwachung: Gesonderte Folgenabschaetzung, klare Beschilderung/Information, Verhaeltnismaessigkeitspruefung und zeitliche Begrenzung.',
    legalBasis: 'Art. 35 Abs. 3 lit. c DSGVO, Art. 13 DSGVO',
    evidenceTypes: ['Ueberwachungs-DSFA', 'Beschilderungs-Nachweis', 'Verhaeltnismaessigkeits-Bewertung'],
    addressesRiskIds: ['R-RIGHTS-03'],
    effectiveness: 'medium',
  },
  {
    id: 'M-TRANS-05',
    type: 'organizational',
    sdmGoals: ['transparenz'],
    title: 'Verzeichnis von Verarbeitungstaetigkeiten (VVT) pflegen',
    description: 'Vollstaendiges und aktuelles VVT gemaess Art. 30 DSGVO fuer alle Verarbeitungstaetigkeiten. Regelmaessige Aktualisierung bei Aenderungen.',
    legalBasis: 'Art. 30 DSGVO',
    evidenceTypes: ['VVT-Export', 'Aktualisierungs-Log'],
    addressesRiskIds: ['R-RIGHTS-06'],
    effectiveness: 'medium',
  },
  {
    id: 'M-TRANS-06',
    type: 'legal',
    sdmGoals: ['transparenz', 'vertraulichkeit'],
    title: 'Transfer Impact Assessment (TIA) fuer Drittlandtransfer',
    description: 'Durchfuehrung eines Transfer Impact Assessments vor jedem Drittlandtransfer. Bewertung des Schutzniveaus im Empfaengerland und Festlegung zusaetzlicher Garantien.',
    legalBasis: 'Art. 46 DSGVO, Schrems-II-Urteil',
    evidenceTypes: ['TIA-Dokument', 'Schutzniveau-Analyse', 'Zusaetzliche-Garantien-Vereinbarung'],
    addressesRiskIds: ['R-TRANS-01', 'R-TRANS-02'],
    effectiveness: 'high',
  },
  {
    id: 'M-TRANS-07',
    type: 'legal',
    sdmGoals: ['vertraulichkeit'],
    title: 'Standardvertragsklauseln (SCC) & Supplementary Measures',
    description: 'Abschluss aktueller EU-Standardvertragsklauseln (2021/914) mit Auftragsverarbeitern im Drittland. Ergaenzende technische und organisatorische Massnahmen (Verschluesselung, Pseudonymisierung).',
    legalBasis: 'Art. 46 Abs. 2 lit. c DSGVO',
    evidenceTypes: ['Unterzeichnete SCC', 'Supplementary-Measures-Dokumentation'],
    addressesRiskIds: ['R-TRANS-01', 'R-TRANS-02'],
    effectiveness: 'medium',
  },

  // =========================================================================
  // NICHTVERKETTUNG (Purpose Limitation, Data Separation, DLP)
  // =========================================================================
  {
    id: 'M-NONL-01',
    type: 'technical',
    sdmGoals: ['nichtverkettung'],
    title: 'Zweckbindung & Consent-Management',
    description: 'Technische Durchsetzung der Zweckbindung: Daten werden nur fuer den erhobenen Zweck verwendet. Consent-Management-System protokolliert und erzwingt Einwilligungen.',
    legalBasis: 'Art. 5 Abs. 1 lit. b DSGVO, Art. 6 Abs. 1 lit. a DSGVO',
    evidenceTypes: ['Consent-Management-System', 'Zweckbindungs-Matrix', 'Consent-Protokolle'],
    addressesRiskIds: ['R-CONF-05', 'R-RIGHTS-02', 'R-RIGHTS-03'],
    effectiveness: 'high',
  },
  {
    id: 'M-NONL-02',
    type: 'technical',
    sdmGoals: ['nichtverkettung'],
    title: 'Data Loss Prevention (DLP) & Datenklassifikation',
    description: 'Implementierung von DLP-Regeln zur Verhinderung unkontrollierter Datenweitergabe. Datenklassifikation (oeffentlich, intern, vertraulich, streng vertraulich) als Grundlage.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['DLP-Policy', 'Datenklassifikations-Schema', 'DLP-Incident-Report'],
    addressesRiskIds: ['R-RIGHTS-02'],
    effectiveness: 'medium',
  },
  {
    id: 'M-NONL-03',
    type: 'technical',
    sdmGoals: ['nichtverkettung', 'datenminimierung'],
    title: 'Differential Privacy & k-Anonymity bei Datenanalysen',
    description: 'Einsatz von Differential Privacy oder k-Anonymity-Verfahren bei der Analyse personenbezogener Daten, um Re-Identifizierung zu verhindern.',
    legalBasis: 'Art. 25 Abs. 1 DSGVO',
    evidenceTypes: ['Anonymisierungs-Konzept', 'Privacy-Budget-Berechnung', 'k-Anonymity-Nachweis'],
    addressesRiskIds: ['R-RIGHTS-04', 'R-AUTO-05'],
    effectiveness: 'high',
  },
  {
    id: 'M-NONL-04',
    type: 'technical',
    sdmGoals: ['nichtverkettung'],
    title: 'Mandantentrennung & Datenisolierung',
    description: 'Strikte logische oder physische Trennung personenbezogener Daten verschiedener Mandanten/Zwecke. Verhinderung unbeabsichtigter Zusammenfuehrung.',
    legalBasis: 'Art. 5 Abs. 1 lit. b DSGVO',
    evidenceTypes: ['Mandantentrennungs-Konzept', 'Isolierungs-Test-Bericht'],
    addressesRiskIds: ['R-RIGHTS-04'],
    effectiveness: 'high',
  },

  // =========================================================================
  // INTERVENIERBARKEIT (Data Subject Rights, Correction, Deletion)
  // =========================================================================
  {
    id: 'M-INTERV-01',
    type: 'technical',
    sdmGoals: ['intervenierbarkeit'],
    title: 'DSAR-Workflow (Data Subject Access Request)',
    description: 'Automatisierter Workflow fuer Betroffenenanfragen (Auskunft, Loeschung, Berichtigung, Export). Fristenmanagement (1 Monat), Identitaetspruefung und Dokumentation.',
    legalBasis: 'Art. 15-22 DSGVO, Art. 12 Abs. 3 DSGVO',
    evidenceTypes: ['DSAR-Workflow-Dokumentation', 'Bearbeitungszeiten-Statistik', 'Audit-Trail'],
    addressesRiskIds: ['R-RIGHTS-05', 'R-AVAIL-05'],
    effectiveness: 'high',
  },
  {
    id: 'M-INTERV-02',
    type: 'technical',
    sdmGoals: ['intervenierbarkeit'],
    title: 'Self-Service Datenverwaltung fuer Betroffene',
    description: 'Bereitstellung eines Self-Service-Portals, ueber das Betroffene ihre Daten einsehen, korrigieren, exportieren und die Loeschung beantragen koennen.',
    legalBasis: 'Art. 15-20 DSGVO',
    evidenceTypes: ['Portal-Screenshot', 'Funktions-Testprotokoll', 'Nutzungs-Statistik'],
    addressesRiskIds: ['R-RIGHTS-05'],
    effectiveness: 'high',
  },
  {
    id: 'M-INTERV-03',
    type: 'organizational',
    sdmGoals: ['intervenierbarkeit'],
    title: 'Widerspruchs- und Einschraenkungsprozess',
    description: 'Definierter Prozess fuer die Bearbeitung von Widerspruechen (Art. 21) und Einschraenkungsersuchen (Art. 18). Technische Moeglichkeit zur Sperrung einzelner Datensaetze.',
    legalBasis: 'Art. 18, Art. 21 DSGVO',
    evidenceTypes: ['Prozessbeschreibung', 'Sperr-Funktionalitaets-Nachweis'],
    addressesRiskIds: ['R-RIGHTS-05'],
    effectiveness: 'medium',
  },
  {
    id: 'M-INTERV-04',
    type: 'organizational',
    sdmGoals: ['intervenierbarkeit'],
    title: 'Human-in-the-Loop bei automatisierten Entscheidungen',
    description: 'Sicherstellung menschlicher Ueberpruefung bei automatisierten Entscheidungen mit erheblicher Auswirkung. Eskalationsprozess und Einspruchsmoeglichkeit fuer Betroffene.',
    legalBasis: 'Art. 22 Abs. 3 DSGVO',
    evidenceTypes: ['HITL-Prozessbeschreibung', 'Eskalations-Statistik', 'Einspruchs-Protokoll'],
    addressesRiskIds: ['R-AUTO-04'],
    effectiveness: 'high',
  },

  // =========================================================================
  // AUTOMATISIERUNG / KI
  // =========================================================================
  {
    id: 'M-AUTO-01',
    type: 'technical',
    sdmGoals: ['nichtverkettung', 'transparenz'],
    title: 'Bias-Monitoring & Fairness-Tests',
    description: 'Regelmaessige Ueberpruefung von KI-Modellen auf Bias und Diskriminierung. Fairness-Metriken (Demographic Parity, Equal Opportunity) und Korrekturmassnahmen bei Abweichungen.',
    legalBasis: 'Art. 22 Abs. 3 DSGVO, AI Act Art. 10',
    evidenceTypes: ['Bias-Audit-Report', 'Fairness-Metriken-Dashboard', 'Korrektur-Dokumentation'],
    addressesRiskIds: ['R-RIGHTS-01', 'R-AUTO-01', 'R-AUTO-02'],
    effectiveness: 'high',
  },
  {
    id: 'M-AUTO-02',
    type: 'technical',
    sdmGoals: ['transparenz'],
    title: 'KI-Modell-Dokumentation & Model Cards',
    description: 'Ausfuehrliche Dokumentation aller KI-Modelle: Trainingsdaten, Architektur, Performance-Metriken, bekannte Einschraenkungen, Einsatzzweck (Model Cards).',
    legalBasis: 'Art. 13 Abs. 2 lit. f DSGVO, AI Act Art. 11',
    evidenceTypes: ['Model-Card', 'Performance-Report', 'Einsatzbereich-Dokumentation'],
    addressesRiskIds: ['R-AUTO-01', 'R-AUTO-03'],
    effectiveness: 'medium',
  },
  {
    id: 'M-AUTO-03',
    type: 'organizational',
    sdmGoals: ['intervenierbarkeit', 'transparenz'],
    title: 'KI-Governance-Framework & Human Oversight Board',
    description: 'Etablierung eines KI-Governance-Frameworks mit einem Human Oversight Board, das alle KI-Systeme mit hohem Risiko ueberwacht und Interventionsmoeglichkeiten hat.',
    legalBasis: 'Art. 22 DSGVO, AI Act Art. 14',
    evidenceTypes: ['Governance-Policy', 'Oversight-Board-Protokolle', 'Interventions-Log'],
    addressesRiskIds: ['R-AUTO-01', 'R-AUTO-04'],
    effectiveness: 'high',
  },
  {
    id: 'M-AUTO-04',
    type: 'technical',
    sdmGoals: ['nichtverkettung', 'datenminimierung'],
    title: 'Datenschutzkonformes KI-Training (Privacy-Preserving ML)',
    description: 'Einsatz von Federated Learning, Differential Privacy beim Training oder synthetischen Trainingsdaten, um personenbezogene Daten im Modell zu schuetzen.',
    legalBasis: 'Art. 25 Abs. 1 DSGVO',
    evidenceTypes: ['Privacy-Preserving-ML-Konzept', 'Training-Daten-Analyse', 'Modell-Invertierbarkeiots-Test'],
    addressesRiskIds: ['R-AUTO-02', 'R-AUTO-05'],
    effectiveness: 'high',
  },

  // =========================================================================
  // ORGANISATORISCHE MASSNAHMEN
  // =========================================================================
  {
    id: 'M-ORG-01',
    type: 'organizational',
    sdmGoals: ['vertraulichkeit', 'integritaet'],
    title: 'Datenschutz-Schulungen & Awareness-Programm',
    description: 'Regelmaessige verpflichtende Datenschutz-Schulungen fuer alle Mitarbeiter. Awareness-Kampagnen zu Phishing, Social Engineering und sicherem Datenumgang.',
    legalBasis: 'Art. 32 Abs. 1 lit. b DSGVO, Art. 39 Abs. 1 lit. a DSGVO',
    evidenceTypes: ['Schulungsplan', 'Teilnahmequoten', 'Phishing-Simulations-Ergebnis'],
    addressesRiskIds: ['R-CONF-06', 'R-ORG-03'],
    effectiveness: 'medium',
  },
  {
    id: 'M-ORG-02',
    type: 'organizational',
    sdmGoals: ['integritaet'],
    title: 'Verpflichtung auf Vertraulichkeit & Datenschutz-Policy',
    description: 'Schriftliche Verpflichtung aller Mitarbeiter und externen Dienstleister auf Vertraulichkeit und Einhaltung der Datenschutz-Policies.',
    legalBasis: 'Art. 28 Abs. 3 lit. b DSGVO, Art. 29 DSGVO',
    evidenceTypes: ['Unterzeichnete-Verpflichtungserklaerung', 'Datenschutz-Policy'],
    addressesRiskIds: ['R-ORG-03'],
    effectiveness: 'medium',
  },
  {
    id: 'M-ORG-03',
    type: 'organizational',
    sdmGoals: ['transparenz'],
    title: 'Datenpannen-Erkennungs- und Meldeprozess (Incident Response)',
    description: 'Definierter Incident-Response-Prozess mit klaren Eskalationswegen, 72h-Meldepflicht-Tracking, Klassifizierungsschema und Kommunikationsplan.',
    legalBasis: 'Art. 33, Art. 34 DSGVO',
    evidenceTypes: ['Incident-Response-Plan', 'Melde-Template', 'Uebungs-Protokoll'],
    addressesRiskIds: ['R-ORG-04'],
    effectiveness: 'high',
  },
  {
    id: 'M-ORG-04',
    type: 'technical',
    sdmGoals: ['transparenz', 'verfuegbarkeit'],
    title: 'Automatisiertes Breach-Detection & Alerting',
    description: 'Automatische Erkennung von Datenpannen durch Anomalie-Detection, ungewoehnliche Zugriffsmuster und Datenexfiltrations-Erkennung mit sofortigem Alert an den Incident-Response-Team.',
    legalBasis: 'Art. 33 Abs. 1 DSGVO',
    evidenceTypes: ['Alert-Regeln', 'Detection-Dashboard', 'Reaktionszeiten-Statistik'],
    addressesRiskIds: ['R-ORG-04'],
    effectiveness: 'high',
  },

  // =========================================================================
  // RECHTLICHE MASSNAHMEN
  // =========================================================================
  {
    id: 'M-LEGAL-01',
    type: 'legal',
    sdmGoals: ['transparenz'],
    title: 'Angemessenheitsbeschluss oder Binding Corporate Rules (BCR)',
    description: 'Sicherstellung, dass Drittlandtransfers auf einem Angemessenheitsbeschluss oder genehmigten BCRs basieren. Laufende Ueberwachung des Schutzniveaus.',
    legalBasis: 'Art. 45, Art. 47 DSGVO',
    evidenceTypes: ['Angemessenheitsbeschluss-Referenz', 'BCR-Genehmigung'],
    addressesRiskIds: ['R-TRANS-02'],
    effectiveness: 'high',
  },
  {
    id: 'M-LEGAL-02',
    type: 'legal',
    sdmGoals: ['transparenz'],
    title: 'Auftragsverarbeitungsvertrag (AVV) nach Art. 28 DSGVO',
    description: 'Abschluss vollstaendiger AVVs mit allen Auftragsverarbeitern. Regelung von Zweck, Dauer, Datenkategorien, Weisungsbindung, Sub-Auftragsverarbeiter und Audit-Rechten.',
    legalBasis: 'Art. 28 Abs. 3 DSGVO',
    evidenceTypes: ['Unterzeichneter-AVV', 'Sub-Auftragsverarbeiter-Liste', 'Audit-Bericht'],
    addressesRiskIds: ['R-ORG-01', 'R-TRANS-03'],
    effectiveness: 'high',
  },
  {
    id: 'M-LEGAL-03',
    type: 'legal',
    sdmGoals: ['transparenz'],
    title: 'Regelmaessige Auftragsverarbeiter-Audits',
    description: 'Jaehrliche Ueberpruefung der Auftragsverarbeiter auf Einhaltung der AVV-Vorgaben. Dokumentierte Audits vor Ort oder anhand von Zertifizierungen (SOC 2, ISO 27001).',
    legalBasis: 'Art. 28 Abs. 3 lit. h DSGVO',
    evidenceTypes: ['Audit-Bericht', 'Zertifizierungs-Nachweis', 'Massnahmenplan'],
    addressesRiskIds: ['R-ORG-01'],
    effectiveness: 'medium',
  },
  {
    id: 'M-LEGAL-04',
    type: 'legal',
    sdmGoals: ['intervenierbarkeit', 'transparenz'],
    title: 'Altersverifikation & Eltern-Einwilligung (Art. 8)',
    description: 'Implementierung einer altersgerechten Verifikation und Einholung der Eltern-Einwilligung bei Minderjaehrigen unter 16 Jahren. Kindgerechte Datenschutzinformationen.',
    legalBasis: 'Art. 8 DSGVO, EG 38 DSGVO',
    evidenceTypes: ['Altersverifikations-Konzept', 'Eltern-Einwilligungs-Formular', 'Kindgerechte-Privacy-Notice'],
    addressesRiskIds: ['R-SPEC-02'],
    effectiveness: 'medium',
  },
]

// =============================================================================
// HELPER FUNCTIONS
// =============================================================================

export function getMitigationsBySDMGoal(goal: SDMGoal): CatalogMitigation[] {
  return MITIGATION_LIBRARY.filter(m => m.sdmGoals.includes(goal))
}

export function getMitigationsByType(type: DSFAMitigationType): CatalogMitigation[] {
  return MITIGATION_LIBRARY.filter(m => m.type === type)
}

export function getMitigationsForRisk(riskId: string): CatalogMitigation[] {
  return MITIGATION_LIBRARY.filter(m => m.addressesRiskIds.includes(riskId))
}

export function getCatalogMitigationById(id: string): CatalogMitigation | undefined {
  return MITIGATION_LIBRARY.find(m => m.id === id)
}

export function getMitigationsByEffectiveness(effectiveness: 'low' | 'medium' | 'high'): CatalogMitigation[] {
  return MITIGATION_LIBRARY.filter(m => m.effectiveness === effectiveness)
}

export const MITIGATION_TYPE_LABELS: Record<DSFAMitigationType, string> = {
  technical: 'Technisch',
  organizational: 'Organisatorisch',
  legal: 'Rechtlich',
}

export const SDM_GOAL_LABELS: Record<SDMGoal, string> = {
  datenminimierung: 'Datenminimierung',
  verfuegbarkeit: 'Verfuegbarkeit',
  integritaet: 'Integritaet',
  vertraulichkeit: 'Vertraulichkeit',
  nichtverkettung: 'Nichtverkettung',
  transparenz: 'Transparenz',
  intervenierbarkeit: 'Intervenierbarkeit',
}

export const EFFECTIVENESS_LABELS: Record<string, string> = {
  low: 'Gering',
  medium: 'Mittel',
  high: 'Hoch',
}
