/**
 * DSFA Risikokatalog - Vordefinierte Risikoszenarien
 *
 * ~40 Risiken gegliedert nach Vertraulichkeit, Integritaet, Verfuegbarkeit,
 * Rechte & Freiheiten, Drittlandtransfer und Automatisierung.
 *
 * Quellen: EG 75 DSGVO, Art. 32 DSGVO, Art. 28/46 DSGVO, Art. 22 DSGVO,
 * Baseline-DSFA Katalog, SDM V2.0
 */

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

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

export interface CatalogRisk {
  id: string
  category: DSFARiskCategory
  sdmGoal: SDMGoal
  title: string
  description: string
  impactExamples: string[]
  typicalLikelihood: 'low' | 'medium' | 'high'
  typicalImpact: 'low' | 'medium' | 'high'
  wp248Criteria: string[]
  applicableTo: string[]
  mitigationIds: string[]
}

// =============================================================================
// RISIKOKATALOG
// =============================================================================

export const RISK_CATALOG: CatalogRisk[] = [
  // =========================================================================
  // VERTRAULICHKEIT (Confidentiality)
  // =========================================================================
  {
    id: 'R-CONF-01',
    category: 'confidentiality',
    sdmGoal: 'vertraulichkeit',
    title: 'Unbefugte Offenlegung durch Fehlkonfiguration',
    description: 'Personenbezogene Daten werden durch fehlerhafte Systemkonfiguration (z.B. offene APIs, fehlerhafte Zugriffsrechte, oeffentliche Cloud-Speicher) unbefugt zugaenglich.',
    impactExamples: ['Identitaetsdiebstahl', 'Reputationsschaden', 'Diskriminierung'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K4', 'K5'],
    applicableTo: ['cloud_storage', 'web_application', 'api_service'],
    mitigationIds: ['M-CONF-01', 'M-CONF-02', 'M-CONF-03'],
  },
  {
    id: 'R-CONF-02',
    category: 'confidentiality',
    sdmGoal: 'vertraulichkeit',
    title: 'Account Takeover / Credential Stuffing',
    description: 'Angreifer uebernehmen Benutzerkonten durch gestohlene Zugangsdaten, Brute-Force-Angriffe oder Phishing und erlangen Zugriff auf personenbezogene Daten.',
    impactExamples: ['Kontrollverlust ueber eigene Daten', 'Finanzieller Schaden', 'Missbrauch der Identitaet'],
    typicalLikelihood: 'high',
    typicalImpact: 'high',
    wp248Criteria: ['K4', 'K7'],
    applicableTo: ['identity', 'web_application', 'email_service'],
    mitigationIds: ['M-ACC-01', 'M-ACC-02'],
  },
  {
    id: 'R-CONF-03',
    category: 'confidentiality',
    sdmGoal: 'vertraulichkeit',
    title: 'Unbefugter Zugriff durch Support-/Administrationspersonal',
    description: 'Administratoren oder Support-Mitarbeiter greifen ohne dienstliche Notwendigkeit auf personenbezogene Daten zu (Insider-Bedrohung).',
    impactExamples: ['Verletzung der Privatsphaere', 'Datenmissbrauch', 'Vertrauensverlust'],
    typicalLikelihood: 'medium',
    typicalImpact: 'medium',
    wp248Criteria: ['K4'],
    applicableTo: ['identity', 'crm', 'cloud_storage', 'support_system'],
    mitigationIds: ['M-CONF-04', 'M-CONF-05', 'M-INT-02'],
  },
  {
    id: 'R-CONF-04',
    category: 'confidentiality',
    sdmGoal: 'vertraulichkeit',
    title: 'Datenleck durch unzureichende Verschluesselung',
    description: 'Personenbezogene Daten werden bei Uebertragung oder Speicherung nicht oder unzureichend verschluesselt und koennen abgefangen werden.',
    impactExamples: ['Man-in-the-Middle-Angriff', 'Datendiebstahl bei Speichermedien-Verlust'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K4', 'K8'],
    applicableTo: ['cloud_storage', 'email_service', 'mobile_app', 'api_service'],
    mitigationIds: ['M-CONF-06', 'M-CONF-07'],
  },
  {
    id: 'R-CONF-05',
    category: 'confidentiality',
    sdmGoal: 'vertraulichkeit',
    title: 'Unkontrollierte Datenweitergabe an Dritte',
    description: 'Personenbezogene Daten werden ohne Rechtsgrundlage oder ueber das vereinbarte Mass hinaus an Dritte weitergegeben (z.B. durch Tracking, Analyse-Tools, Sub-Auftragsverarbeiter).',
    impactExamples: ['Unerwuenschte Werbung', 'Profiling ohne Wissen', 'Kontrollverlust'],
    typicalLikelihood: 'medium',
    typicalImpact: 'medium',
    wp248Criteria: ['K1', 'K6'],
    applicableTo: ['web_application', 'analytics', 'marketing', 'crm'],
    mitigationIds: ['M-NONL-01', 'M-TRANS-01'],
  },
  {
    id: 'R-CONF-06',
    category: 'confidentiality',
    sdmGoal: 'vertraulichkeit',
    title: 'Social Engineering / Phishing gegen Betroffene',
    description: 'Betroffene werden durch manipulative Kommunikation dazu verleitet, personenbezogene Daten preiszugeben oder Zugriff zu gewaehren.',
    impactExamples: ['Identitaetsdiebstahl', 'Finanzieller Schaden', 'Uebernahme von Konten'],
    typicalLikelihood: 'high',
    typicalImpact: 'medium',
    wp248Criteria: ['K7'],
    applicableTo: ['email_service', 'web_application', 'identity'],
    mitigationIds: ['M-ACC-01', 'M-ORG-01'],
  },
  {
    id: 'R-CONF-07',
    category: 'confidentiality',
    sdmGoal: 'vertraulichkeit',
    title: 'Unbeabsichtigte Offenlegung in Logs/Debugging',
    description: 'Personenbezogene Daten gelangen in Protokolldateien, Fehlermeldungen oder Debug-Ausgaben und werden dort nicht geschuetzt.',
    impactExamples: ['Zugriff durch Unbefugte auf Logdaten', 'Langzeitspeicherung ohne Rechtsgrundlage'],
    typicalLikelihood: 'medium',
    typicalImpact: 'medium',
    wp248Criteria: ['K4'],
    applicableTo: ['api_service', 'web_application', 'cloud_storage'],
    mitigationIds: ['M-CONF-08', 'M-DMIN-01'],
  },

  // =========================================================================
  // INTEGRITAET (Integrity)
  // =========================================================================
  {
    id: 'R-INT-01',
    category: 'integrity',
    sdmGoal: 'integritaet',
    title: 'Datenmanipulation durch externen Angriff',
    description: 'Personenbezogene Daten werden durch einen Cyberangriff (SQL-Injection, API-Manipulation) veraendert, ohne dass dies erkannt wird.',
    impactExamples: ['Falsche Entscheidungen auf Basis manipulierter Daten', 'Rufschaedigung'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K4', 'K8'],
    applicableTo: ['api_service', 'web_application', 'database'],
    mitigationIds: ['M-INT-01', 'M-INT-02', 'M-INT-03'],
  },
  {
    id: 'R-INT-02',
    category: 'integrity',
    sdmGoal: 'integritaet',
    title: 'Fehlerhafte Synchronisation zwischen Systemen',
    description: 'Bei der Synchronisation personenbezogener Daten zwischen verschiedenen Systemen kommt es zu Inkonsistenzen, Duplikaten oder Datenverlust.',
    impactExamples: ['Falsche Kontaktdaten', 'Doppelte Verarbeitung', 'Falsche Auskuenfte'],
    typicalLikelihood: 'medium',
    typicalImpact: 'medium',
    wp248Criteria: ['K6'],
    applicableTo: ['crm', 'cloud_storage', 'erp', 'identity'],
    mitigationIds: ['M-INT-04', 'M-INT-05'],
  },
  {
    id: 'R-INT-03',
    category: 'integrity',
    sdmGoal: 'integritaet',
    title: 'Backup-Korruption oder fehlerhafte Wiederherstellung',
    description: 'Backups personenbezogener Daten sind beschaedigt, unvollstaendig oder veraltet, sodass eine zuverlaessige Wiederherstellung nicht moeglich ist.',
    impactExamples: ['Datenverlust bei Wiederherstellung', 'Veraltete Datenbasis', 'Compliance-Verstoss'],
    typicalLikelihood: 'low',
    typicalImpact: 'high',
    wp248Criteria: ['K5'],
    applicableTo: ['database', 'cloud_storage', 'erp'],
    mitigationIds: ['M-AVAIL-01', 'M-AVAIL-02'],
  },
  {
    id: 'R-INT-04',
    category: 'integrity',
    sdmGoal: 'integritaet',
    title: 'Unbemerkte Aenderung von Zugriffsrechten',
    description: 'Zugriffsberechtigungen werden unbefugt oder fehlerhaft geaendert, wodurch unberechtigte Personen Zugang zu personenbezogenen Daten erhalten.',
    impactExamples: ['Privilege Escalation', 'Unbefugter Datenzugriff'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K4'],
    applicableTo: ['identity', 'cloud_storage', 'api_service'],
    mitigationIds: ['M-INT-02', 'M-CONF-04'],
  },
  {
    id: 'R-INT-05',
    category: 'integrity',
    sdmGoal: 'integritaet',
    title: 'Fehlende Nachvollziehbarkeit von Datenveraenderungen',
    description: 'Aenderungen an personenbezogenen Daten werden nicht protokolliert, sodass Manipulationen oder Fehler nicht erkannt oder nachvollzogen werden koennen.',
    impactExamples: ['Unmoeglich festzustellen wer/wann Daten geaendert hat', 'Audit-Versagen'],
    typicalLikelihood: 'medium',
    typicalImpact: 'medium',
    wp248Criteria: ['K3'],
    applicableTo: ['database', 'crm', 'erp', 'web_application'],
    mitigationIds: ['M-INT-02', 'M-TRANS-02'],
  },

  // =========================================================================
  // VERFUEGBARKEIT (Availability)
  // =========================================================================
  {
    id: 'R-AVAIL-01',
    category: 'availability',
    sdmGoal: 'verfuegbarkeit',
    title: 'Ransomware-Angriff mit Datenverschluesselung',
    description: 'Schadsoftware verschluesselt personenbezogene Daten und macht sie unzugaenglich. Die Wiederherstellung erfordert entweder Loesegeldzahlung oder Backup-Restore.',
    impactExamples: ['Verlust des Zugangs zu eigenen Daten', 'Betriebsunterbrechung', 'Loesegeld-Erpressung'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K5', 'K8'],
    applicableTo: ['cloud_storage', 'database', 'erp', 'web_application'],
    mitigationIds: ['M-AVAIL-01', 'M-AVAIL-02', 'M-AVAIL-03'],
  },
  {
    id: 'R-AVAIL-02',
    category: 'availability',
    sdmGoal: 'verfuegbarkeit',
    title: 'Provider-Ausfall / Cloud-Service Nichtverfuegbarkeit',
    description: 'Der Cloud-/Hosting-Provider faellt aus, was den Zugang zu personenbezogenen Daten verhindert. Betroffene koennen ihre Rechte nicht ausueben.',
    impactExamples: ['Keine Auskunft moeglich', 'Vertragsverletzung', 'Geschaeftsunterbrechung'],
    typicalLikelihood: 'low',
    typicalImpact: 'high',
    wp248Criteria: ['K5', 'K9'],
    applicableTo: ['cloud_storage', 'web_application', 'api_service'],
    mitigationIds: ['M-AVAIL-04', 'M-AVAIL-05'],
  },
  {
    id: 'R-AVAIL-03',
    category: 'availability',
    sdmGoal: 'verfuegbarkeit',
    title: 'Datenverlust durch fehlende oder ungetestete Backups',
    description: 'Personenbezogene Daten gehen unwiederbringlich verloren, weil keine ausreichenden Backups existieren oder Restore-Prozesse nicht getestet werden.',
    impactExamples: ['Unwiderruflicher Datenverlust', 'Verlust von Beweismitteln', 'Compliance-Verstoss'],
    typicalLikelihood: 'low',
    typicalImpact: 'high',
    wp248Criteria: ['K5'],
    applicableTo: ['database', 'cloud_storage', 'erp'],
    mitigationIds: ['M-AVAIL-01', 'M-AVAIL-02'],
  },
  {
    id: 'R-AVAIL-04',
    category: 'availability',
    sdmGoal: 'verfuegbarkeit',
    title: 'DDoS-Angriff auf oeffentliche Dienste',
    description: 'Ein Distributed-Denial-of-Service-Angriff verhindert den Zugang zu Systemen, die personenbezogene Daten verarbeiten.',
    impactExamples: ['Betroffene koennen Rechte nicht ausueben', 'Geschaeftsausfall'],
    typicalLikelihood: 'medium',
    typicalImpact: 'medium',
    wp248Criteria: ['K5', 'K9'],
    applicableTo: ['web_application', 'api_service'],
    mitigationIds: ['M-AVAIL-06', 'M-AVAIL-04'],
  },
  {
    id: 'R-AVAIL-05',
    category: 'availability',
    sdmGoal: 'verfuegbarkeit',
    title: 'Vendor Lock-in mit Kontrollverlust',
    description: 'Abhaengigkeit von einem einzelnen Anbieter erschwert oder verhindert den Zugang zu personenbezogenen Daten bei Vertragsbeendigung oder Anbieterwechsel.',
    impactExamples: ['Datenexport nicht moeglich', 'Erzwungene Weiternutzung', 'Datenverlust bei Kuendigung'],
    typicalLikelihood: 'medium',
    typicalImpact: 'medium',
    wp248Criteria: ['K9'],
    applicableTo: ['cloud_storage', 'erp', 'crm'],
    mitigationIds: ['M-AVAIL-05', 'M-INTERV-01'],
  },

  // =========================================================================
  // RECHTE & FREIHEITEN (Rights & Freedoms)
  // =========================================================================
  {
    id: 'R-RIGHTS-01',
    category: 'rights_freedoms',
    sdmGoal: 'nichtverkettung',
    title: 'Diskriminierung durch automatisierte Verarbeitung',
    description: 'Automatisierte Entscheidungssysteme fuehren zu einer diskriminierenden Behandlung bestimmter Personengruppen aufgrund von Merkmalen wie Alter, Geschlecht, Herkunft oder Gesundheitszustand.',
    impactExamples: ['Benachteiligung bei Kreditvergabe', 'Ausschluss von Dienstleistungen', 'Ungleichbehandlung'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K1', 'K2', 'K7'],
    applicableTo: ['ai_ml', 'scoring', 'identity'],
    mitigationIds: ['M-AUTO-01', 'M-AUTO-02', 'M-TRANS-03'],
  },
  {
    id: 'R-RIGHTS-02',
    category: 'rights_freedoms',
    sdmGoal: 'nichtverkettung',
    title: 'Unzulaessiges Profiling ohne Einwilligung',
    description: 'Nutzerverhalten wird systematisch analysiert und zu Profilen zusammengefuehrt, ohne dass eine Rechtsgrundlage oder Einwilligung vorliegt.',
    impactExamples: ['Persoenlichkeitsprofile ohne Wissen', 'Gezielte Manipulation', 'Filterblase'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K1', 'K3', 'K6'],
    applicableTo: ['analytics', 'marketing', 'web_application', 'ai_ml'],
    mitigationIds: ['M-NONL-01', 'M-NONL-02', 'M-TRANS-01'],
  },
  {
    id: 'R-RIGHTS-03',
    category: 'rights_freedoms',
    sdmGoal: 'transparenz',
    title: 'Systematische Ueberwachung von Betroffenen',
    description: 'Betroffene werden systematisch ueberwacht (z.B. durch Standorttracking, E-Mail-Monitoring, Videoueberwachung), ohne angemessene Transparenz oder Rechtsgrundlage.',
    impactExamples: ['Einschuechterungseffekt (Chilling Effect)', 'Verletzung der Privatsphaere', 'Vertrauensverlust'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K3', 'K4', 'K7'],
    applicableTo: ['monitoring', 'hr_system', 'mobile_app'],
    mitigationIds: ['M-TRANS-01', 'M-TRANS-04', 'M-NONL-01'],
  },
  {
    id: 'R-RIGHTS-04',
    category: 'rights_freedoms',
    sdmGoal: 'nichtverkettung',
    title: 'Re-Identifizierung pseudonymisierter Daten',
    description: 'Pseudonymisierte oder anonymisierte Daten werden durch Zusammenfuehrung mit anderen Datenquellen re-identifiziert, wodurch der Schutz der Betroffenen aufgehoben wird.',
    impactExamples: ['Verlust der Anonymitaet', 'Unerwuenschte Identifizierung', 'Zweckentfremdung'],
    typicalLikelihood: 'low',
    typicalImpact: 'high',
    wp248Criteria: ['K1', 'K6', 'K8'],
    applicableTo: ['analytics', 'ai_ml', 'research'],
    mitigationIds: ['M-NONL-03', 'M-NONL-04', 'M-DMIN-02'],
  },
  {
    id: 'R-RIGHTS-05',
    category: 'rights_freedoms',
    sdmGoal: 'intervenierbarkeit',
    title: 'Hinderung bei Ausuebung von Betroffenenrechten',
    description: 'Betroffene werden an der Ausuebung ihrer Rechte (Auskunft, Loeschung, Berichtigung, Widerspruch) gehindert — z.B. durch fehlende Prozesse, technische Huerden oder Verzoegerungen.',
    impactExamples: ['Keine Loeschung moeglich', 'Verzoegerte Auskunft', 'Bussgeld gem. Art. 83'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K9'],
    applicableTo: ['web_application', 'crm', 'identity', 'cloud_storage'],
    mitigationIds: ['M-INTERV-01', 'M-INTERV-02', 'M-INTERV-03'],
  },
  {
    id: 'R-RIGHTS-06',
    category: 'rights_freedoms',
    sdmGoal: 'transparenz',
    title: 'Fehlende oder unzureichende Informationspflichten',
    description: 'Betroffene werden nicht oder unzureichend ueber die Verarbeitung ihrer Daten informiert (Verstoss gegen Art. 13/14 DSGVO).',
    impactExamples: ['Keine informierte Einwilligung moeglich', 'Vertrauensverlust', 'Bussgeld'],
    typicalLikelihood: 'medium',
    typicalImpact: 'medium',
    wp248Criteria: ['K9'],
    applicableTo: ['web_application', 'mobile_app', 'marketing'],
    mitigationIds: ['M-TRANS-01', 'M-TRANS-05'],
  },
  {
    id: 'R-RIGHTS-07',
    category: 'rights_freedoms',
    sdmGoal: 'datenminimierung',
    title: 'Uebermassige Datenerhebung (Verstoss Datenminimierung)',
    description: 'Es werden mehr personenbezogene Daten erhoben als fuer den Verarbeitungszweck notwendig (Verstoss gegen Art. 5 Abs. 1 lit. c DSGVO).',
    impactExamples: ['Unnoetige Risikoexposition', 'Hoeherer Schaden bei Datenpanne'],
    typicalLikelihood: 'medium',
    typicalImpact: 'medium',
    wp248Criteria: ['K5'],
    applicableTo: ['web_application', 'mobile_app', 'crm', 'hr_system'],
    mitigationIds: ['M-DMIN-01', 'M-DMIN-02', 'M-DMIN-03'],
  },

  // =========================================================================
  // DRITTLANDTRANSFER
  // =========================================================================
  {
    id: 'R-TRANS-01',
    category: 'rights_freedoms',
    sdmGoal: 'vertraulichkeit',
    title: 'Zugriff durch Drittland-Behoerden (FISA/CLOUD Act)',
    description: 'Behoerden eines Drittlandes (z.B. USA) greifen auf personenbezogene Daten zu, die bei einem Cloud-Provider in der EU oder im Drittland gespeichert sind.',
    impactExamples: ['Ueberwachung ohne Wissen', 'Kein Rechtsschutz', 'Schrems-II-Risiko'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K4', 'K5', 'K7'],
    applicableTo: ['cloud_storage', 'email_service', 'crm', 'analytics'],
    mitigationIds: ['M-TRANS-06', 'M-TRANS-07', 'M-CONF-06'],
  },
  {
    id: 'R-TRANS-02',
    category: 'rights_freedoms',
    sdmGoal: 'vertraulichkeit',
    title: 'Unzureichende Schutzgarantien bei Drittlandtransfer',
    description: 'Personenbezogene Daten werden in Drittlaender uebermittelt, ohne dass angemessene Garantien (SCC, BCR, Angemessenheitsbeschluss) vorhanden sind.',
    impactExamples: ['Rechtswidriger Transfer', 'Bussgeld', 'Untersagung der Verarbeitung'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K5', 'K7'],
    applicableTo: ['cloud_storage', 'email_service', 'crm', 'analytics'],
    mitigationIds: ['M-TRANS-06', 'M-TRANS-07', 'M-LEGAL-01'],
  },
  {
    id: 'R-TRANS-03',
    category: 'rights_freedoms',
    sdmGoal: 'transparenz',
    title: 'Intransparente Sub-Auftragsverarbeiter-Kette',
    description: 'Die Kette der Sub-Auftragsverarbeiter ist nicht transparent. Betroffene und Verantwortliche wissen nicht, wo ihre Daten tatsaechlich verarbeitet werden.',
    impactExamples: ['Unkontrollierte Datenweitergabe', 'Unbekannter Verarbeitungsort'],
    typicalLikelihood: 'medium',
    typicalImpact: 'medium',
    wp248Criteria: ['K5'],
    applicableTo: ['cloud_storage', 'crm', 'analytics'],
    mitigationIds: ['M-TRANS-01', 'M-LEGAL-02'],
  },

  // =========================================================================
  // AUTOMATISIERUNG / KI
  // =========================================================================
  {
    id: 'R-AUTO-01',
    category: 'rights_freedoms',
    sdmGoal: 'transparenz',
    title: 'KI-Fehlentscheidung mit erheblicher Auswirkung',
    description: 'Ein KI-System trifft eine fehlerhafte automatisierte Entscheidung (z.B. Ablehnung, Sperrung, Bewertung), die erhebliche Auswirkungen auf eine betroffene Person hat.',
    impactExamples: ['Unrechtmaessige Ablehnung', 'Falsche Risikoeinstufung', 'Benachteiligung'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K1', 'K2', 'K8'],
    applicableTo: ['ai_ml', 'scoring', 'hr_system'],
    mitigationIds: ['M-AUTO-01', 'M-AUTO-02', 'M-AUTO-03'],
  },
  {
    id: 'R-AUTO-02',
    category: 'rights_freedoms',
    sdmGoal: 'nichtverkettung',
    title: 'Algorithmischer Bias in Trainingsdaten',
    description: 'KI-Modelle spiegeln Vorurteile in den Trainingsdaten wider und treffen diskriminierende Entscheidungen bezueglich geschuetzter Merkmale.',
    impactExamples: ['Diskriminierung nach Geschlecht/Herkunft', 'Systematische Benachteiligung'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K1', 'K2', 'K7', 'K8'],
    applicableTo: ['ai_ml', 'scoring'],
    mitigationIds: ['M-AUTO-01', 'M-AUTO-04'],
  },
  {
    id: 'R-AUTO-03',
    category: 'rights_freedoms',
    sdmGoal: 'transparenz',
    title: 'Fehlende Erklaerbarkeit automatisierter Entscheidungen',
    description: 'Automatisierte Entscheidungen koennen den Betroffenen nicht erklaert werden ("Black Box"), sodass der Anspruch auf aussagekraeftige Informationen (Art. 22 Abs. 3) nicht erfuellt wird.',
    impactExamples: ['Keine Anfechtbarkeit', 'Vertrauensverlust', 'Verstoss gegen Art. 22'],
    typicalLikelihood: 'high',
    typicalImpact: 'medium',
    wp248Criteria: ['K2', 'K8'],
    applicableTo: ['ai_ml', 'scoring'],
    mitigationIds: ['M-AUTO-02', 'M-TRANS-03'],
  },
  {
    id: 'R-AUTO-04',
    category: 'rights_freedoms',
    sdmGoal: 'intervenierbarkeit',
    title: 'Fehlende menschliche Aufsicht bei KI-Entscheidungen',
    description: 'Automatisierte Entscheidungen werden ohne menschliche Ueberpruefung oder Interventionsmoeglichkeit getroffen, obwohl dies erforderlich waere.',
    impactExamples: ['Keine Korrekturmoeglichkeit', 'Eskalation von Fehlern'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K2', 'K8'],
    applicableTo: ['ai_ml', 'scoring', 'hr_system'],
    mitigationIds: ['M-AUTO-03', 'M-INTERV-04'],
  },
  {
    id: 'R-AUTO-05',
    category: 'confidentiality',
    sdmGoal: 'vertraulichkeit',
    title: 'Datenleck durch KI-Training mit personenbezogenen Daten',
    description: 'Personenbezogene Daten, die fuer das Training von KI-Modellen verwendet werden, koennen durch das Modell reproduziert oder extrahiert werden (Model Inversion, Membership Inference).',
    impactExamples: ['Offenlegung von Trainingsdaten', 'Re-Identifizierung'],
    typicalLikelihood: 'low',
    typicalImpact: 'high',
    wp248Criteria: ['K4', 'K8'],
    applicableTo: ['ai_ml'],
    mitigationIds: ['M-CONF-06', 'M-NONL-03', 'M-AUTO-04'],
  },

  // =========================================================================
  // ORGANISATORISCHE RISIKEN
  // =========================================================================
  {
    id: 'R-ORG-01',
    category: 'rights_freedoms',
    sdmGoal: 'transparenz',
    title: 'Fehlende oder fehlerhafte Auftragsverarbeitungsvertraege',
    description: 'Mit Auftragsverarbeitern existieren keine oder unzureichende Vertraege gemaess Art. 28 DSGVO, sodass Pflichten und Rechte nicht geregelt sind.',
    impactExamples: ['Keine Kontrolle ueber Verarbeiter', 'Bussgeld', 'Datenmissbrauch durch Verarbeiter'],
    typicalLikelihood: 'medium',
    typicalImpact: 'medium',
    wp248Criteria: ['K5'],
    applicableTo: ['cloud_storage', 'crm', 'analytics', 'email_service'],
    mitigationIds: ['M-LEGAL-02', 'M-LEGAL-03'],
  },
  {
    id: 'R-ORG-02',
    category: 'rights_freedoms',
    sdmGoal: 'datenminimierung',
    title: 'Fehlende Loeschprozesse / Ueberschreitung von Aufbewahrungsfristen',
    description: 'Personenbezogene Daten werden laenger als notwendig gespeichert, weil keine automatischen Loeschprozesse oder Aufbewahrungsfristen definiert sind.',
    impactExamples: ['Unnoetige Risikoexposition', 'Verstoss gegen Speicherbegrenzung', 'Bussgeld'],
    typicalLikelihood: 'high',
    typicalImpact: 'medium',
    wp248Criteria: ['K5'],
    applicableTo: ['database', 'cloud_storage', 'crm', 'erp', 'email_service'],
    mitigationIds: ['M-DMIN-03', 'M-DMIN-04'],
  },
  {
    id: 'R-ORG-03',
    category: 'integrity',
    sdmGoal: 'integritaet',
    title: 'Unzureichende Schulung/Sensibilisierung der Mitarbeiter',
    description: 'Mitarbeiter sind nicht ausreichend im Umgang mit personenbezogenen Daten geschult und verursachen durch Unkenntnis Datenpannen oder Verarbeitungsfehler.',
    impactExamples: ['Versehentliche Datenweitergabe', 'Phishing-Erfolg', 'Fehlerhafte Verarbeitung'],
    typicalLikelihood: 'high',
    typicalImpact: 'medium',
    wp248Criteria: ['K5', 'K7'],
    applicableTo: ['hr_system', 'email_service', 'crm', 'web_application'],
    mitigationIds: ['M-ORG-01', 'M-ORG-02'],
  },
  {
    id: 'R-ORG-04',
    category: 'rights_freedoms',
    sdmGoal: 'transparenz',
    title: 'Fehlende Datenpannen-Erkennung und -Meldung',
    description: 'Datenpannen werden nicht rechtzeitig erkannt oder nicht innerhalb der 72-Stunden-Frist (Art. 33 DSGVO) an die Aufsichtsbehoerde gemeldet.',
    impactExamples: ['Verspaetete Meldung', 'Bussgeld', 'Verzoegerte Benachrichtigung Betroffener'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K5'],
    applicableTo: ['web_application', 'cloud_storage', 'database', 'api_service'],
    mitigationIds: ['M-ORG-03', 'M-ORG-04', 'M-INT-02'],
  },

  // =========================================================================
  // BESONDERE DATENKATEGORIEN
  // =========================================================================
  {
    id: 'R-SPEC-01',
    category: 'confidentiality',
    sdmGoal: 'vertraulichkeit',
    title: 'Kompromittierung besonderer Datenkategorien (Art. 9)',
    description: 'Besonders schutzwuerdige Daten (Gesundheit, Religion, Biometrie, Gewerkschaftszugehoerigkeit) werden offengelegt oder missbraucht.',
    impactExamples: ['Schwerwiegende Diskriminierung', 'Existenzielle Bedrohung', 'Soziale Ausgrenzung'],
    typicalLikelihood: 'low',
    typicalImpact: 'high',
    wp248Criteria: ['K4', 'K7'],
    applicableTo: ['hr_system', 'health_system', 'identity'],
    mitigationIds: ['M-CONF-06', 'M-CONF-01', 'M-CONF-04'],
  },
  {
    id: 'R-SPEC-02',
    category: 'rights_freedoms',
    sdmGoal: 'intervenierbarkeit',
    title: 'Verarbeitung von Kinderdaten ohne angemessenen Schutz',
    description: 'Daten von Minderjaehrigen werden verarbeitet, ohne die besonderen Schutzmassnahmen fuer Kinder (Art. 8, EG 38 DSGVO) zu beachten.',
    impactExamples: ['Langzeitfolgen fuer Minderjaehrige', 'Einschraenkung der Entwicklung', 'Manipulation'],
    typicalLikelihood: 'low',
    typicalImpact: 'high',
    wp248Criteria: ['K4', 'K7'],
    applicableTo: ['web_application', 'mobile_app', 'education'],
    mitigationIds: ['M-LEGAL-04', 'M-DMIN-01', 'M-TRANS-01'],
  },
]

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

export function getRisksByCategory(category: DSFARiskCategory): CatalogRisk[] {
  return RISK_CATALOG.filter(r => r.category === category)
}

export function getRisksBySDMGoal(goal: SDMGoal): CatalogRisk[] {
  return RISK_CATALOG.filter(r => r.sdmGoal === goal)
}

export function getRisksByWP248Criterion(criterionCode: string): CatalogRisk[] {
  return RISK_CATALOG.filter(r => r.wp248Criteria.includes(criterionCode))
}

export function getRisksByComponent(component: string): CatalogRisk[] {
  return RISK_CATALOG.filter(r => r.applicableTo.includes(component))
}

export function getCatalogRiskById(id: string): CatalogRisk | undefined {
  return RISK_CATALOG.find(r => r.id === id)
}

export const RISK_CATEGORY_LABELS: Record<DSFARiskCategory, string> = {
  confidentiality: 'Vertraulichkeit',
  integrity: 'Integritaet',
  availability: 'Verfuegbarkeit',
  rights_freedoms: 'Rechte & Freiheiten',
}

export const COMPONENT_FAMILY_LABELS: Record<string, string> = {
  identity: 'Identitaet & Zugang',
  cloud_storage: 'Cloud-Speicher',
  web_application: 'Web-Anwendung',
  api_service: 'API-Service',
  email_service: 'E-Mail-Dienst',
  mobile_app: 'Mobile App',
  database: 'Datenbank',
  crm: 'CRM-System',
  erp: 'ERP-System',
  analytics: 'Analyse/Tracking',
  marketing: 'Marketing',
  ai_ml: 'KI / Machine Learning',
  scoring: 'Scoring / Bewertung',
  hr_system: 'HR-System',
  health_system: 'Gesundheitssystem',
  monitoring: 'Ueberwachungssystem',
  support_system: 'Support-System',
  education: 'Bildungsplattform',
  research: 'Forschung',
}
