/**
 * SDK Flow Steps — Paket 2: Analyse (seq 1000–1400)
 *
 * Neue Reihenfolge: Requirements → Controls → Risks → Checklist → Report
 * Evidence → Paket 5 (Betrieb), AI Act → Paket 1 (optional)
 */
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 im Scope erkannten Regulierungen.',
    descriptionLong: 'Aus den im Scope-Profiling erkannten Regulierungen (DSGVO, AI Act, NIS2) werden konkrete, umsetzbare Compliance-Anforderungen abgeleitet. Vollstaendige CRUD-Operationen mit Backend-Persistenz. Die RAG-Collections liefern aktuelle Rechtstexte, aus denen spezifische Pflichten extrahiert werden. KI-gestuetzte Interpretation und Control-Vorschlaege. Status-Workflow: NOT_STARTED → IN_PROGRESS → IMPLEMENTED → VERIFIED.',
    legalBasis: 'Art. 5, 24, 25 DSGVO (Rechenschaftspflicht)',
    inputs: ['scopeDecision', 'companyProfile'],
    outputs: ['requirements'],
    prerequisiteSteps: ['compliance-scope'],
    dbTables: ['compliance_requirements'],
    dbMode: 'read/write',
    ragCollections: ['bp_compliance_recht', 'bp_compliance_ce'],
    ragPurpose: 'Rechtliche Anforderungen ableiten + AI-Interpretation mit Rechtskontext anreichern',
    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 an. Domaenen-basierte Gruppierung. Review-Workflow mit Verantwortlichem. 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: 'risks',
    name: 'Risk Matrix',
    nameShort: 'Risiken',
    package: 'analyse',
    seq: 1200,
    checkpointId: 'CP-RISK',
    checkpointType: 'REQUIRED',
    checkpointReviewer: 'DSB',
    description: 'Bewertung aller Datenschutz- und Compliance-Risiken — wo sind Luecken?',
    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. Automatische Risiko-Level-Berechnung: Score = Likelihood × Impact. Der DSB muss die Risikobewertung freigeben.',
    legalBasis: 'Art. 35 DSGVO (Datenschutz-Folgenabschaetzung)',
    inputs: ['controls'],
    outputs: ['risks'],
    prerequisiteSteps: ['controls'],
    dbTables: ['compliance_risks'],
    dbMode: 'write',
    ragCollections: [],
    isOptional: false,
    url: '/sdk/risks',
  },
  {
    id: 'audit-checklist',
    name: 'Audit Checklist',
    nameShort: 'Checklist',
    package: 'analyse',
    seq: 1300,
    checkpointId: 'CP-CHK',
    checkpointType: 'RECOMMENDED',
    checkpointReviewer: 'NONE',
    description: 'Pruefbare Checkliste aus Requirements + Controls + Risiken.',
    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. JSON-Export der Checkliste. Kann fuer interne Self-Assessments oder als Vorbereitung auf externe Audits verwendet werden.',
    inputs: ['requirements', 'controls', 'risks'],
    outputs: ['checklist'],
    prerequisiteSteps: ['risks'],
    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: 1400,
    checkpointId: 'CP-AREP',
    checkpointType: 'REQUIRED',
    checkpointReviewer: 'NONE',
    description: 'Zusammenfassender Audit-Report 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 Fortschrittsbalken, interaktiven Checklist-Items mit Sign-Off, Notizen-Bearbeitung und PDF-Download (DE/EN). Dient als Nachweis gegenueber Aufsichtsbehoerden.',
    inputs: ['checklist', 'controls', 'risks'],
    outputs: ['auditReport'],
    prerequisiteSteps: ['audit-checklist'],
    dbTables: ['compliance_audit_sessions'],
    dbMode: 'write',
    ragCollections: [],
    generates: ['Audit-Report (PDF)'],
    isOptional: false,
    url: '/sdk/audit-report',
  },
]
