/**
 * Static data for Developer Documentation Page
 */

import type { ServiceNode, ArchitectureLayer, ServiceDefinition } from './types'

// Documentation paths for VS Code links
export const docPaths: Record<string, string> = {
  'postgres': 'docs/architecture/data-model.md',
  'backend': 'docs/backend/README.md',
  'consent-service': 'docs/consent-service/README.md',
  'billing-service': 'docs/billing/billing-service-api.md',
  'edu-search-service': 'docs/api/edu-search-seeds-api.md',
  'dsms-gateway': 'docs/dsms/README.md',
  'pca-platform': 'docs/api/pca-platform-api.md',
  'matrix-synapse': 'docs/matrix/README.md',
  'jitsi': 'docs/jitsi/README.md',
  'mailpit': 'docs/guides/email-and-auth-testing.md',
  'llm-gateway': 'docs/llm-platform/README.md',
  'website': 'docs/website/README.md',
  'opensearch': 'docs/llm-platform/guides/ollama-setup.md',
  'klausur': 'klausur-service/docs/RAG-Admin-Spec.md',
  'qdrant': 'klausur-service/docs/RAG-Admin-Spec.md',
  'minio': 'klausur-service/docs/RAG-Admin-Spec.md',
}

// Base path for project (used for VS Code links)
export const PROJECT_BASE_PATH = '/Users/benjaminadmin/Projekte/breakpilot-pwa'

// All services in the architecture (30+ services)
export const ARCHITECTURE_SERVICES: ServiceNode[] = [
  // Frontends
  { id: 'website', name: 'Admin Frontend', type: 'frontend', port: '3000', technology: 'Next.js 15', description: 'Admin Dashboard, Edu-Search, DSMS, Consent', connections: ['backend', 'consent-service'] },
  { id: 'studio', name: 'Lehrer Studio', type: 'frontend', port: '8000', technology: 'FastAPI + JS', description: 'Klausur, School, Stundenplan Module', connections: ['backend'] },
  { id: 'creator', name: 'Creator Studio', type: 'frontend', port: '-', technology: 'Vue 3', description: 'Content Creation Interface', connections: ['backend'] },
  { id: 'policy-ui', name: 'Policy Vault UI', type: 'frontend', port: '4200', technology: 'Angular 17', description: 'Richtlinien-Verwaltung', connections: ['policy-api'] },

  // Python Backend
  { id: 'backend', name: 'Main Backend', type: 'backend', port: '8000', technology: 'Python FastAPI', description: 'Haupt-API, DevSecOps, Studio UI', connections: ['postgres', 'vault', 'redis', 'qdrant', 'minio'] },
  { id: 'klausur', name: 'Klausur Service', type: 'backend', port: '8086', technology: 'Python FastAPI', description: 'BYOEH Abitur-Klausurkorrektur, RAG Admin, NiBiS Ingestion', connections: ['postgres', 'minio', 'qdrant'] },

  // Go Microservices
  { id: 'consent-service', name: 'Consent Service', type: 'backend', port: '8081', technology: 'Go Gin', description: 'DSGVO Consent Management', connections: ['postgres'] },
  { id: 'school-service', name: 'School Service', type: 'backend', port: '8084', technology: 'Go Gin', description: 'Klausuren, Noten, Zeugnisse', connections: ['postgres'] },
  { id: 'billing-service', name: 'Billing Service', type: 'backend', port: '8083', technology: 'Go Gin', description: 'Stripe Integration', connections: ['postgres'] },
  { id: 'dsms-gateway', name: 'DSMS Gateway', type: 'backend', port: '8082', technology: 'Go', description: 'IPFS REST API', connections: ['ipfs'] },

  // Node.js Services
  { id: 'h5p', name: 'H5P Service', type: 'backend', port: '8085', technology: 'Node.js', description: 'Interaktive Inhalte', connections: ['postgres', 'minio'] },
  { id: 'policy-api', name: 'Policy Vault API', type: 'backend', port: '3001', technology: 'NestJS', description: 'Richtlinien-Verwaltung API', connections: ['postgres'] },

  // Databases
  { id: 'postgres', name: 'PostgreSQL', type: 'database', port: '5432', technology: 'PostgreSQL 16', description: 'Hauptdatenbank', connections: [] },
  { id: 'synapse-db', name: 'Synapse DB', type: 'database', port: '-', technology: 'PostgreSQL 16', description: 'Matrix Datenbank', connections: [] },
  { id: 'mariadb', name: 'MariaDB', type: 'database', port: '-', technology: 'MariaDB 10.6', description: 'ERPNext Datenbank', connections: [] },
  { id: 'mongodb', name: 'MongoDB', type: 'database', port: '27017', technology: 'MongoDB 7', description: 'LibreChat Datenbank', connections: [] },

  // Cache & Queue
  { id: 'redis', name: 'Redis', type: 'cache', port: '6379', technology: 'Redis Alpine', description: 'Cache & Sessions', connections: [] },

  // Search Engines
  { id: 'qdrant', name: 'Qdrant', type: 'search', port: '6333', technology: 'Qdrant 1.7', description: 'Vector DB - NiBiS EWH (7352 Chunks), BYOEH', connections: [] },
  { id: 'opensearch', name: 'OpenSearch', type: 'search', port: '9200', technology: 'OpenSearch 2.x', description: 'Volltext-Suche', connections: [] },
  { id: 'meilisearch', name: 'Meilisearch', type: 'search', port: '7700', technology: 'Meilisearch', description: 'Instant Search', connections: [] },

  // Storage
  { id: 'minio', name: 'MinIO', type: 'storage', port: '9000/9001', technology: 'MinIO', description: 'S3-kompatibel - RAG Dokumente, Landes/Lehrer-Daten', connections: [] },
  { id: 'ipfs', name: 'IPFS (Kubo)', type: 'storage', port: '5001', technology: 'IPFS 0.24', description: 'Dezentral', connections: [] },

  // Security
  { id: 'vault', name: 'Vault', type: 'security', port: '8200', technology: 'HashiCorp Vault', description: 'Secrets Management', connections: [] },
  { id: 'keycloak', name: 'Keycloak', type: 'security', port: '8180', technology: 'Keycloak 23', description: 'SSO/OIDC', connections: ['postgres'] },

  // Communication
  { id: 'synapse', name: 'Matrix Synapse', type: 'communication', port: '8008', technology: 'Matrix', description: 'E2EE Messenger', connections: ['synapse-db'] },
  { id: 'jitsi', name: 'Jitsi Meet', type: 'communication', port: '8443', technology: 'Jitsi', description: 'Videokonferenz', connections: [] },

  // AI/LLM
  { id: 'librechat', name: 'LibreChat', type: 'ai', port: '3080', technology: 'LibreChat', description: 'Multi-LLM Chat', connections: ['mongodb', 'qdrant'] },
  { id: 'ragflow', name: 'RAGFlow', type: 'ai', port: '9380', technology: 'RAGFlow', description: 'RAG Pipeline', connections: ['qdrant', 'opensearch'] },

  // ERP
  { id: 'erpnext', name: 'ERPNext', type: 'erp', port: '8090', technology: 'ERPNext v15', description: 'Open Source ERP', connections: ['mariadb', 'redis'] },
]

// Architecture layers
export const LAYERS: ArchitectureLayer[] = [
  { id: 'presentation', name: 'Presentation Layer', description: 'User Interfaces & Frontends', types: ['frontend'] },
  { id: 'application', name: 'Application Layer', description: 'Business Logic & APIs', types: ['backend'] },
  { id: 'data', name: 'Data Layer', description: 'Databases, Cache & Search', types: ['database', 'cache', 'search'] },
  { id: 'infrastructure', name: 'Infrastructure Layer', description: 'Storage, Security & Communication', types: ['storage', 'security', 'communication', 'ai', 'erp'] },
]

// Service definitions with ports, technologies, and API info
export const services: ServiceDefinition[] = [
  {
    id: 'postgres',
    name: 'PostgreSQL',
    type: 'database',
    port: 5432,
    container: 'breakpilot-pwa-postgres',
    description: 'Zentrale Datenbank für alle Services',
    purpose: 'Persistente Datenspeicherung für Benutzer, Dokumente, Consents und alle Anwendungsdaten mit pgvector für Embedding-Suche.',
    tech: ['PostgreSQL 15', 'pgvector'],
    healthEndpoint: null,
    endpoints: [],
    envVars: ['POSTGRES_USER', 'POSTGRES_PASSWORD', 'POSTGRES_DB'],
  },
  {
    id: 'backend',
    name: 'Python Backend',
    type: 'backend',
    port: 8000,
    container: 'breakpilot-pwa-backend',
    description: 'FastAPI Backend mit AI-Integration und GDPR-Export',
    purpose: 'Zentrale API-Schicht für das Studio-Frontend mit AI-gestützter Arbeitsblatt-Generierung, Multi-LLM-Integration und DSGVO-konformem Datenexport.',
    tech: ['Python 3.11', 'FastAPI', 'SQLAlchemy', 'Pydantic'],
    healthEndpoint: '/health',
    endpoints: [
      { method: 'GET', path: '/api/v1/health', description: 'Health Check' },
      { method: 'POST', path: '/api/v1/chat', description: 'AI Chat Endpoint' },
      { method: 'GET', path: '/api/v1/gdpr/export', description: 'DSGVO Datenexport' },
      { method: 'POST', path: '/api/v1/seeds', description: 'Edu Search Seeds' },
    ],
    envVars: ['DATABASE_URL', 'JWT_SECRET', 'OPENAI_API_KEY', 'ANTHROPIC_API_KEY'],
  },
  {
    id: 'consent-service',
    name: 'Consent Service',
    type: 'backend',
    port: 8081,
    container: 'breakpilot-pwa-consent-service',
    description: 'Go-basierter Consent-Management-Service',
    purpose: 'DSGVO-konforme Einwilligungsverwaltung mit Versionierung, Audit-Trail und rechtssicherer Dokumentenspeicherung für Schulen.',
    tech: ['Go 1.21', 'Gin', 'GORM', 'JWT'],
    healthEndpoint: '/health',
    endpoints: [
      { method: 'GET', path: '/api/v1/health', description: 'Health Check' },
      { method: 'GET', path: '/api/v1/consent/check', description: 'Consent Status pruefen' },
      { method: 'POST', path: '/api/v1/consent/grant', description: 'Consent erteilen' },
      { method: 'GET', path: '/api/v1/documents', description: 'Rechtsdokumente abrufen' },
      { method: 'GET', path: '/api/v1/communication/status', description: 'Matrix/Jitsi Status' },
      { method: 'POST', path: '/api/v1/communication/rooms', description: 'Matrix Raum erstellen' },
      { method: 'POST', path: '/api/v1/communication/meetings', description: 'Jitsi Meeting erstellen' },
    ],
    envVars: ['DATABASE_URL', 'JWT_SECRET', 'PORT', 'MATRIX_HOMESERVER_URL', 'JITSI_BASE_URL'],
  },
  {
    id: 'billing-service',
    name: 'Billing Service',
    type: 'backend',
    port: 8083,
    container: 'breakpilot-pwa-billing-service',
    description: 'Stripe-basiertes Billing mit Trial & Subscription',
    purpose: 'Monetarisierung der Plattform mit 7-Tage-Trial, gestuften Abo-Modellen (Basic/Standard/Premium) und automatischer Nutzungslimitierung.',
    tech: ['Go 1.21', 'Gin', 'Stripe API', 'pgx'],
    healthEndpoint: '/health',
    endpoints: [
      { method: 'GET', path: '/api/v1/billing/status', description: 'Subscription Status' },
      { method: 'POST', path: '/api/v1/billing/trial/start', description: 'Trial starten' },
      { method: 'POST', path: '/api/v1/billing/webhook', description: 'Stripe Webhooks' },
    ],
    envVars: ['DATABASE_URL', 'STRIPE_SECRET_KEY', 'STRIPE_WEBHOOK_SECRET'],
  },
  {
    id: 'edu-search-service',
    name: 'Edu Search Service',
    type: 'backend',
    port: 8086,
    container: 'breakpilot-edu-search',
    description: 'Bildungsquellen-Crawler mit OpenSearch-Integration',
    purpose: 'Automatisches Crawlen und Indexieren von Bildungsressourcen (OER, Lehrpläne, Schulbücher) für RAG-gestützte Arbeitsblatterstellung.',
    tech: ['Go 1.23', 'Gin', 'OpenSearch', 'Colly'],
    healthEndpoint: '/v1/health',
    endpoints: [
      { method: 'GET', path: '/v1/health', description: 'Health Check' },
      { method: 'GET', path: '/v1/search', description: 'Dokumentensuche' },
      { method: 'POST', path: '/v1/crawl/start', description: 'Crawler starten' },
      { method: 'GET', path: '/api/v1/staff/stats', description: 'Staff Statistiken' },
      { method: 'POST', path: '/api/v1/admin/crawl/staff', description: 'Staff Crawl starten' },
    ],
    envVars: ['OPENSEARCH_URL', 'DB_HOST', 'DB_USER', 'DB_PASSWORD'],
  },
  {
    id: 'dsms-gateway',
    name: 'DSMS Gateway',
    type: 'backend',
    port: 8082,
    container: 'breakpilot-pwa-dsms-gateway',
    description: 'Datenschutz-Management Gateway',
    purpose: 'Dezentrale Dokumentenspeicherung mit IPFS-Integration für manipulationssichere Audit-Logs und Rechtsdokumente.',
    tech: ['Go 1.21', 'Gin', 'IPFS'],
    healthEndpoint: '/health',
    endpoints: [
      { method: 'GET', path: '/health', description: 'Health Check' },
      { method: 'POST', path: '/api/v1/documents', description: 'Dokument speichern' },
    ],
    envVars: ['IPFS_URL', 'DATABASE_URL'],
  },
  {
    id: 'pca-platform',
    name: 'PCA Platform',
    type: 'backend',
    port: 8084,
    container: 'breakpilot-pca-platform',
    description: 'Payment Card Adapter für Taschengeld-Management',
    purpose: 'Fintech-Integration für Schüler-Taschengeld mit virtuellen Karten, Spending-Limits und Echtzeit-Transaktionsverfolgung für Eltern.',
    tech: ['Go 1.21', 'Gin', 'Stripe Issuing', 'pgx'],
    healthEndpoint: '/health',
    endpoints: [
      { method: 'GET', path: '/api/v1/health', description: 'Health Check' },
      { method: 'POST', path: '/api/v1/cards/create', description: 'Virtuelle Karte erstellen' },
      { method: 'GET', path: '/api/v1/transactions', description: 'Transaktionen abrufen' },
      { method: 'POST', path: '/api/v1/wallet/topup', description: 'Wallet aufladen' },
    ],
    envVars: ['DATABASE_URL', 'STRIPE_SECRET_KEY', 'STRIPE_WEBHOOK_SECRET'],
  },
  {
    id: 'matrix-synapse',
    name: 'Matrix Synapse',
    type: 'communication',
    port: 8448,
    container: 'breakpilot-synapse',
    description: 'Ende-zu-Ende verschlüsselter Messenger',
    purpose: 'Sichere Kommunikation zwischen Lehrern und Eltern mit E2EE, Raum-Management und DSGVO-konformer Nachrichtenspeicherung.',
    tech: ['Matrix Protocol', 'Synapse', 'PostgreSQL'],
    healthEndpoint: '/_matrix/client/versions',
    endpoints: [
      { method: 'GET', path: '/_matrix/client/versions', description: 'Client Versions' },
      { method: 'POST', path: '/_matrix/client/v3/login', description: 'Matrix Login' },
      { method: 'POST', path: '/_matrix/client/v3/createRoom', description: 'Raum erstellen' },
    ],
    envVars: ['SYNAPSE_SERVER_NAME', 'POSTGRES_HOST', 'SYNAPSE_REGISTRATION_SHARED_SECRET'],
  },
  {
    id: 'jitsi',
    name: 'Jitsi Meet',
    type: 'communication',
    port: 8443,
    container: 'breakpilot-jitsi',
    description: 'Videokonferenz-Plattform',
    purpose: 'Virtuelle Elterngespräche und Klassenkonferenzen mit optionaler JWT-Authentifizierung und Embedded-Integration ins Studio.',
    tech: ['Jitsi Meet', 'Prosody', 'JWT Auth'],
    healthEndpoint: '/http-bind',
    endpoints: [
      { method: 'GET', path: '/http-bind', description: 'BOSH Endpoint' },
      { method: 'GET', path: '/config.js', description: 'Jitsi Konfiguration' },
    ],
    envVars: ['JITSI_APP_ID', 'JITSI_APP_SECRET', 'PUBLIC_URL'],
  },
  {
    id: 'mailpit',
    name: 'Mailpit (SMTP)',
    type: 'infrastructure',
    port: 1025,
    container: 'breakpilot-pwa-mailpit',
    description: 'E-Mail-Testing und Vorschau',
    purpose: 'Lokaler SMTP-Server für E-Mail-Vorschau im Development mit Web-UI auf Port 8025 zur Überprüfung von Lifecycle-Emails.',
    tech: ['Mailpit', 'SMTP', 'Web UI'],
    healthEndpoint: null,
    endpoints: [
      { method: 'GET', path: '/', description: 'Web UI (Port 8025)' },
    ],
    envVars: ['MP_SMTP_AUTH', 'MP_SMTP_AUTH_ALLOW_INSECURE'],
  },
  {
    id: 'llm-gateway',
    name: 'LLM Gateway',
    type: 'backend',
    port: 8085,
    container: 'breakpilot-llm-gateway',
    description: 'Multi-Provider LLM Router',
    purpose: 'Einheitliche API für verschiedene LLM-Anbieter (OpenAI, Anthropic, Ollama) mit Provider-Switching, Token-Tracking und Fallback-Logik.',
    tech: ['Python 3.11', 'FastAPI', 'LiteLLM'],
    healthEndpoint: '/health',
    endpoints: [
      { method: 'GET', path: '/health', description: 'Health Check' },
      { method: 'POST', path: '/v1/chat/completions', description: 'Chat Completion (OpenAI-kompatibel)' },
      { method: 'GET', path: '/v1/models', description: 'Verfügbare Modelle' },
    ],
    envVars: ['OPENAI_API_KEY', 'ANTHROPIC_API_KEY', 'OLLAMA_BASE_URL'],
  },
  {
    id: 'website',
    name: 'Website (Next.js)',
    type: 'frontend',
    port: 3000,
    container: 'breakpilot-pwa-website',
    description: 'Next.js 14 Frontend mit App Router',
    purpose: 'Admin-Dashboard, Landing-Page und API-Routing für das Next.js Frontend mit Server Components und Edge Functions.',
    tech: ['Next.js 14', 'React 18', 'TypeScript', 'Tailwind CSS'],
    healthEndpoint: null,
    endpoints: [
      { method: 'GET', path: '/', description: 'Landing Page' },
      { method: 'GET', path: '/admin', description: 'Admin Dashboard' },
      { method: 'GET', path: '/app', description: 'Benutzer-App (redirect to :8000)' },
    ],
    envVars: ['NEXT_PUBLIC_API_URL', 'NEXTAUTH_SECRET'],
  },
  {
    id: 'opensearch',
    name: 'OpenSearch',
    type: 'database',
    port: 9200,
    container: 'breakpilot-opensearch',
    description: 'Volltextsuche und Vektorsuche',
    purpose: 'Hochperformante Suche in Bildungsressourcen mit k-NN für semantische Ähnlichkeitssuche und BM25 für Keyword-Matching.',
    tech: ['OpenSearch 2.11', 'k-NN Plugin'],
    healthEndpoint: '/',
    endpoints: [
      { method: 'GET', path: '/_cluster/health', description: 'Cluster Health' },
      { method: 'POST', path: '/bp_documents_v1/_search', description: 'Dokumentensuche' },
    ],
    envVars: ['OPENSEARCH_JAVA_OPTS'],
  },
]

// ASCII architecture diagram
export const DATAFLOW_DIAGRAM = `
                                    BreakPilot Platform - Datenfluss

    ┌─────────────────────────────────────────────────────────────────────────────────────────────┐
    │                                       FRONTEND LAYER                                         │
    ├─────────────────────────────────────────────────────────────────────────────────────────────┤
    │  ┌─────────────────────┐    ┌─────────────────────┐    ┌─────────────────────┐              │
    │  │   Admin Frontend    │    │    Lehrer Studio    │    │   Policy Vault UI   │              │
    │  │   Next.js :3000     │    │    FastAPI :8000    │    │    Angular :4200    │              │
    │  └──────────┬──────────┘    └──────────┬──────────┘    └──────────┬──────────┘              │
    └─────────────┼───────────────────────────┼───────────────────────────┼────────────────────────┘
                  │                           │                           │
                  ▼                           ▼                           ▼
    ┌─────────────────────────────────────────────────────────────────────────────────────────────┐
    │                                      BACKEND LAYER                                           │
    ├───────────────────┬───────────────────┬───────────────────┬─────────────────────────────────┤
    │ ┌───────────────┐ │ ┌───────────────┐ │ ┌───────────────┐ │ ┌───────────────┐               │
    │ │ Consent :8081 │ │ │ Billing :8083 │ │ │ School :8084  │ │ │ DSMS GW :8082 │               │
    │ │   Go/Gin      │ │ │   Go/Stripe   │ │ │   Go/Gin      │ │ │   Go/IPFS     │               │
    │ │ DSGVO Consent │ │ │ Subscriptions │ │ │ Noten/Zeugnis │ │ │ Audit Storage │               │
    │ └───────┬───────┘ │ └───────┬───────┘ │ └───────┬───────┘ │ └───────┬───────┘               │
    │         │         │         │         │         │         │         │                       │
    │         ▼         │         ▼         │         ▼         │         ▼                       │
    │ ┌───────────────┐ │ ┌───────────────┐ │ ┌───────────────┐ │ ┌───────────────┐               │
    │ │ Klausur :8086 │ │ │ H5P :8085     │ │ │ Policy API    │ │ │ LLM Services  │               │
    │ │ Python/BYOEH  │ │ │ Node.js       │ │ │ NestJS :3001  │ │ │ LibreChat/RAG │               │
    │ │ Abiturkorrek. │ │ │ Interaktiv    │ │ │ Richtlinien   │ │ │ KI-Assistenz  │               │
    │ └───────┬───────┘ │ └───────┬───────┘ │ └───────┬───────┘ │ └───────┬───────┘               │
    └─────────┼─────────┴─────────┼─────────┴─────────┼─────────┴─────────┼───────────────────────┘
              │                   │                   │                   │
              ▼                   ▼                   ▼                   ▼
    ┌─────────────────────────────────────────────────────────────────────────────────────────────┐
    │                                        DATA LAYER                                            │
    ├───────────────────┬───────────────────┬───────────────────┬─────────────────────────────────┤
    │ ┌───────────────┐ │ ┌───────────────┐ │ ┌───────────────┐ │ ┌───────────────┐               │
    │ │ PostgreSQL    │◄┼►│ Redis         │ │ │ Qdrant        │ │ │ OpenSearch    │               │
    │ │ :5432         │ │ │ :6379 Cache   │ │ │ :6333 Vector  │ │ │ :9200 Search  │               │
    │ │ Hauptdaten    │ │ │ Sessions      │ │ │ RAG Embeddings│ │ │ Volltext      │               │
    │ └───────────────┘ │ └───────────────┘ │ └───────────────┘ │ └───────────────┘               │
    └───────────────────┴───────────────────┴───────────────────┴─────────────────────────────────┘
                                                    │
                                                    ▼
    ┌─────────────────────────────────────────────────────────────────────────────────────────────┐
    │                                   INFRASTRUCTURE LAYER                                       │
    ├───────────────────┬───────────────────┬───────────────────┬─────────────────────────────────┤
    │ ┌───────────────┐ │ ┌───────────────┐ │ ┌───────────────┐ │ ┌───────────────┐               │
    │ │ Vault :8200   │ │ │ Keycloak :8180│ │ │ MinIO :9000   │ │ │ IPFS :5001    │               │
    │ │ Secrets Mgmt  │ │ │ SSO/OIDC Auth │ │ │ S3 Storage    │ │ │ Dezentral     │               │
    │ └───────────────┘ │ └───────────────┘ │ └───────────────┘ │ └───────────────┘               │
    │ ┌───────────────┐ │ ┌───────────────┐ │ ┌───────────────┐ │                                 │
    │ │ Matrix :8008  │ │ │ Jitsi :8443   │ │ │ ERPNext :8090 │ │                                 │
    │ │ E2EE Chat     │ │ │ Video Calls   │ │ │ Open ERP      │ │                                 │
    │ └───────────────┘ │ └───────────────┘ │ └───────────────┘ │                                 │
    └───────────────────┴───────────────────┴───────────────────┴─────────────────────────────────┘

    ═══════════════════════════════════════════════════════════════════════════════════════════════
    Legende:  ──► Datenfluss   ◄──► Bidirektional   │ Layer-Grenze   ┌─┐ Service-Box
    ═══════════════════════════════════════════════════════════════════════════════════════════════
`

// Tab definitions
export const TAB_DEFINITIONS = [
  { id: 'overview', label: 'Architektur' },
  { id: 'services', label: 'Services' },
  { id: 'api', label: 'API Reference' },
  { id: 'docker', label: 'Docker' },
  { id: 'testing', label: 'Testing' },
] as const
