import type { SystemInfoConfig, Feature } from './types'

// Features with proper typing - Removed all school/person crawling features
const features: Feature[] = [
  { name: 'Lehrplan-Crawler', status: 'active', description: 'Crawlt NiBiS und KMK fuer Lehrplaene und Erlasse' },
  { name: 'Dokumenten-Suche', status: 'active', description: 'Volltext-Suche ueber Bildungsdokumente' },
  { name: 'Bildungsquellen-Verwaltung', status: 'active', description: 'Verwaltet Crawler-Konfigurationen fuer Bildungsbehoerden' },
  { name: 'RAG-Integration', status: 'planned', description: 'Vector-Suche fuer intelligente Dokumentenabfragen' },
]

export const eduSearchConfig: SystemInfoConfig = {
  title: 'Education Search System-Info',
  description: 'Crawler und Suchsystem fuer Bildungsdokumente (Lehrplaene, Erlasse, Beschluesse).',
  version: '4.0',
  architecture: {
    layers: [
      { title: 'Frontend', components: ['Admin UI (Next.js)', 'Dokumenten-Suche'], color: '#3b82f6' },
      { title: 'API Gateway', components: ['edu-search-service (Go, Port 8088)'], color: '#8b5cf6' },
      { title: 'Crawler', components: ['NiBiS Crawler', 'KMK Crawler', 'Bildungsbehoerden-Crawler'], color: '#10b981' },
      { title: 'Data Layer', components: ['PostgreSQL (Metadaten)', 'OpenSearch (Volltext)', 'MinIO (Dokumente)'], color: '#f59e0b' },
    ],
  },
  features,
  roadmap: [
    {
      phase: 'Phase 1: Dokumenten-Crawler (Abgeschlossen)',
      priority: 'high',
      items: [
        'NiBiS Crawler (Niedersachsen)',
        'KMK Beschluesse-Crawler',
        'Dokumenten-Indexierung',
        'Admin-UI fuer Crawler-Steuerung',
      ]
    },
    {
      phase: 'Phase 2: Suche (Aktuell)',
      priority: 'high',
      items: [
        'Volltext-Suche mit OpenSearch',
        'Filter nach Bundesland/Dokumenttyp',
        'Semantische Suche (RAG)',
        'Zitat-Extraktion',
      ]
    },
    {
      phase: 'Phase 3: Erweiterung (Q2)',
      priority: 'medium',
      items: [
        'Weitere Bundeslaender-Crawler',
        'Automatische Aenderungserkennung',
        'Push-Benachrichtigungen',
        'API fuer externe Systeme',
      ]
    },
  ],
  technicalDetails: [
    { component: 'Backend', technology: 'Go (Gin)', version: '1.21+', description: 'edu-search-service auf Port 8088' },
    { component: 'Suche', technology: 'OpenSearch', version: '2.11', description: 'Volltext-Indexierung' },
    { component: 'Datenbank', technology: 'PostgreSQL', version: '15+', description: 'Metadaten und Crawler-Status' },
    { component: 'Storage', technology: 'MinIO', description: 'Dokument-Speicher (PDFs, etc.)' },
    { component: 'Frontend', technology: 'Next.js', version: '15', description: 'Admin UI auf Port 3000' },
  ],
  auditInfo: [
    {
      category: 'Service Status',
      items: [
        { label: 'edu-search-service', value: 'Port 8088', status: 'ok' },
        { label: 'OpenSearch', value: 'Port 9200', status: 'ok' },
        { label: 'API Latenz', value: '< 100ms', status: 'ok' },
      ],
    },
    {
      category: 'Datenquellen',
      items: [
        { label: 'NiBiS (Niedersachsen)', value: 'Aktiv', status: 'ok' },
        { label: 'KMK Beschluesse', value: 'Aktiv', status: 'ok' },
        { label: 'Weitere Bundeslaender', value: 'Geplant', status: 'warning' },
      ],
    },
  ],
  fullDocumentation: `
<h2>Education Search - Bildungsdokumente</h2>

<h3>1. Uebersicht</h3>
<p>Das Education Search System crawlt und indexiert Bildungsdokumente aus verschiedenen Quellen:</p>
<ul>
  <li><strong>NiBiS:</strong> Niedersaechsischer Bildungsserver (Lehrplaene, Erlasse, Curricula)</li>
  <li><strong>KMK:</strong> Beschluesse der Kultusministerkonferenz</li>
  <li><strong>Landesbehoerden:</strong> Bildungsportale der Bundeslaender</li>
</ul>

<h3>2. Architektur</h3>
<pre>
┌─────────────┐     ┌─────────────────┐     ┌────────────┐
│   Admin UI   │────▶│ edu-search-svc  │────▶│ OpenSearch │
│  (Next.js)   │     │   (Go, :8088)   │     │  (:9200)   │
└─────────────┘     └─────────────────┘     └────────────┘
                            │
                    ┌───────┴───────┐
                    ▼               ▼
              ┌──────────┐    ┌──────────┐
              │ PostgreSQL│    │  MinIO   │
              │ (Metadaten)│   │ (Dateien)│
              └──────────┘    └──────────┘
</pre>

<h3>3. Crawler-Konfiguration</h3>
<p>Jeder Crawler wird ueber die Admin-UI konfiguriert:</p>
<ul>
  <li>Start-URLs und Crawl-Tiefe</li>
  <li>Rate-Limiting (respektiert robots.txt)</li>
  <li>Dokumenttyp-Filter</li>
  <li>Scheduling (taglich/woechentlich)</li>
</ul>

<h3>4. Wichtige Hinweise</h3>
<ul>
  <li>System crawlt ausschliesslich <strong>Institutionsdaten</strong> (Dokumente, Lehrplaene)</li>
  <li>Keine personenbezogenen Daten werden gesammelt</li>
  <li>Alle Crawls respektieren robots.txt und Rate-Limits</li>
</ul>
`,
}
