/**
 * SBOM Wizard - Education Content & Constants
 *
 * Extracted from wizard/page.tsx.
 */

export type StepStatus = 'pending' | 'active' | 'completed'

export interface WizardStep {
  id: string
  name: string
  icon: string
  status: StepStatus
}

export const STEPS: WizardStep[] = [
  { id: 'welcome', name: 'Willkommen', icon: '📋', status: 'pending' },
  { id: 'what-is-sbom', name: 'Was ist SBOM?', icon: '❓', status: 'pending' },
  { id: 'why-important', name: 'Warum wichtig?', icon: '⚠️', status: 'pending' },
  { id: 'categories', name: 'Kategorien', icon: '📁', status: 'pending' },
  { id: 'infrastructure', name: 'Infrastruktur', icon: '🏗️', status: 'pending' },
  { id: 'unity-game', name: 'Unity & Game', icon: '🎮', status: 'pending' },
  { id: 'licenses', name: 'Lizenzen', icon: '📜', status: 'pending' },
  { id: 'summary', name: 'Zusammenfassung', icon: '✅', status: 'pending' },
]

export const EDUCATION_CONTENT: Record<string, { title: string; content: string[]; tips?: string[] }> = {
  'welcome': {
    title: 'Willkommen zum SBOM-Wizard!',
    content: [
      'Eine **Software Bill of Materials (SBOM)** ist wie ein Zutaten-Etikett fuer Software.',
      'Sie listet alle Komponenten auf, aus denen eine Anwendung besteht:',
      '• Open-Source-Bibliotheken',
      '• Frameworks und Engines',
      '• Infrastruktur-Dienste',
      '• Entwicklungs-Tools',
      'In diesem Wizard lernst du, warum SBOMs wichtig sind und welche Komponenten BreakPilot verwendet - inklusive der neuen **Breakpilot Drive** (Unity) Komponenten.',
    ],
    tips: [
      'SBOMs sind seit 2021 fuer US-Regierungsauftraege Pflicht',
      'Die EU plant aehnliche Vorschriften im Cyber Resilience Act',
    ],
  },
  'what-is-sbom': {
    title: 'Was ist eine SBOM?',
    content: [
      '**SBOM = Software Bill of Materials**',
      'Eine SBOM ist eine vollstaendige Liste aller Software-Komponenten:',
      '**Enthaltene Informationen:**',
      '• Name der Komponente',
      '• Version',
      '• Lizenz (MIT, Apache, GPL, etc.)',
      '• Herkunft (Source URL)',
      '• Typ (Library, Service, Tool)',
      '**Formate:**',
      '• SPDX (Linux Foundation Standard)',
      '• CycloneDX (OWASP Standard)',
      '• SWID Tags (ISO Standard)',
      'BreakPilot verwendet eine eigene Darstellung im Admin-Panel, die alle relevanten Infos zeigt.',
    ],
    tips: [
      'Eine SBOM ist wie ein Beipackzettel fuer Medikamente',
      'Sie ermoeglicht schnelle Reaktion bei Sicherheitsluecken',
    ],
  },
  'why-important': {
    title: 'Warum sind SBOMs wichtig?',
    content: [
      '**1. Sicherheit (Security)**',
      'Wenn eine Sicherheitsluecke in einer Bibliothek entdeckt wird (z.B. Log4j), kannst du sofort pruefen ob du betroffen bist.',
      '**2. Compliance (Lizenz-Einhaltung)**',
      'Verschiedene Lizenzen haben verschiedene Anforderungen:',
      '• MIT: Fast keine Einschraenkungen',
      '• GPL: Copyleft - abgeleitete Werke muessen auch GPL sein',
      '• Proprietary: Kommerzielle Nutzung eingeschraenkt',
      '**3. Supply Chain Security**',
      'Moderne Software besteht aus hunderten Abhaengigkeiten. Eine SBOM macht diese Kette transparent.',
      '**4. Regulatorische Anforderungen**',
      'US Executive Order 14028 verlangt SBOMs fuer Regierungssoftware.',
    ],
    tips: [
      'Log4Shell (2021) betraf Millionen von Systemen',
      'Mit SBOM: Betroffenheit in Minuten geprueft',
    ],
  },
  'categories': {
    title: 'SBOM-Kategorien in BreakPilot',
    content: [
      'Die BreakPilot SBOM ist in Kategorien unterteilt:',
      '**infrastructure** (Blau)',
      '→ Kern-Infrastruktur: PostgreSQL, Valkey, Keycloak, Docker',
      '**security-tools** (Rot)',
      '→ Sicherheits-Tools: Trivy, Gitleaks, Semgrep',
      '**python** (Gelb)',
      '→ Python-Backend: FastAPI, Pydantic, httpx',
      '**go** (Cyan)',
      '→ Go-Services: Gin, GORM, JWT',
      '**nodejs** (Gruen)',
      '→ Frontend: Next.js, React, Tailwind',
      '**unity** (Amber) ← NEU!',
      '→ Game Engine: Unity 6, URP, TextMeshPro',
      '**csharp** (Fuchsia) ← NEU!',
      '→ C#/.NET: .NET Standard, UnityWebRequest',
      '**game** (Rose) ← NEU!',
      '→ Breakpilot Drive Service',
    ],
    tips: [
      'Klicke auf eine Kategorie um zu filtern',
      'Die neuen Unity/Game-Kategorien wurden fuer Breakpilot Drive hinzugefuegt',
    ],
  },
  'infrastructure': {
    title: 'Infrastruktur-Komponenten',
    content: [
      'BreakPilot basiert auf robuster Infrastruktur:',
      '**Datenbanken:**',
      '• PostgreSQL 16 - Relationale Datenbank',
      '• Valkey 8 - In-Memory Cache (Redis-Fork)',
      '• ChromaDB - Vector Store fuer RAG',
      '**Auth & Security:**',
      '• Keycloak 23 - Identity & Access Management',
      '• HashiCorp Vault - Secrets Management',
      '**Container & Orchestrierung:**',
      '• Docker - Container Runtime',
      '• Traefik - Reverse Proxy',
      '**Kommunikation:**',
      '• Matrix Synapse - Chat/Messaging',
      '• Jitsi Meet - Video-Konferenzen',
    ],
    tips: [
      'Alle Services laufen in Docker-Containern',
      'Ports sind in docker-compose.yml definiert',
    ],
  },
  'unity-game': {
    title: 'Unity & Breakpilot Drive',
    content: [
      '**Neu hinzugefuegt fuer Breakpilot Drive:**',
      '**Unity Engine (6000.0)**',
      '→ Die Game Engine fuer das Lernspiel',
      '→ Lizenz: Unity EULA (kostenlos bis 100k Revenue)',
      '**Universal Render Pipeline (17.x)**',
      '→ Optimierte Grafik-Pipeline fuer WebGL',
      '→ Lizenz: Unity Companion License',
      '**TextMeshPro (3.2)**',
      '→ Fortgeschrittenes Text-Rendering',
      '**Unity Mathematics (1.3)**',
      '→ SIMD-optimierte Mathe-Bibliothek',
      '**Newtonsoft.Json (3.2)**',
      '→ JSON-Serialisierung fuer API-Kommunikation',
      '**C# Abhaengigkeiten:**',
      '• .NET Standard 2.1',
      '• UnityWebRequest (HTTP Client)',
      '• System.Text.Json',
    ],
    tips: [
      'Unity 6 ist die neueste LTS-Version',
      'WebGL-Builds sind ~30-50 MB gross',
    ],
  },
  'licenses': {
    title: 'Lizenz-Compliance',
    content: [
      '**Lizenz-Typen in BreakPilot:**',
      '**Permissive (Unkompliziert):**',
      '• MIT - Die meisten JS/Python Libs',
      '• Apache 2.0 - FastAPI, Keycloak',
      '• BSD - PostgreSQL',
      '**Copyleft (Vorsicht bei Aenderungen):**',
      '• GPL - Wenige Komponenten',
      '• AGPL - Jitsi (Server-Side OK)',
      '**Proprietary:**',
      '• Unity EULA - Kostenlos bis 100k Revenue',
      '• Unity Companion - Packages an Engine gebunden',
      '**Wichtig:**',
      'Alle verwendeten Lizenzen sind mit kommerziellem Einsatz kompatibel. Bei Fragen: Rechtsabteilung konsultieren.',
    ],
    tips: [
      'MIT und Apache 2.0 sind am unproblematischsten',
      'AGPL erfordert Source-Code-Freigabe bei Modifikation',
    ],
  },
  'summary': {
    title: 'Zusammenfassung',
    content: [
      'Du hast die SBOM von BreakPilot kennengelernt:',
      '✅ Was eine SBOM ist und warum sie wichtig ist',
      '✅ Die verschiedenen Kategorien (8 Stueck)',
      '✅ Infrastruktur-Komponenten',
      '✅ Die neuen Unity/Game-Komponenten fuer Breakpilot Drive',
      '✅ Lizenz-Typen und Compliance',
      '**Im SBOM-Dashboard kannst du:**',
      '• Nach Kategorie filtern',
      '• Nach Namen suchen',
      '• Lizenzen pruefen',
      '• Komponenten-Details ansehen',
      '**180+ Komponenten** sind dokumentiert und nachverfolgbar.',
    ],
    tips: [
      'Pruefe regelmaessig auf veraltete Komponenten',
      'Bei neuen Abhaengigkeiten: SBOM aktualisieren',
    ],
  },
}
