package ucca

import "time"

// loadHardcodedObligations populates the AI Act module with built-in fallback data.
func (m *AIActModule) loadHardcodedObligations() {
	prohibitedPracticesDeadline := time.Date(2025, 2, 2, 0, 0, 0, 0, time.UTC)
	transparencyDeadline := time.Date(2026, 8, 2, 0, 0, 0, 0, time.UTC)
	gpaiDeadline := time.Date(2025, 8, 2, 0, 0, 0, 0, time.UTC)

	m.obligations = []Obligation{
		{
			ID:          "AIACT-OBL-001",
			RegulationID: "ai_act",
			Title:       "Verbotene KI-Praktiken vermeiden",
			Description: "Sicherstellung, dass keine verbotenen KI-Praktiken eingesetzt werden (Social Scoring, Ausnutzung von Schwaechen, unterschwellige Manipulation, unzulaessige biometrische Identifizierung).",
			LegalBasis:  []LegalReference{{Norm: "Art. 5 AI Act", Article: "Verbotene Praktiken"}},
			Category:    CategoryCompliance,
			Responsible: RoleManagement,
			Deadline:    &Deadline{Type: DeadlineAbsolute, Date: &prohibitedPracticesDeadline},
			Sanctions:   &SanctionInfo{MaxFine: "35 Mio. EUR oder 7% Jahresumsatz", PersonalLiability: false},
			Evidence:    []EvidenceItem{{Name: "KI-Inventar mit Risikobewertung", Required: true}, {Name: "Dokumentierte Pruefung auf verbotene Praktiken", Required: true}},
			Priority:    PriorityCritical,
			AppliesWhen: "uses_ai",
		},
		{
			ID:          "AIACT-OBL-002",
			RegulationID: "ai_act",
			Title:       "Risikomanagementsystem fuer Hochrisiko-KI",
			Description: "Einrichtung eines Risikomanagementsystems fuer Hochrisiko-KI-Systeme: Risikoidentifikation, -bewertung, -minderung und kontinuierliche Ueberwachung.",
			LegalBasis:  []LegalReference{{Norm: "Art. 9 AI Act", Article: "Risikomanagementsystem"}},
			Category:    CategoryGovernance,
			Responsible: RoleKIVerantwortlicher,
			Sanctions:   &SanctionInfo{MaxFine: "15 Mio. EUR oder 3% Jahresumsatz", PersonalLiability: false},
			Evidence:    []EvidenceItem{{Name: "Risikomanagement-Dokumentation", Required: true}, {Name: "Risikobewertungen pro KI-System", Required: true}},
			Priority:    PriorityCritical,
			AppliesWhen: "high_risk",
			ISO27001Mapping: []string{"A.5.1.1", "A.8.2"},
		},
		{
			ID:          "AIACT-OBL-003",
			RegulationID: "ai_act",
			Title:       "Technische Dokumentation erstellen",
			Description: "Erstellung umfassender technischer Dokumentation vor Inverkehrbringen: Systembeschreibung, Design-Spezifikationen, Entwicklungsprozess, Leistungsmetriken.",
			LegalBasis:  []LegalReference{{Norm: "Art. 11 AI Act", Article: "Technische Dokumentation"}},
			Category:    CategoryGovernance,
			Responsible: RoleKIVerantwortlicher,
			Sanctions:   &SanctionInfo{MaxFine: "15 Mio. EUR oder 3% Jahresumsatz", PersonalLiability: false},
			Evidence:    []EvidenceItem{{Name: "Technische Dokumentation nach Anhang IV", Required: true}, {Name: "Systemarchitektur-Dokumentation", Required: true}},
			Priority:    PriorityHigh,
			AppliesWhen: "high_risk_provider",
		},
		{
			ID:          "AIACT-OBL-004",
			RegulationID: "ai_act",
			Title:       "Protokollierungsfunktion implementieren",
			Description: "Hochrisiko-KI-Systeme muessen automatische Protokolle (Logs) erstellen: Nutzungszeitraum, Eingabedaten, Identitaet der verifizierenden Personen.",
			LegalBasis:  []LegalReference{{Norm: "Art. 12 AI Act", Article: "Aufzeichnungspflichten"}},
			Category:    CategoryTechnical,
			Responsible: RoleITLeitung,
			Deadline:    &Deadline{Type: DeadlineRelative, Duration: "Aufbewahrung mindestens 6 Monate"},
			Sanctions:   &SanctionInfo{MaxFine: "15 Mio. EUR oder 3% Jahresumsatz", PersonalLiability: false},
			Evidence:    []EvidenceItem{{Name: "Log-System-Dokumentation", Required: true}, {Name: "Aufbewahrungsrichtlinie", Required: true}},
			Priority:    PriorityHigh,
			AppliesWhen: "high_risk",
			ISO27001Mapping: []string{"A.12.4"},
		},
		{
			ID:          "AIACT-OBL-005",
			RegulationID: "ai_act",
			Title:       "Menschliche Aufsicht sicherstellen",
			Description: "Hochrisiko-KI muss menschliche Aufsicht ermoeglichen: Verstehen von Faehigkeiten und Grenzen, Ueberwachung, Eingreifen oder Abbrechen koennen.",
			LegalBasis:  []LegalReference{{Norm: "Art. 14 AI Act", Article: "Menschliche Aufsicht"}},
			Category:    CategoryOrganizational,
			Responsible: RoleKIVerantwortlicher,
			Sanctions:   &SanctionInfo{MaxFine: "15 Mio. EUR oder 3% Jahresumsatz", PersonalLiability: false},
			Evidence:    []EvidenceItem{{Name: "Aufsichtskonzept", Required: true}, {Name: "Schulungsnachweise fuer Bediener", Required: true}, {Name: "Notfall-Abschaltprozedur", Required: true}},
			Priority:    PriorityCritical,
			AppliesWhen: "high_risk",
		},
		{
			ID:          "AIACT-OBL-006",
			RegulationID: "ai_act",
			Title:       "Betreiberpflichten fuer Hochrisiko-KI",
			Description: "Betreiber von Hochrisiko-KI muessen: Technische und organisatorische Massnahmen treffen, Eingabedaten pruefen, Betrieb ueberwachen, Protokolle aufbewahren.",
			LegalBasis:  []LegalReference{{Norm: "Art. 26 AI Act", Article: "Pflichten der Betreiber"}},
			Category:    CategoryOrganizational,
			Responsible: RoleKIVerantwortlicher,
			Sanctions:   &SanctionInfo{MaxFine: "15 Mio. EUR oder 3% Jahresumsatz", PersonalLiability: false},
			Evidence:    []EvidenceItem{{Name: "Betriebskonzept", Required: true}, {Name: "Monitoring-Dokumentation", Required: true}},
			Priority:    PriorityHigh,
			AppliesWhen: "high_risk_deployer",
		},
		{
			ID:          "AIACT-OBL-007",
			RegulationID: "ai_act",
			Title:       "Grundrechte-Folgenabschaetzung (FRIA)",
			Description: "Betreiber von Hochrisiko-KI in sensiblen Bereichen muessen vor Einsatz eine Grundrechte-Folgenabschaetzung durchfuehren.",
			LegalBasis:  []LegalReference{{Norm: "Art. 27 AI Act", Article: "Grundrechte-Folgenabschaetzung"}},
			Category:    CategoryGovernance,
			Responsible: RoleKIVerantwortlicher,
			Sanctions:   &SanctionInfo{MaxFine: "15 Mio. EUR oder 3% Jahresumsatz", PersonalLiability: false},
			Evidence:    []EvidenceItem{{Name: "FRIA-Dokumentation", Required: true}, {Name: "Risikobewertung Grundrechte", Required: true}},
			Priority:    PriorityCritical,
			AppliesWhen: "high_risk_deployer_fria",
		},
		{
			ID:          "AIACT-OBL-008",
			RegulationID: "ai_act",
			Title:       "Transparenzpflichten fuer KI-Interaktionen",
			Description: "Bei KI-Systemen, die mit natuerlichen Personen interagieren: Kennzeichnung der KI-Interaktion, Information ueber KI-generierte Inhalte, Kennzeichnung von Deep Fakes.",
			LegalBasis:  []LegalReference{{Norm: "Art. 50 AI Act", Article: "Transparenzpflichten"}},
			Category:    CategoryOrganizational,
			Responsible: RoleKIVerantwortlicher,
			Deadline:    &Deadline{Type: DeadlineAbsolute, Date: &transparencyDeadline},
			Sanctions:   &SanctionInfo{MaxFine: "15 Mio. EUR oder 3% Jahresumsatz", PersonalLiability: false},
			Evidence:    []EvidenceItem{{Name: "Kennzeichnungskonzept", Required: true}, {Name: "Nutzerhinweise", Required: true}},
			Priority:    PriorityHigh,
			AppliesWhen: "limited_risk",
		},
		{
			ID:          "AIACT-OBL-009",
			RegulationID: "ai_act",
			Title:       "GPAI-Modell Dokumentation",
			Description: "Anbieter von GPAI-Modellen muessen technische Dokumentation erstellen, Informationen fuer nachgelagerte Anbieter bereitstellen und Urheberrechtsrichtlinie einhalten.",
			LegalBasis:  []LegalReference{{Norm: "Art. 53 AI Act", Article: "Pflichten der Anbieter von GPAI-Modellen"}},
			Category:    CategoryGovernance,
			Responsible: RoleKIVerantwortlicher,
			Deadline:    &Deadline{Type: DeadlineAbsolute, Date: &gpaiDeadline},
			Sanctions:   &SanctionInfo{MaxFine: "15 Mio. EUR oder 3% Jahresumsatz", PersonalLiability: false},
			Evidence:    []EvidenceItem{{Name: "GPAI-Dokumentation", Required: true}, {Name: "Trainingsdaten-Summary", Required: true}},
			Priority:    PriorityHigh,
			AppliesWhen: "gpai_provider",
		},
		{
			ID:          "AIACT-OBL-010",
			RegulationID: "ai_act",
			Title:       "KI-Kompetenz sicherstellen",
			Description: "Anbieter und Betreiber muessen sicherstellen, dass Personal mit ausreichender KI-Kompetenz ausgestattet ist.",
			LegalBasis:  []LegalReference{{Norm: "Art. 4 AI Act", Article: "KI-Kompetenz"}},
			Category:    CategoryTraining,
			Responsible: RoleManagement,
			Deadline:    &Deadline{Type: DeadlineAbsolute, Date: &prohibitedPracticesDeadline},
			Sanctions:   &SanctionInfo{MaxFine: "7,5 Mio. EUR oder 1% Jahresumsatz", PersonalLiability: false},
			Evidence:    []EvidenceItem{{Name: "Schulungsnachweise", Required: true}, {Name: "Kompetenzmatrix", Required: true}},
			Priority:    PriorityMedium,
			AppliesWhen: "uses_ai",
		},
		{
			ID:          "AIACT-OBL-011",
			RegulationID: "ai_act",
			Title:       "EU-Datenbank-Registrierung",
			Description: "Registrierung in der EU-Datenbank fuer Hochrisiko-KI-Systeme vor Inverkehrbringen (Anbieter) bzw. Inbetriebnahme (Betreiber).",
			LegalBasis:  []LegalReference{{Norm: "Art. 49 AI Act", Article: "Registrierung"}},
			Category:    CategoryMeldepflicht,
			Responsible: RoleKIVerantwortlicher,
			Deadline:    &Deadline{Type: DeadlineRelative, Duration: "Vor Inverkehrbringen/Inbetriebnahme"},
			Sanctions:   &SanctionInfo{MaxFine: "15 Mio. EUR oder 3% Jahresumsatz", PersonalLiability: false},
			Evidence:    []EvidenceItem{{Name: "Registrierungsbestaetigung", Required: true}, {Name: "EU-Datenbank-Eintrag", Required: true}},
			Priority:    PriorityHigh,
			AppliesWhen: "high_risk",
		},
	}

	m.controls = []ObligationControl{
		{
			ID:           "AIACT-CTRL-001",
			RegulationID: "ai_act",
			Name:         "KI-Inventar",
			Description:  "Fuehrung eines vollstaendigen Inventars aller KI-Systeme",
			Category:     "Governance",
			WhatToDo:     "Erfassung aller KI-Systeme mit Risikoeinstufung, Zweck, Anbieter, Betreiber",
			ISO27001Mapping: []string{"A.8.1"},
			Priority:     PriorityCritical,
		},
		{
			ID:           "AIACT-CTRL-002",
			RegulationID: "ai_act",
			Name:         "KI-Governance-Struktur",
			Description:  "Etablierung einer KI-Governance mit klaren Verantwortlichkeiten",
			Category:     "Governance",
			WhatToDo:     "Benennung eines KI-Verantwortlichen, Einrichtung eines KI-Boards",
			Priority:     PriorityHigh,
		},
		{
			ID:           "AIACT-CTRL-003",
			RegulationID: "ai_act",
			Name:         "Bias-Testing und Fairness",
			Description:  "Regelmaessige Pruefung auf Verzerrungen und Diskriminierung",
			Category:     "Technisch",
			WhatToDo:     "Implementierung von Bias-Detection, Fairness-Metriken, Datensatz-Audits",
			Priority:     PriorityHigh,
		},
		{
			ID:           "AIACT-CTRL-004",
			RegulationID: "ai_act",
			Name:         "Model Monitoring",
			Description:  "Kontinuierliche Ueberwachung der KI-Modellleistung",
			Category:     "Technisch",
			WhatToDo:     "Drift-Detection, Performance-Monitoring, Anomalie-Erkennung",
			Priority:     PriorityHigh,
		},
	}

	m.incidentDeadlines = []IncidentDeadline{
		{
			RegulationID: "ai_act",
			Phase:        "Schwerwiegender Vorfall melden",
			Deadline:     "unverzueglich",
			Content:      "Meldung schwerwiegender Vorfaelle bei Hochrisiko-KI-Systemen: Tod, schwere Gesundheitsschaeden, schwerwiegende Grundrechtsverletzungen, schwere Schaeden an Eigentum oder Umwelt.",
			Recipient:    "Zustaendige Marktaufsichtsbehoerde",
			LegalBasis:   []LegalReference{{Norm: "Art. 73 AI Act"}},
		},
		{
			RegulationID: "ai_act",
			Phase:        "Fehlfunktion melden (Anbieter)",
			Deadline:     "15 Tage",
			Content:      "Anbieter von Hochrisiko-KI melden Fehlfunktionen, die einen schwerwiegenden Vorfall darstellen koennten.",
			Recipient:    "Marktaufsichtsbehoerde des Herkunftslandes",
			LegalBasis:   []LegalReference{{Norm: "Art. 73 Abs. 1 AI Act"}},
		},
	}
}
