export type WizardStep =
  | 'welcome'
  | 'platforms'
  | 'github-actions'
  | 'webgl-build'
  | 'ios-build'
  | 'android-build'
  | 'deployment'
  | 'version-sync'
  | 'summary'

export interface StepInfo {
  id: WizardStep
  title: string
  description: string
}

export const STEPS: StepInfo[] = [
  { id: 'welcome', title: 'Willkommen', description: 'Build Pipeline Uebersicht' },
  { id: 'platforms', title: 'Plattformen', description: 'WebGL, iOS, Android' },
  { id: 'github-actions', title: 'GitHub Actions', description: 'CI/CD Workflow' },
  { id: 'webgl-build', title: 'WebGL', description: 'Browser Build' },
  { id: 'ios-build', title: 'iOS', description: 'App Store Build' },
  { id: 'android-build', title: 'Android', description: 'Play Store Build' },
  { id: 'deployment', title: 'Deployment', description: 'Store Upload' },
  { id: 'version-sync', title: 'Versioning', description: 'Version Management' },
  { id: 'summary', title: 'Zusammenfassung', description: 'Naechste Schritte' },
]

export const EDUCATION_CONTENT: Record<WizardStep, { title: string; content: string; tips: string[] }> = {
  'welcome': {
    title: 'Multi-Platform Build Pipeline',
    content: `Breakpilot Drive wird fuer drei Plattformen gebaut:

    **WebGL** - Browser-basiert, in Admin Panel eingebettet
    **iOS** - iPhone/iPad via App Store
    **Android** - Smartphones/Tablets via Google Play

    Die Build-Pipeline nutzt **GitHub Actions** mit **game-ci/unity-builder**
    fuer automatisierte, reproduzierbare Builds.`,
    tips: ['WebGL ist die primaere Plattform fuer schnelles Testing', 'Mobile Builds nur bei Tags (Releases)', 'Alle Builds werden als Artifacts gespeichert']
  },
  'platforms': {
    title: 'Unterstuetzte Plattformen',
    content: `Jede Plattform hat spezifische Anforderungen:

    **WebGL (HTML5/WASM)**
    - Brotli-Kompression
    - 512MB Memory
    - Kein Threading (Browser-Limitation)

    **iOS (iPhone/iPad)**
    - Min. iOS 14.0
    - ARM64 Architektur
    - App Store Distribution

    **Android**
    - Min. Android 7.0 (API 24)
    - Target: Android 14 (API 34)
    - ARM64, AAB fuer Play Store`,
    tips: ['WebGL laeuft in allen modernen Browsern', 'iOS erfordert Apple Developer Account ($99/Jahr)', 'Android AAB ist Pflicht fuer Play Store']
  },
  'github-actions': {
    title: 'GitHub Actions Workflow',
    content: `Der CI/CD Workflow ist in Jobs aufgeteilt:

    **1. version** - Ermittelt Version aus Git Tag
    **2. build-webgl** - Baut Browser-Version
    **3. build-ios** - Baut Xcode Projekt
    **4. build-ios-ipa** - Erstellt signierte IPA
    **5. build-android** - Baut AAB/APK
    **6. deploy-webgl** - Deployed zu CDN
    **7. upload-ios** - Laedt zu App Store Connect
    **8. upload-android** - Laedt zu Google Play

    Trigger:
    - **Tags (v*)**: Alle Plattformen + Upload
    - **Push main**: Nur WebGL
    - **Manual**: Auswahlbar`,
    tips: ['Unity License muss als Secret hinterlegt sein', 'Signing-Zertifikate als Base64 Secrets', 'Cache beschleunigt Builds erheblich']
  },
  'webgl-build': {
    title: 'WebGL Build',
    content: `WebGL ist die schnellste Build-Variante:

    **Build-Einstellungen:**
    - Kompression: Brotli (beste Kompression)
    - Memory: 512MB (ausreichend fuer Spiel)
    - Exceptions: Nur explizite (Performance)
    - Linker: WASM (WebAssembly)

    **Output:**
    - index.html
    - Build/*.wasm.br (komprimiert)
    - Build/*.data.br (Assets)
    - Build/*.js (Loader)

    **Deployment:**
    - S3 + CloudFront CDN
    - Cache: 1 Jahr fuer Assets, 1h fuer HTML`,
    tips: ['Brotli-Kompression spart ~70% Bandbreite', 'Erste Ladung ~10-15MB, danach gecached', 'Server muss Brotli-Headers unterstuetzen']
  },
  'ios-build': {
    title: 'iOS Build',
    content: `iOS Build erfolgt in zwei Schritten:

    **Schritt 1: Unity Build**
    - Erstellt Xcode Projekt
    - Setzt iOS-spezifische Einstellungen
    - Output: Unity-iPhone.xcodeproj

    **Schritt 2: Xcode Build**
    - Importiert Signing-Zertifikate
    - Archiviert Projekt
    - Exportiert signierte IPA

    **Voraussetzungen:**
    - Apple Developer Account
    - Distribution Certificate (.p12)
    - Provisioning Profile
    - App Store Connect API Key`,
    tips: ['Zertifikate alle 1 Jahr erneuern', 'Provisioning Profile fuer jede App ID', 'TestFlight fuer Beta-Tests nutzen']
  },
  'android-build': {
    title: 'Android Build',
    content: `Android Build erzeugt AAB oder APK:

    **AAB (App Bundle)** - Fuer Play Store
    - Google optimiert fuer jedes Geraet
    - Kleinere Downloads
    - Pflicht seit 2021

    **APK** - Fuer direkten Download
    - Debug-Builds fuer Testing
    - Sideloading moeglich

    **Signing:**
    - Keystore (.jks/.keystore)
    - Key Alias und Passwoerter
    - Play App Signing empfohlen

    **Voraussetzungen:**
    - Google Play Console Account ($25 einmalig)
    - Keystore fuer App-Signatur`,
    tips: ['Keystore NIEMALS verlieren (keine Veroeffentlichung mehr)', 'Play App Signing: Google verwaltet Upload-Key', 'Internal Testing fuer schnelle Tests']
  },
  'deployment': {
    title: 'Store Deployment',
    content: `Automatisches Deployment zu den Stores:

    **WebGL -> CDN (S3/CloudFront)**
    - Sync zu S3 Bucket
    - CloudFront Invalidation
    - Versionierte URLs

    **iOS -> App Store Connect**
    - Upload via altool
    - API Key Authentifizierung
    - TestFlight Auto-Distribution

    **Android -> Google Play**
    - Upload via r0adkll/upload-google-play
    - Service Account Auth
    - Internal Track zuerst`,
    tips: ['WebGL ist sofort live nach Deploy', 'iOS: Review dauert 1-3 Tage', 'Android: Review dauert wenige Stunden']
  },
  'version-sync': {
    title: 'Version Synchronisation',
    content: `Versionen werden zentral verwaltet:

    **version.json** (Runtime)
    - version: Semantische Version
    - build_number: Inkrementell
    - platform: Build-Target
    - commit_hash: Git SHA
    - min_api_version: API Kompatibilitaet

    **VersionManager.cs** (Unity)
    - Laedt version.json zur Laufzeit
    - Prueft API-Kompatibilitaet
    - Zeigt Update-Hinweise

    **Git Tags**
    - v1.0.0 -> Version 1.0.0
    - Trigger fuer Release-Builds`,
    tips: ['build_number aus GitHub Run Number', 'min_api_version fuer erzwungene Updates', 'Semantic Versioning: MAJOR.MINOR.PATCH']
  },
  'summary': {
    title: 'Zusammenfassung & Naechste Schritte',
    content: `Du hast gelernt:

    ✓ Build-Targets: WebGL, iOS, Android
    ✓ GitHub Actions Workflow
    ✓ Platform-spezifische Einstellungen
    ✓ Store Deployment Prozess
    ✓ Version Management

    **Naechste Schritte:**
    1. GitHub Secrets konfigurieren
    2. Apple/Google Developer Accounts einrichten
    3. Keystore und Zertifikate erstellen
    4. Ersten Release-Tag erstellen`,
    tips: ['Dokumentation in BreakpilotDrive/ci/', 'BuildScript.cs fuer lokale Builds', 'version.json wird automatisch aktualisiert']
  },
}
