/**
 * SDK Flow Steps — Paket 2: Analyse (seq 1000–1600)
 */
import type { SDKFlowStep } from './types'

export const STEPS_ANALYSE: SDKFlowStep[] = [
  {
    id: 'requirements',
    name: 'Requirements',
    nameShort: 'Anforderungen',
    package: 'analyse',
    seq: 1000,
    checkpointId: 'CP-REQ',
    checkpointType: 'REQUIRED',
    checkpointReviewer: 'NONE',
    description: 'Ableitung konkreter Compliance-Anforderungen aus den aktivierten Modulen, mit RAG-Anreicherung.',
    descriptionLong: 'Aus den aktivierten Modulen und der Source Policy werden konkrete, umsetzbare Compliance-Anforderungen abgeleitet. Vollstaendige CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Loeschen) mit Backend-Persistenz. Die RAG-Collections bp_compliance_recht (DE-Gesetze) und bp_compliance_ce (EU-Verordnungen) liefern aktuelle Rechtstexte, aus denen spezifische Pflichten extrahiert werden. Die KI-gestuetzte Interpretation (interpret_requirement) und Control-Vorschlaege (suggest_controls) werden mit RAG-Kontext angereichert — die Collection wird automatisch anhand des Regulation-Codes gewaehlt (EU → bp_compliance_ce, DE → bp_compliance_recht). Status-Workflow: NOT_STARTED → IN_PROGRESS → IMPLEMENTED → VERIFIED mit automatischem Rollback bei Backend-Fehler. Filterung, Volltextsuche und Paginierung fuer grosse Datensaetze (500+ Anforderungen).',
    legalBasis: 'Art. 5, 24, 25 DSGVO (Rechenschaftspflicht)',
    inputs: ['modules', 'sourcePolicy'],
    outputs: ['requirements'],
    prerequisiteSteps: ['source-policy'],
    dbTables: ['compliance_requirements'],
    dbMode: 'read/write',
    ragCollections: ['bp_compliance_recht', 'bp_compliance_ce'],
    ragPurpose: 'Rechtliche Anforderungen ableiten + AI-Interpretation mit Rechtskontext anreichern (Collection-Routing: EU→ce, DE→recht)',
    isOptional: false,
    url: '/sdk/requirements',
  },
  {
    id: 'controls',
    name: 'Controls',
    nameShort: 'Controls',
    package: 'analyse',
    seq: 1100,
    checkpointId: 'CP-CTRL',
    checkpointType: 'REQUIRED',
    checkpointReviewer: 'DSB',
    description: 'Definition technischer und organisatorischer Kontrollen zur Erfuellung der Anforderungen.',
    descriptionLong: 'Fuer jede Compliance-Anforderung werden konkrete Controls (Kontrollmassnahmen) definiert. Controls sind technische oder organisatorische Massnahmen, die sicherstellen, dass eine Anforderung erfuellt wird. Beispiele: Zugriffskontrolle (RBAC), Verschluesselung (AES-256), Logging, Schulungspflichten. Evidence-Linking: Jeder Control zeigt verknuepfte Nachweise mit Gueltigkeits-Badge an. Navigation zur Evidence-Seite mit vorausgewaehltem Control. Domaenen-basierte Gruppierung (gov, priv, iam, crypto, sdlc, ops, ai, cra, aud). Review-Workflow mit Verantwortlichem und naechstem Review-Datum. Der DSB muss diesen Schritt freigeben.',
    legalBasis: 'Art. 32 DSGVO (Sicherheit der Verarbeitung)',
    inputs: ['requirements'],
    outputs: ['controls'],
    prerequisiteSteps: ['requirements'],
    dbTables: ['compliance_controls'],
    dbMode: 'read/write',
    ragCollections: [],
    isOptional: false,
    url: '/sdk/controls',
  },
  {
    id: 'evidence',
    name: 'Evidence',
    nameShort: 'Nachweise',
    package: 'analyse',
    seq: 1200,
    checkpointId: 'CP-EVI',
    checkpointType: 'RECOMMENDED',
    checkpointReviewer: 'NONE',
    description: 'Sammlung und Verwaltung von Nachweisen fuer die Umsetzung der Controls.',
    descriptionLong: 'Fuer jeden Control wird dokumentiert, wie und wann er umgesetzt wurde. Evidence (Nachweise) koennen Screenshots, Konfigurationsdateien, Audit-Logs, Schulungszertifikate oder Testprotokolle sein. Server-seitige Pagination (page, limit Query-Parameter) fuer grosse Nachweis-Sammlungen. Gueltigkeits-Tracking (valid_from, valid_until) mit Status: valid, expired, pending, failed. Verknuepfung mit Controls und Upload von Dateien als Nachweise. Essentiell fuer Audits und Zertifizierungen.',
    legalBasis: 'Art. 5 Abs. 2 DSGVO (Rechenschaftspflicht)',
    inputs: ['controls'],
    outputs: ['evidence'],
    prerequisiteSteps: ['controls'],
    dbTables: ['compliance_evidence'],
    dbMode: 'write',
    ragCollections: [],
    isOptional: false,
    url: '/sdk/evidence',
  },
  {
    id: 'risks',
    name: 'Risk Matrix',
    nameShort: 'Risiken',
    package: 'analyse',
    seq: 1300,
    checkpointId: 'CP-RISK',
    checkpointType: 'REQUIRED',
    checkpointReviewer: 'DSB',
    description: 'Bewertung aller Datenschutz- und Compliance-Risiken in einer Risikomatrix.',
    descriptionLong: 'Die 5x5 Risikomatrix bewertet jedes Risiko nach Eintrittswahrscheinlichkeit und Schadenshoehe. Inherent Risk vs. Residual Risk mit visuellem Vergleich. Status-Workflow: IDENTIFIED → ASSESSED → MITIGATED → ACCEPTED → CLOSED. Expandierbare Mitigations-Sektion pro Risiko mit verknuepften Controls (Name, Status, Effectiveness). Automatische Risiko-Level-Berechnung: Score = Likelihood × Impact (LOW <6, MEDIUM 6-11, HIGH 12-19, CRITICAL ≥20). Der DSB muss die Risikobewertung freigeben.',
    legalBasis: 'Art. 35 DSGVO (Datenschutz-Folgenabschaetzung)',
    inputs: ['controls', 'modules'],
    outputs: ['risks'],
    prerequisiteSteps: ['evidence'],
    dbTables: ['compliance_risks'],
    dbMode: 'write',
    ragCollections: [],
    isOptional: false,
    url: '/sdk/risks',
  },
  {
    id: 'ai-act',
    name: 'AI Act Klassifizierung',
    nameShort: 'AI Act',
    package: 'analyse',
    seq: 1400,
    checkpointId: 'CP-AI',
    checkpointType: 'REQUIRED',
    checkpointReviewer: 'LEGAL',
    description: 'Klassifizierung aller KI-Systeme nach EU AI Act Risikokategorien.',
    descriptionLong: 'KI-System-Registrierung mit vollstaendiger Backend-Persistenz (CRUD). Risikopyramide: Minimal → Begrenzt → Hoch → Verboten. KI-gestuetzte Risikobewertung mit Rule-Based-Fallback: Der Assess-Endpoint analysiert Zweck, Sektor und Beschreibung und leitet Klassifizierung + Pflichten automatisch ab. Fuer Hochrisiko-Systeme werden 8 AI Act Pflichten abgeleitet (Risikomanagement, Daten-Governance, Dokumentation, Transparenz, menschliche Aufsicht, Genauigkeit, Robustheit, Cybersicherheit). Filterung nach Klassifizierung, Status und Sektor. Die Rechtsabteilung (LEGAL) muss die Klassifizierung freigeben.',
    legalBasis: 'EU AI Act Art. 6-9 (Risikokategorien)',
    inputs: ['useCases', 'companyProfile'],
    outputs: ['aiActClassification', 'obligations'],
    prerequisiteSteps: ['risks'],
    dbTables: ['compliance_ai_systems'],
    dbMode: 'read/write',
    ragCollections: ['bp_compliance_ce'],
    ragPurpose: 'EU AI Act Regulierungstexte',
    isOptional: false,
    url: '/sdk/ai-act',
  },
  {
    id: 'audit-checklist',
    name: 'Audit Checklist',
    nameShort: 'Checklist',
    package: 'analyse',
    seq: 1500,
    checkpointId: 'CP-CHK',
    checkpointType: 'RECOMMENDED',
    checkpointReviewer: 'NONE',
    description: 'Erstellung einer pruefbaren Checkliste fuer interne und externe Audits.',
    descriptionLong: 'Aus den Requirements und Controls wird eine strukturierte Audit-Checkliste generiert. Session-Management: Draft → In Progress → Completed → Archived. Interaktiver Sign-Off-Workflow mit digitalem Signatur-Hash (SHA-256). PDF-Download in Deutsch oder Englisch. Session-History: Anzeige vergangener Audit-Sitzungen mit Status-Badges. JSON-Export der Checkliste. Die Checkliste kann fuer interne Self-Assessments oder als Vorbereitung auf externe Audits (ISO 27001, BSI Grundschutz) verwendet werden.',
    inputs: ['requirements', 'controls'],
    outputs: ['checklist'],
    prerequisiteSteps: ['ai-act'],
    dbTables: ['compliance_audit_sessions', 'compliance_audit_signoffs'],
    dbMode: 'read/write',
    ragCollections: [],
    isOptional: false,
    url: '/sdk/audit-checklist',
  },
  {
    id: 'audit-report',
    name: 'Audit Report',
    nameShort: 'Report',
    package: 'analyse',
    seq: 1600,
    checkpointId: 'CP-AREP',
    checkpointType: 'REQUIRED',
    checkpointReviewer: 'NONE',
    description: 'Generierung eines vollstaendigen Audit-Reports mit Findings und Empfehlungen.',
    descriptionLong: 'Der Audit Report fasst alle Ergebnisse der Analyse-Phase zusammen. Uebersicht aller Audit-Sitzungen mit Status-Badges. Detail-Seite pro Sitzung mit Session-Metadaten (Auditor, Zeitraum, Status), Fortschrittsbalken (konform/nicht konform/ausstehend), interaktiven Checklist-Items mit Sign-Off, Notizen-Bearbeitung pro Pruefpunkt und PDF-Download mit Sprachauswahl (DE/EN). Click-Navigation von der Uebersicht zur Detail-Seite. Dient als Nachweis gegenueber Aufsichtsbehoerden.',
    inputs: ['checklist', 'controls', 'evidence'],
    outputs: ['auditReport'],
    prerequisiteSteps: ['audit-checklist'],
    dbTables: ['compliance_audit_sessions'],
    dbMode: 'write',
    ragCollections: [],
    generates: ['Audit-Report (PDF)'],
    isOptional: false,
    url: '/sdk/audit-report',
  },
]
