/**
 * DSFA KI-Risikokatalog - Vordefinierte KI-spezifische Risiken
 *
 * ~25 Risiken gegliedert nach:
 * - Bias & Diskriminierung
 * - Erklaerbarkeit & Transparenz
 * - Datenqualitaet & Training
 * - Sicherheit & Robustheit
 * - Automatisierte Entscheidungen
 * - Ueberwachung & Kontrolle
 * - Privatsphaere & Datenschutz
 *
 * Quellen: AI Act (EU 2024/1689), Art. 22 DSGVO, EDPB Guidelines,
 * BSI-TR-03161, SDM V2.0
 */

import type { CatalogRisk } from './risk-catalog'

// =============================================================================
// KI-RISIKOKATALOG
// =============================================================================

export const AI_RISK_CATALOG: CatalogRisk[] = [
  // =========================================================================
  // BIAS & DISKRIMINIERUNG
  // =========================================================================
  {
    id: 'R-AI-BIAS-01',
    category: 'rights_freedoms',
    sdmGoal: 'nichtverkettung',
    title: 'Algorithmische Diskriminierung durch verzerrte Trainingsdaten',
    description: 'Das KI-System reproduziert oder verstaerkt bestehende gesellschaftliche Vorurteile durch unausgewogene oder historisch verzerrte Trainingsdaten, was zu diskriminierenden Ergebnissen fuehrt.',
    impactExamples: ['Benachteiligung geschuetzter Gruppen', 'Ungleichbehandlung bei Bewerbungsverfahren', 'Diskriminierende Kreditvergabe'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K1', 'K7', 'K8'],
    applicableTo: ['decision_support', 'automated_processing', 'recommendation', 'predictive', 'analytics'],
    mitigationIds: ['M-AI-BIAS-01', 'M-AI-BIAS-02', 'M-AI-DATA-01'],
  },
  {
    id: 'R-AI-BIAS-02',
    category: 'rights_freedoms',
    sdmGoal: 'nichtverkettung',
    title: 'Feedback-Loop-Verstaerkung von Bias',
    description: 'KI-Entscheidungen beeinflussen kuenftige Trainingsdaten und verstaerken damit bestehende Verzerrungen in einem Teufelskreis (Feedback Loop).',
    impactExamples: ['Zunehmende Polarisierung', 'Verstaerkte Ungleichbehandlung ueber Zeit', 'Systematische Benachteiligung'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K1', 'K8'],
    applicableTo: ['recommendation', 'predictive', 'automated_processing'],
    mitigationIds: ['M-AI-BIAS-02', 'M-AI-MON-01', 'M-AI-MON-02'],
  },
  {
    id: 'R-AI-BIAS-03',
    category: 'rights_freedoms',
    sdmGoal: 'intervenierbarkeit',
    title: 'Proxy-Diskriminierung durch korrelierte Merkmale',
    description: 'Das KI-System diskriminiert indirekt anhand von Merkmalen, die mit geschuetzten Eigenschaften korrelieren (z.B. Postleitzahl als Proxy fuer Ethnizitaet).',
    impactExamples: ['Indirekte Diskriminierung', 'Verletzung des Gleichheitsgrundsatzes', 'Schwer nachweisbare Benachteiligung'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K1', 'K6'],
    applicableTo: ['predictive', 'decision_support', 'automated_processing', 'analytics'],
    mitigationIds: ['M-AI-BIAS-01', 'M-AI-BIAS-03', 'M-AI-EXPL-01'],
  },

  // =========================================================================
  // ERKLAERBARKEIT & TRANSPARENZ
  // =========================================================================
  {
    id: 'R-AI-EXPL-01',
    category: 'rights_freedoms',
    sdmGoal: 'transparenz',
    title: 'Fehlende Erklaerbarkeit von KI-Entscheidungen (Black Box)',
    description: 'Entscheidungen des KI-Systems koennen nicht nachvollzogen oder erklaert werden, was die Wahrnehmung von Betroffenenrechten und die Aufsicht erschwert.',
    impactExamples: ['Betroffene koennen Entscheidungen nicht anfechten', 'Aufsichtsbehoerden koennen nicht pruefen', 'Vertrauensverlust'],
    typicalLikelihood: 'high',
    typicalImpact: 'medium',
    wp248Criteria: ['K2', 'K8', 'K9'],
    applicableTo: ['decision_support', 'automated_processing', 'predictive', 'recommendation'],
    mitigationIds: ['M-AI-EXPL-01', 'M-AI-EXPL-02', 'M-AI-EXPL-03'],
  },
  {
    id: 'R-AI-EXPL-02',
    category: 'rights_freedoms',
    sdmGoal: 'transparenz',
    title: 'Taeuschung ueber KI-Einsatz (fehlende Kennzeichnung)',
    description: 'Nutzer wissen nicht, dass sie mit einem KI-System interagieren oder dass Inhalte KI-generiert sind (Verstoss gegen Transparenzpflicht AI Act Art. 50).',
    impactExamples: ['Vertrauensmissbrauch', 'Manipulation durch Deepfakes', 'Fehlende informierte Einwilligung'],
    typicalLikelihood: 'medium',
    typicalImpact: 'medium',
    wp248Criteria: ['K8'],
    applicableTo: ['chatbot', 'content_generation', 'speech_processing', 'image_recognition'],
    mitigationIds: ['M-AI-EXPL-03', 'M-AI-TRANS-01'],
  },
  {
    id: 'R-AI-EXPL-03',
    category: 'rights_freedoms',
    sdmGoal: 'transparenz',
    title: 'Unzureichende Dokumentation der KI-Entscheidungslogik',
    description: 'Die Funktionsweise des KI-Systems ist nicht ausreichend dokumentiert, um die gesetzlichen Anforderungen an Technische Dokumentation (Art. 11 AI Act) zu erfuellen.',
    impactExamples: ['Verstoss gegen Dokumentationspflichten', 'Keine Reproduzierbarkeit', 'Erschwerter Audit'],
    typicalLikelihood: 'medium',
    typicalImpact: 'medium',
    wp248Criteria: ['K8'],
    applicableTo: ['decision_support', 'automated_processing', 'predictive', 'recommendation', 'analytics'],
    mitigationIds: ['M-AI-EXPL-02', 'M-AI-DOC-01'],
  },

  // =========================================================================
  // DATENQUALITAET & TRAINING
  // =========================================================================
  {
    id: 'R-AI-DATA-01',
    category: 'integrity',
    sdmGoal: 'integritaet',
    title: 'Schlechte Trainingsdatenqualitaet fuehrt zu fehlerhaften Ergebnissen',
    description: 'Unvollstaendige, veraltete oder fehlerhafte Trainingsdaten fuehren zu unzuverlaessigen KI-Ergebnissen, die Entscheidungen negativ beeinflussen.',
    impactExamples: ['Falsche Vorhersagen', 'Fehlerhafte Klassifizierungen', 'Unzuverlaessige Empfehlungen'],
    typicalLikelihood: 'medium',
    typicalImpact: 'medium',
    wp248Criteria: ['K8'],
    applicableTo: ['predictive', 'decision_support', 'recommendation', 'image_recognition', 'analytics'],
    mitigationIds: ['M-AI-DATA-01', 'M-AI-DATA-02', 'M-AI-MON-01'],
  },
  {
    id: 'R-AI-DATA-02',
    category: 'confidentiality',
    sdmGoal: 'vertraulichkeit',
    title: 'Unbefugte Nutzung personenbezogener Daten im Training',
    description: 'Personenbezogene Daten werden ohne ausreichende Rechtsgrundlage oder Einwilligung fuer das Training des KI-Modells verwendet.',
    impactExamples: ['Verletzung des Zweckbindungsgrundsatzes', 'Fehlende Rechtsgrundlage', 'Verstoss gegen Informationspflichten'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K4', 'K5', 'K8'],
    applicableTo: ['content_generation', 'recommendation', 'predictive', 'speech_processing', 'image_recognition'],
    mitigationIds: ['M-AI-DATA-03', 'M-AI-PRIV-01', 'M-AI-PRIV-02'],
  },
  {
    id: 'R-AI-DATA-03',
    category: 'integrity',
    sdmGoal: 'datenminimierung',
    title: 'Uebermassige Datenerhebung fuer KI-Training',
    description: 'Fuer das Training werden mehr personenbezogene Daten erhoben als fuer den Zweck erforderlich, was den Grundsatz der Datenminimierung verletzt.',
    impactExamples: ['Verstoss gegen Art. 5 Abs. 1 lit. c DSGVO', 'Erhoehtes Risiko bei Datenleck', 'Unnoetige Profilbildung'],
    typicalLikelihood: 'medium',
    typicalImpact: 'medium',
    wp248Criteria: ['K5', 'K8'],
    applicableTo: ['predictive', 'recommendation', 'analytics', 'speech_processing'],
    mitigationIds: ['M-AI-PRIV-01', 'M-AI-PRIV-03', 'M-AI-DATA-01'],
  },
  {
    id: 'R-AI-DATA-04',
    category: 'integrity',
    sdmGoal: 'integritaet',
    title: 'Data Poisoning / Manipulation der Trainingsdaten',
    description: 'Boesartige Akteure fuegen gezielt manipulierte Daten in den Trainingsdatensatz ein, um das Verhalten des KI-Systems zu verfaelschen.',
    impactExamples: ['Gezielte Fehlklassifizierungen', 'Umgehung von Sicherheitsmechanismen', 'Vertrauensverlust'],
    typicalLikelihood: 'low',
    typicalImpact: 'high',
    wp248Criteria: ['K8'],
    applicableTo: ['image_recognition', 'content_generation', 'predictive', 'decision_support'],
    mitigationIds: ['M-AI-SEC-01', 'M-AI-DATA-02', 'M-AI-SEC-03'],
  },

  // =========================================================================
  // SICHERHEIT & ROBUSTHEIT
  // =========================================================================
  {
    id: 'R-AI-SEC-01',
    category: 'availability',
    sdmGoal: 'verfuegbarkeit',
    title: 'Adversarial Attacks auf KI-Modell',
    description: 'Angreifer nutzen gezielt manipulierte Eingaben (Adversarial Examples), um das KI-System zu falschen Ausgaben zu verleiten.',
    impactExamples: ['Umgehung von Schutzmechanismen', 'Falsche Identifikation', 'Fehlerhafte Entscheidungen'],
    typicalLikelihood: 'low',
    typicalImpact: 'high',
    wp248Criteria: ['K8'],
    applicableTo: ['image_recognition', 'speech_processing', 'decision_support', 'automated_processing'],
    mitigationIds: ['M-AI-SEC-01', 'M-AI-SEC-02', 'M-AI-MON-01'],
  },
  {
    id: 'R-AI-SEC-02',
    category: 'confidentiality',
    sdmGoal: 'vertraulichkeit',
    title: 'Prompt Injection / Jailbreaking',
    description: 'Nutzer umgehen durch manipulierte Eingaben die Sicherheitsschranken des KI-Systems und extrahieren vertrauliche Informationen oder loesen unerwuenschtes Verhalten aus.',
    impactExamples: ['Offenlegung von Systemprompts', 'Extraktion von Trainingsdaten', 'Generierung schaedlicher Inhalte'],
    typicalLikelihood: 'high',
    typicalImpact: 'medium',
    wp248Criteria: ['K4', 'K8'],
    applicableTo: ['chatbot', 'content_generation', 'decision_support'],
    mitigationIds: ['M-AI-SEC-03', 'M-AI-SEC-04', 'M-AI-MON-02'],
  },
  {
    id: 'R-AI-SEC-03',
    category: 'confidentiality',
    sdmGoal: 'vertraulichkeit',
    title: 'Model Inversion / Membership Inference',
    description: 'Angreifer rekonstruieren Trainingsdaten aus dem KI-Modell oder stellen fest, ob bestimmte Daten im Training verwendet wurden.',
    impactExamples: ['Rekonstruktion personenbezogener Daten', 'Verletzung der Vertraulichkeit', 'Re-Identifizierung anonymisierter Daten'],
    typicalLikelihood: 'low',
    typicalImpact: 'high',
    wp248Criteria: ['K4', 'K8'],
    applicableTo: ['predictive', 'recommendation', 'image_recognition', 'content_generation'],
    mitigationIds: ['M-AI-PRIV-02', 'M-AI-SEC-01', 'M-AI-PRIV-04'],
  },
  {
    id: 'R-AI-SEC-04',
    category: 'availability',
    sdmGoal: 'verfuegbarkeit',
    title: 'Halluzination / Generierung falscher Informationen',
    description: 'Das KI-System generiert plausibel klingende aber faktisch falsche Informationen (Halluzinationen), die zu Fehlentscheidungen fuehren koennen.',
    impactExamples: ['Falsche Rechtsauskunft', 'Fehlerhafte medizinische Empfehlung', 'Vertrauensverlust in das System'],
    typicalLikelihood: 'high',
    typicalImpact: 'medium',
    wp248Criteria: ['K8', 'K9'],
    applicableTo: ['chatbot', 'content_generation', 'decision_support', 'translation'],
    mitigationIds: ['M-AI-SEC-05', 'M-AI-MON-01', 'M-AI-AUTO-02'],
  },

  // =========================================================================
  // AUTOMATISIERTE ENTSCHEIDUNGEN (ART. 22 DSGVO)
  // =========================================================================
  {
    id: 'R-AI-AUTO-01',
    category: 'rights_freedoms',
    sdmGoal: 'intervenierbarkeit',
    title: 'Automatisierte Einzelentscheidung ohne menschliche Beteiligung',
    description: 'Das KI-System trifft Entscheidungen mit Rechtswirkung ohne angemessene menschliche Beteiligung, was gegen Art. 22 Abs. 1 DSGVO verstoesst.',
    impactExamples: ['Rechtswidrige automatisierte Ablehnung', 'Fehlende Anfechtungsmoeglichkeit', 'Verletzung der Menschenwuerde'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K2', 'K8', 'K9'],
    applicableTo: ['automated_processing', 'decision_support', 'predictive'],
    mitigationIds: ['M-AI-AUTO-01', 'M-AI-AUTO-02', 'M-AI-AUTO-03'],
  },
  {
    id: 'R-AI-AUTO-02',
    category: 'rights_freedoms',
    sdmGoal: 'intervenierbarkeit',
    title: 'Unzureichende menschliche Aufsicht (Human Oversight)',
    description: 'Die menschliche Aufsicht ueber das KI-System ist unzureichend oder pro forma, sodass problematische Entscheidungen nicht erkannt und korrigiert werden.',
    impactExamples: ['Automation Bias bei Entscheidern', 'Blindes Vertrauen in KI-Ergebnis', 'Fehlende Korrekturmoeglichkeit'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K2', 'K8'],
    applicableTo: ['decision_support', 'automated_processing', 'predictive', 'analytics'],
    mitigationIds: ['M-AI-AUTO-01', 'M-AI-AUTO-04', 'M-AI-EXPL-01'],
  },
  {
    id: 'R-AI-AUTO-03',
    category: 'rights_freedoms',
    sdmGoal: 'intervenierbarkeit',
    title: 'Fehlende Widerspruchsmoeglichkeit bei KI-Entscheidungen',
    description: 'Betroffene haben keine effektive Moeglichkeit, einer KI-gestuetzten Entscheidung zu widersprechen oder eine manuelle Ueberpruefung zu verlangen.',
    impactExamples: ['Verletzung von Art. 22 Abs. 3 DSGVO', 'Rechtsschutzluecke', 'Machtungleichgewicht'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K2', 'K9'],
    applicableTo: ['automated_processing', 'decision_support', 'predictive'],
    mitigationIds: ['M-AI-AUTO-03', 'M-AI-AUTO-05'],
  },

  // =========================================================================
  // UEBERWACHUNG & KONTROLLE
  // =========================================================================
  {
    id: 'R-AI-MON-01',
    category: 'integrity',
    sdmGoal: 'integritaet',
    title: 'Model Drift - Verschlechterung der KI-Leistung ueber Zeit',
    description: 'Die Genauigkeit und Zuverlaessigkeit des KI-Modells verschlechtert sich durch veraenderte Datenverteilungen (Data Drift) oder Konzeptaenderungen (Concept Drift).',
    impactExamples: ['Zunehmend fehlerhafte Entscheidungen', 'Unbemerkte Qualitaetsverschlechterung', 'Veraenderte Diskriminierungsmuster'],
    typicalLikelihood: 'high',
    typicalImpact: 'medium',
    wp248Criteria: ['K8'],
    applicableTo: ['predictive', 'recommendation', 'decision_support', 'analytics', 'image_recognition'],
    mitigationIds: ['M-AI-MON-01', 'M-AI-MON-02', 'M-AI-DATA-02'],
  },
  {
    id: 'R-AI-MON-02',
    category: 'availability',
    sdmGoal: 'verfuegbarkeit',
    title: 'Fehlende Notfallmassnahmen bei KI-Fehlfunktion',
    description: 'Es existieren keine Fallback-Mechanismen oder Notfallprozeduren fuer den Fall, dass das KI-System fehlerhafte oder schaedliche Ergebnisse produziert.',
    impactExamples: ['Langandauernde Stoerung', 'Kaskadierende Fehler', 'Keine manuelle Alternative'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K8'],
    applicableTo: ['automated_processing', 'decision_support', 'chatbot', 'predictive'],
    mitigationIds: ['M-AI-MON-03', 'M-AI-AUTO-01', 'M-AI-MON-04'],
  },

  // =========================================================================
  // PRIVATSPHAERE & DATENSCHUTZ
  // =========================================================================
  {
    id: 'R-AI-PRIV-01',
    category: 'confidentiality',
    sdmGoal: 'datenminimierung',
    title: 'Unbeabsichtigte Profilbildung durch KI-Analyse',
    description: 'Das KI-System erstellt durch Zusammenfuehrung und Analyse verschiedener Datenpunkte detaillierte Persoenlichkeitsprofile, die ueber den urspruenglichen Verarbeitungszweck hinausgehen.',
    impactExamples: ['Unerlaubtes Profiling', 'Verletzung der Zweckbindung', 'Erstellung umfassender Persoenlichkeitsbilder'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K1', 'K6', 'K8'],
    applicableTo: ['analytics', 'recommendation', 'predictive', 'chatbot'],
    mitigationIds: ['M-AI-PRIV-01', 'M-AI-PRIV-03', 'M-AI-DATA-03'],
  },
  {
    id: 'R-AI-PRIV-02',
    category: 'confidentiality',
    sdmGoal: 'vertraulichkeit',
    title: 'Datenleck durch KI-Ausgaben (Output Leakage)',
    description: 'Das KI-System gibt in seinen Antworten unbeabsichtigt personenbezogene oder vertrauliche Daten aus den Trainingsdaten preis.',
    impactExamples: ['Preisgabe von Trainingsdaten', 'Offenlegung vertraulicher Geschaeftsinformationen', 'Verletzung des Berufsgeheimnisses'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K4', 'K8'],
    applicableTo: ['chatbot', 'content_generation', 'decision_support', 'translation'],
    mitigationIds: ['M-AI-PRIV-02', 'M-AI-SEC-04', 'M-AI-PRIV-04'],
  },
  {
    id: 'R-AI-PRIV-03',
    category: 'confidentiality',
    sdmGoal: 'nichtverkettung',
    title: 'Drittlandtransfer durch Cloud-basierte KI-Dienste',
    description: 'Personenbezogene Daten werden zur KI-Verarbeitung in Drittlaender uebertragen, ohne dass angemessene Garantien bestehen (Art. 44 ff. DSGVO).',
    impactExamples: ['Unzulaessiger Drittlandtransfer', 'Zugriff durch auslaendische Behoerden', 'Verlust der Datensouveraenitaet'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K5', 'K8'],
    applicableTo: ['chatbot', 'content_generation', 'translation', 'speech_processing', 'image_recognition'],
    mitigationIds: ['M-AI-PRIV-05', 'M-AI-PRIV-06'],
  },
  {
    id: 'R-AI-PRIV-04',
    category: 'rights_freedoms',
    sdmGoal: 'datenminimierung',
    title: 'Verarbeitung besonderer Datenkategorien durch KI ohne explizite Einwilligung',
    description: 'Das KI-System verarbeitet oder leitet besondere Kategorien personenbezogener Daten ab (Art. 9 DSGVO), z.B. Gesundheitsdaten aus Schreibmustern oder ethnische Herkunft aus Bildern.',
    impactExamples: ['Verstoss gegen Art. 9 DSGVO', 'Diskriminierung aufgrund sensibler Merkmale', 'Verletzung der Menschenwuerde'],
    typicalLikelihood: 'medium',
    typicalImpact: 'high',
    wp248Criteria: ['K4', 'K7', 'K8'],
    applicableTo: ['image_recognition', 'speech_processing', 'analytics', 'predictive'],
    mitigationIds: ['M-AI-PRIV-01', 'M-AI-DATA-03', 'M-AI-BIAS-01'],
  },
]

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

/**
 * Gibt KI-Risiken zurueck, die fuer einen bestimmten Use-Case-Typ relevant sind
 */
export function getAIRisksForUseCaseType(useCaseType: string): CatalogRisk[] {
  return AI_RISK_CATALOG.filter(risk => risk.applicableTo.includes(useCaseType))
}

/**
 * Gibt KI-Risiken zurueck, die einem bestimmten SDM-Gewaehrleistungsziel zugeordnet sind
 */
export function getAIRisksBySDMGoal(goal: string): CatalogRisk[] {
  return AI_RISK_CATALOG.filter(risk => risk.sdmGoal === goal)
}

/**
 * Gibt alle KI-Risiken zurueck, die fuer Art. 22 DSGVO relevant sind
 */
export function getArt22Risks(): CatalogRisk[] {
  return AI_RISK_CATALOG.filter(risk => risk.wp248Criteria.includes('K2'))
}
