/**
 * DSFA Massnahmenbibliothek — Verfuegbarkeit, Datenminimierung & Nichtverkettung
 */

import type { CatalogMitigation } from './types'

export const AVAILABILITY_MITIGATIONS: CatalogMitigation[] = [
  {
    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',
  },
]

export const MINIMIZATION_NONLINKAGE_MITIGATIONS: CatalogMitigation[] = [
  {
    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',
  },
  {
    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',
  },
]
