"""
Compliance Risks Seed Data.

Contains potential risks for Breakpilot PWA based on regulatory requirements.
Each risk is assessed with likelihood (1-5) and impact (1-5).

Risk Categories:
- data_breach: Potential data breaches or unauthorized access
- compliance_gap: Non-compliance with regulations
- vendor_risk: Third-party/vendor related risks
- operational: Operational and availability risks
- legal: Legal and contractual risks
- reputational: Reputation and trust risks
"""

from typing import List, Dict, Any

# Likelihood Scale:
# 1 = Very Unlikely (< 5% chance per year)
# 2 = Unlikely (5-20% chance per year)
# 3 = Possible (20-50% chance per year)
# 4 = Likely (50-80% chance per year)
# 5 = Very Likely (> 80% chance per year)

# Impact Scale:
# 1 = Negligible (< 1.000 EUR, no operational impact)
# 2 = Minor (1.000-10.000 EUR, minor disruption)
# 3 = Moderate (10.000-100.000 EUR, significant disruption)
# 4 = Major (100.000-1.000.000 EUR, severe impact)
# 5 = Critical (> 1.000.000 EUR, existential threat)

RISKS_SEED: List[Dict[str, Any]] = [
    # ========================================================================
    # Datenschutz-Risiken (DSGVO)
    # ========================================================================
    {
        "risk_id": "RISK-001",
        "title": "Unbefugter Zugriff auf Schueler-PII",
        "description": "Angreifer oder unbefugte Mitarbeiter koennten auf personenbezogene Daten von Schuelern zugreifen (Namen, Noten, Lernfortschritt). Dies wuerde eine meldepflichtige Datenpanne nach Art. 33 DSGVO darstellen.",
        "category": "data_breach",
        "likelihood": 2,
        "impact": 4,
        "mitigating_controls": ["IAM-001", "IAM-003", "CRYPTO-001", "OPS-001"],
        "owner": "Datenschutzbeauftragter",
        "treatment_plan": "RBAC strikt umsetzen, Mandantentrennung pruefen, regelmaessige Access Reviews durchfuehren, Logging aller Zugriffe auf PII.",
        "related_regulations": ["GDPR", "BDSG"],
    },
    {
        "risk_id": "RISK-002",
        "title": "Fehlende oder ungueltige Einwilligungen",
        "description": "Verarbeitung von Daten ohne gueltige Einwilligung oder Rechtsgrundlage. Insbesondere bei minderjaehrigen Schuelern ist die Einwilligung der Erziehungsberechtigten erforderlich.",
        "category": "compliance_gap",
        "likelihood": 3,
        "impact": 3,
        "mitigating_controls": ["PRIV-001", "PRIV-003", "GOV-001"],
        "owner": "Datenschutzbeauftragter",
        "treatment_plan": "Consent-Management-System implementieren, Altersverifikation, Double-Opt-In fuer Eltern, Dokumentation aller Einwilligungen.",
        "related_regulations": ["GDPR", "TDDDG"],
    },
    {
        "risk_id": "RISK-003",
        "title": "Unvollstaendige Betroffenenrechte-Umsetzung",
        "description": "Art. 15-22 DSGVO Anfragen (Auskunft, Loeschung, Berichtigung, Portabilitaet) werden nicht fristgerecht oder unvollstaendig beantwortet.",
        "category": "compliance_gap",
        "likelihood": 2,
        "impact": 3,
        "mitigating_controls": ["PRIV-004", "GOV-005"],
        "owner": "Datenschutzbeauftragter",
        "treatment_plan": "DSR-Workflow automatisieren, Fristen-Tracking implementieren, Export-Funktion fuer alle Nutzerdaten bereitstellen.",
        "related_regulations": ["GDPR"],
    },
    {
        "risk_id": "RISK-004",
        "title": "PII in Logs und Fehlerberichten",
        "description": "Personenbezogene Daten werden versehentlich in Logs, Fehlerberichten oder Analytics-Daten erfasst und koennten durch Dritte eingesehen werden.",
        "category": "data_breach",
        "likelihood": 3,
        "impact": 2,
        "mitigating_controls": ["PRIV-007", "OPS-001", "SDLC-001"],
        "owner": "Engineering Lead",
        "treatment_plan": "PII-Redactor in allen Logging-Pipelines, SAST-Regeln fuer PII-Leaks, Log-Retention-Policy (max 30 Tage).",
        "related_regulations": ["GDPR"],
    },

    # ========================================================================
    # KI-Risiken (AI Act)
    # ========================================================================
    {
        "risk_id": "RISK-005",
        "title": "Bias in KI-generierten Lerninhalten",
        "description": "KI-Modelle koennten verzerrte oder diskriminierende Inhalte generieren, die bestimmte Schuelergruppen benachteiligen.",
        "category": "compliance_gap",
        "likelihood": 3,
        "impact": 3,
        "mitigating_controls": ["AI-001", "AI-003", "AI-004"],
        "owner": "AI/ML Lead",
        "treatment_plan": "Bias-Monitoring implementieren, Human-in-the-Loop fuer alle KI-Outputs, regelmaessige Audits der Trainingsdaten.",
        "related_regulations": ["AIACT"],
    },
    {
        "risk_id": "RISK-006",
        "title": "Fehlende KI-Transparenz gegenueber Nutzern",
        "description": "Nutzer werden nicht ausreichend darueber informiert, wenn KI-Systeme Entscheidungen treffen oder Inhalte generieren (Art. 13 AI Act).",
        "category": "compliance_gap",
        "likelihood": 2,
        "impact": 3,
        "mitigating_controls": ["AI-002", "AI-005", "GOV-001"],
        "owner": "Product Owner",
        "treatment_plan": "KI-Disclosure in UI implementieren, Model Cards erstellen, Transparenzbericht veroeffentlichen.",
        "related_regulations": ["AIACT"],
    },
    {
        "risk_id": "RISK-007",
        "title": "Unzureichende KI-Risikobewertung",
        "description": "Bildungs-KI koennte als High-Risk nach AI Act klassifiziert werden, ohne dass die entsprechenden Anforderungen (Art. 9-15) erfuellt sind.",
        "category": "compliance_gap",
        "likelihood": 3,
        "impact": 4,
        "mitigating_controls": ["AI-005", "GOV-001", "AUD-001"],
        "owner": "Compliance Officer",
        "treatment_plan": "AI Act Impact Assessment durchfuehren, Risikoklassifizierung dokumentieren, Konformitaetsbewertung vorbereiten.",
        "related_regulations": ["AIACT"],
    },

    # ========================================================================
    # Cybersecurity-Risiken (CRA, NIS2)
    # ========================================================================
    {
        "risk_id": "RISK-008",
        "title": "Schwachstellen in Abhaengigkeiten",
        "description": "Bekannte CVEs in Third-Party-Libraries werden nicht zeitnah gepatcht und koennten ausgenutzt werden.",
        "category": "operational",
        "likelihood": 4,
        "impact": 4,
        "mitigating_controls": ["SDLC-002", "SDLC-005", "OPS-004"],
        "owner": "Engineering Lead",
        "treatment_plan": "Trivy/Grype in CI/CD, automatische Dependency-Updates (Dependabot), SLA: Critical CVEs < 7 Tage patchen.",
        "related_regulations": ["CRA", "NIS2"],
    },
    {
        "risk_id": "RISK-009",
        "title": "Fehlende SBOM fuer CRA-Compliance",
        "description": "Ohne Software Bill of Materials (SBOM) koennen Schwachstellen nicht effektiv verfolgt werden. CRA verlangt SBOM ab 2027.",
        "category": "compliance_gap",
        "likelihood": 2,
        "impact": 3,
        "mitigating_controls": ["CRA-001", "SDLC-005"],
        "owner": "Engineering Lead",
        "treatment_plan": "CycloneDX SBOM in CI generieren, SBOM-Repository aufbauen, VEX (Vulnerability Exploitability eXchange) implementieren.",
        "related_regulations": ["CRA"],
    },
    {
        "risk_id": "RISK-010",
        "title": "Unzureichende Incident Response",
        "description": "Bei einem Sicherheitsvorfall fehlen klare Prozesse, was zu verzoegerter Reaktion und erhoehtem Schaden fuehrt.",
        "category": "operational",
        "likelihood": 2,
        "impact": 4,
        "mitigating_controls": ["GOV-005", "OPS-003"],
        "owner": "Security Lead",
        "treatment_plan": "Incident Response Plan dokumentieren, Runbooks erstellen, Tabletop-Uebungen durchfuehren, Notfall-Kontakte pflegen.",
        "related_regulations": ["NIS2", "GDPR"],
    },
    {
        "risk_id": "RISK-011",
        "title": "Secrets in Code oder Logs",
        "description": "API-Keys, Passwoerter oder andere Secrets werden versehentlich ins Repository committed oder in Logs geschrieben.",
        "category": "data_breach",
        "likelihood": 3,
        "impact": 4,
        "mitigating_controls": ["SDLC-003", "CRYPTO-003"],
        "owner": "Engineering Lead",
        "treatment_plan": "Gitleaks/TruffleHog in Pre-Commit-Hooks, Vault fuer Secrets, automatische Key-Rotation.",
        "related_regulations": ["CRA"],
    },

    # ========================================================================
    # Vendor & Supply Chain Risiken
    # ========================================================================
    {
        "risk_id": "RISK-012",
        "title": "Drittanbieter-Datenweitergabe ohne AVV",
        "description": "Personenbezogene Daten werden an Cloud-Provider oder Subunternehmer uebermittelt, ohne dass ein Auftragsverarbeitungsvertrag (AVV) vorliegt.",
        "category": "vendor_risk",
        "likelihood": 2,
        "impact": 3,
        "mitigating_controls": ["PRIV-005"],
        "owner": "Datenschutzbeauftragter",
        "treatment_plan": "Vendor-Register fuehren, AVVs mit allen Auftragsverarbeitern abschliessen, regelmaessige Ueberpruefung.",
        "related_regulations": ["GDPR"],
    },
    {
        "risk_id": "RISK-013",
        "title": "US-Cloud-Dienste ohne angemessene Garantien",
        "description": "Nutzung von US-Cloud-Diensten ohne EU-US Data Privacy Framework Zertifizierung oder SCCs, was nach Schrems II problematisch ist.",
        "category": "vendor_risk",
        "likelihood": 2,
        "impact": 4,
        "mitigating_controls": ["PRIV-005", "GOV-001"],
        "owner": "Datenschutzbeauftragter",
        "treatment_plan": "Cloud-Provider auf DPF-Zertifizierung pruefen, Transfer Impact Assessment durchfuehren, EU-Hosting bevorzugen.",
        "related_regulations": ["GDPR", "SCC", "DPF"],
    },
    {
        "risk_id": "RISK-014",
        "title": "LLM-Provider Datennutzung fuer Training",
        "description": "LLM-Anbieter (OpenAI, Anthropic) koennten Nutzerdaten zum Training verwenden, was ohne Einwilligung problematisch waere.",
        "category": "vendor_risk",
        "likelihood": 2,
        "impact": 3,
        "mitigating_controls": ["PRIV-005", "AI-001"],
        "owner": "AI/ML Lead",
        "treatment_plan": "Opt-Out fuer Training bei allen LLM-Providern, Enterprise-Agreements mit No-Training-Klausel, PII-Filtering vor API-Calls.",
        "related_regulations": ["GDPR", "AIACT"],
    },

    # ========================================================================
    # Betriebliche Risiken
    # ========================================================================
    {
        "risk_id": "RISK-015",
        "title": "Datenverlust durch fehlende Backups",
        "description": "Kritische Daten gehen durch Hardware-Ausfall, Ransomware oder menschliches Versagen verloren.",
        "category": "operational",
        "likelihood": 2,
        "impact": 5,
        "mitigating_controls": ["OPS-002"],
        "owner": "DevOps Lead",
        "treatment_plan": "Taegliche automatische Backups, geografisch redundante Speicherung, regelmaessige Restore-Tests (quartalsweise).",
        "related_regulations": ["GDPR"],
    },
    {
        "risk_id": "RISK-016",
        "title": "Verfuegbarkeitsausfall waehrend Unterricht",
        "description": "System ist waehrend des Unterrichts nicht verfuegbar, was den Lehrbetrieb stoert und Vertrauen beschaedigt.",
        "category": "operational",
        "likelihood": 3,
        "impact": 3,
        "mitigating_controls": ["OPS-005"],
        "owner": "DevOps Lead",
        "treatment_plan": "99.9% SLA definieren, Monitoring mit Alerting, Runbooks fuer haeufige Ausfaelle, Status-Page einrichten.",
        "related_regulations": [],
    },

    # ========================================================================
    # Rechtliche Risiken
    # ========================================================================
    {
        "risk_id": "RISK-017",
        "title": "DSGVO-Bussgeld wegen Compliance-Verstoss",
        "description": "Aufsichtsbehoerde verhaengt Bussgeld wegen Datenschutzverstoss (bis zu 20 Mio EUR oder 4% Jahresumsatz).",
        "category": "legal",
        "likelihood": 1,
        "impact": 5,
        "mitigating_controls": ["PRIV-001", "PRIV-002", "PRIV-006", "GOV-001"],
        "owner": "Geschaeftsfuehrung",
        "treatment_plan": "Datenschutz-Audit jaehrlich, DPIA fuer neue Verarbeitungen, enge Zusammenarbeit mit DSB.",
        "related_regulations": ["GDPR"],
    },
    {
        "risk_id": "RISK-018",
        "title": "Haftung bei KI-verursachten Schaeden",
        "description": "Neue Produkthaftungsrichtlinie macht Hersteller fuer KI-verursachte Schaeden haftbar (fehlerhafte Lerninhalte, falsche Bewertungen).",
        "category": "legal",
        "likelihood": 2,
        "impact": 4,
        "mitigating_controls": ["AI-003", "AI-004", "AUD-001"],
        "owner": "Geschaeftsfuehrung",
        "treatment_plan": "Human-in-the-Loop fuer kritische Entscheidungen, Disclaimer in UI, Haftpflichtversicherung pruefen.",
        "related_regulations": ["PLD", "AIACT"],
    },

    # ========================================================================
    # Barrierefreiheit
    # ========================================================================
    {
        "risk_id": "RISK-019",
        "title": "Nicht barrierefreie Anwendung (EAA)",
        "description": "European Accessibility Act verlangt ab 2025 Barrierefreiheit. Nicht-konforme Software kann vom Markt ausgeschlossen werden.",
        "category": "compliance_gap",
        "likelihood": 3,
        "impact": 3,
        "mitigating_controls": ["GOV-001"],
        "owner": "Product Owner",
        "treatment_plan": "WCAG 2.1 AA Audit durchfuehren, Accessibility-Tests in CI, Screenreader-Kompatibilitaet sicherstellen.",
        "related_regulations": ["EAA"],
    },

    # ========================================================================
    # Reputationsrisiken
    # ========================================================================
    {
        "risk_id": "RISK-020",
        "title": "Reputationsschaden durch Datenpanne",
        "description": "Oeffentlich bekannt gewordene Datenpanne fuehrt zu Vertrauensverlust bei Schulen, Eltern und Schuelern.",
        "category": "reputational",
        "likelihood": 2,
        "impact": 4,
        "mitigating_controls": ["GOV-005", "OPS-003"],
        "owner": "Geschaeftsfuehrung",
        "treatment_plan": "Kommunikationsplan fuer Krisenfaelle, transparente Kommunikation, schnelle Behebung und Information Betroffener.",
        "related_regulations": ["GDPR"],
    },
]


def get_risks_for_seeding() -> List[Dict[str, Any]]:
    """Return all risks for database seeding."""
    return RISKS_SEED
