import type { SystemInfoConfig } from './types'

export const communicationConfig: SystemInfoConfig = {
  title: 'Communication System-Info',
  description: 'Matrix Homeserver, Jitsi Videokonferenz, Jibri Recording und KI-Transkription.',
  version: '2.0',
  architecture: {
    layers: [
      { title: 'Frontend', components: ['BreakPilot Meet', 'Recording UI', 'Transcript Viewer'], color: '#3b82f6' },
      { title: 'Videokonferenz', components: ['Jitsi Meet', 'Videobridge', 'Jicofo', 'Prosody'], color: '#17a2b8' },
      { title: 'Recording', components: ['Jibri', 'Xvfb', 'FFmpeg', 'MinIO Upload'], color: '#28a745' },
      { title: 'Transkription', components: ['faster-whisper', 'pyannote.audio', 'RQ Worker'], color: '#6f42c1' },
      { title: 'Matrix Chat', components: ['Synapse', 'Federation', 'Media Store'], color: '#0DBD8B' },
      { title: 'Infrastructure', components: ['PostgreSQL', 'Valkey', 'MinIO', 'TURN'], color: '#f59e0b' },
    ],
  },
  features: [
    { name: 'Jitsi Videokonferenz', status: 'active', description: 'WebRTC-basierte Videokonferenzen' },
    { name: 'Matrix Chat', status: 'active', description: 'E2EE Messaging mit Synapse' },
    { name: 'Jibri Recording', status: 'active', description: 'Meeting-Aufzeichnung mit Consent' },
    { name: 'KI-Transkription', status: 'active', description: 'Whisper + Speaker Diarization' },
    { name: 'KI Meeting-Protokolle', status: 'active', description: 'LLM-generierte Zusammenfassungen mit Action Items' },
    { name: 'Untertitel Export', status: 'active', description: 'WebVTT und SRT Export' },
    { name: 'PDF Export', status: 'active', description: 'Protokolle als PDF exportieren' },
  ],
  roadmap: [
    { phase: 'Phase 1: Recording (Abgeschlossen)', priority: 'high', items: ['Jibri Integration', 'MinIO Storage', 'Consent Management', 'Webhook Pipeline'] },
    { phase: 'Phase 2: Transkription (Abgeschlossen)', priority: 'high', items: ['Whisper large-v3', 'Speaker Diarization', 'VTT/SRT Export', 'Segment-Suche'] },
    { phase: 'Phase 3: Protokolle (Abgeschlossen)', priority: 'high', items: ['LLM Gateway Integration', 'Action Items', 'Zusammenfassungen', 'MD/HTML/PDF Export'] },
    { phase: 'Phase 4: Erweiterte KI (Q2)', priority: 'medium', items: ['Sprecher-Namensverknuepfung', 'Themen-Clustering', 'Sentiment-Analyse', 'Automatische Agenda'] },
  ],
  technicalDetails: [
    { component: 'Video', technology: 'Jitsi Meet', version: 'stable-9823', description: 'WebRTC Konferenz' },
    { component: 'Recording', technology: 'Jibri', version: 'stable-9823', description: 'Meeting Recording' },
    { component: 'Transkription', technology: 'faster-whisper', version: '1.0+', description: 'GPU-optimiert (MIT)' },
    { component: 'Diarization', technology: 'pyannote.audio', version: '3.x', description: 'Speaker ID (MIT)' },
    { component: 'Meeting Minutes', technology: 'LLM Gateway', version: '1.0', description: 'Ollama/Llama 3.1' },
    { component: 'Queue', technology: 'RQ/Valkey', version: '1.x', description: 'Task Processing' },
    { component: 'Storage', technology: 'MinIO', version: 'latest', description: 'S3-kompatibel' },
    { component: 'Chat', technology: 'Matrix Synapse', version: '1.x', description: 'E2EE Homeserver' },
    { component: 'TURN', technology: 'Coturn', version: '4.x', description: 'NAT Traversal' },
  ],
  auditInfo: [
    {
      category: 'Jitsi Videokonferenz',
      items: [
        { label: 'Videobridge', value: 'Online', status: 'ok' },
        { label: 'Max. Teilnehmer', value: '100', status: 'ok' },
        { label: 'E2E Encryption', value: 'Verfuegbar', status: 'ok' },
        { label: 'TURN Server', value: 'Aktiv', status: 'ok' },
      ],
    },
    {
      category: 'Jibri Recording',
      items: [
        { label: 'Recording Service', value: 'Aktiv', status: 'ok' },
        { label: 'Consent-Pflicht', value: 'Aktiviert', status: 'ok' },
        { label: 'Storage', value: 'MinIO (Self-hosted)', status: 'ok' },
        { label: 'Retention', value: '365 Tage', status: 'ok' },
      ],
    },
    {
      category: 'KI-Transkription',
      items: [
        { label: 'Whisper Modell', value: 'large-v3 (lokal)', status: 'ok' },
        { label: 'Speaker Diarization', value: 'pyannote (lokal)', status: 'ok' },
        { label: 'Datenverarbeitung', value: '100% On-Premise', status: 'ok' },
        { label: 'Export-Formate', value: 'VTT, SRT, JSON', status: 'ok' },
      ],
    },
    {
      category: 'KI Meeting-Protokolle',
      items: [
        { label: 'LLM Backend', value: 'Ollama (lokal)', status: 'ok' },
        { label: 'Modell', value: 'Llama 3.1 8B/70B', status: 'ok' },
        { label: 'Verarbeitung', value: '100% On-Premise', status: 'ok' },
        { label: 'Export-Formate', value: 'MD, HTML, PDF', status: 'ok' },
      ],
    },
    {
      category: 'Matrix Homeserver',
      items: [
        { label: 'Server Status', value: 'Online', status: 'ok' },
        { label: 'Federation', value: 'Aktiviert', status: 'ok' },
        { label: 'E2E Encryption', value: 'Standard', status: 'ok' },
        { label: 'Media Retention', value: '90 Tage', status: 'ok' },
      ],
    },
    {
      category: 'DSGVO-Compliance',
      items: [
        { label: 'Daten-Residenz', value: 'EU (Self-hosted)', status: 'ok' },
        { label: 'Consent-Management', value: 'Implementiert', status: 'ok' },
        { label: 'Audit-Logging', value: 'Aktiviert', status: 'ok' },
        { label: 'Loeschrecht (Art. 17)', value: 'Implementiert', status: 'ok' },
      ],
    },
    {
      category: 'Open Source Lizenzen',
      items: [
        { label: 'Jitsi/Jibri', value: 'Apache-2.0', status: 'ok' },
        { label: 'faster-whisper', value: 'MIT', status: 'ok' },
        { label: 'pyannote.audio', value: 'MIT', status: 'ok' },
        { label: 'Matrix Synapse', value: 'AGPL-3.0', status: 'ok' },
      ],
    },
  ],
  fullDocumentation: `
<h2>BreakPilot Communication Platform</h2>
<p><strong>Version:</strong> 2.0.0 | <strong>Stand:</strong> Januar 2026 | <strong>Autor:</strong> BreakPilot Development Team</p>

<h2>Audit-Relevante Informationen</h2>
<p>Dieses Dokument dient als technische Dokumentation fuer das Kommunikationssystem der BreakPilot Plattform. Es ist fuer Audits durch Bildungstraeger und Datenschutzbeauftragte konzipiert.</p>

<h3>Ziel des Kommunikationssystems</h3>
<p>Das System ermoeglicht sichere Videokonferenzen und Messaging fuer Bildungseinrichtungen mit:</p>
<ul>
  <li><strong>Jitsi Meet:</strong> DSGVO-konforme Videokonferenzen ohne Drittanbieter</li>
  <li><strong>Jibri Recording:</strong> Meeting-Aufzeichnung mit expliziter Einwilligung</li>
  <li><strong>KI-Transkription:</strong> Automatische Verschriftlichung mit Sprechererkennung</li>
  <li><strong>KI Meeting-Protokolle:</strong> Automatische Zusammenfassungen, Action Items, Entscheidungen</li>
  <li><strong>Matrix Chat:</strong> Ende-zu-Ende verschluesselte Nachrichten</li>
</ul>

<h3>Datenschutz-Compliance</h3>
<ul>
  <li><strong>100% Self-Hosted:</strong> Alle Dienste laufen auf eigenen Servern in der EU</li>
  <li><strong>Keine Cloud-Abhaengigkeit:</strong> Keine Daten verlassen die Infrastruktur</li>
  <li><strong>Consent-Management:</strong> Aufzeichnung nur mit expliziter Zustimmung aller Teilnehmer</li>
  <li><strong>Audit-Logging:</strong> Vollstaendige Nachvollziehbarkeit aller Zugriffe</li>
  <li><strong>Open Source:</strong> Alle Komponenten sind quelloffen und auditierbar</li>
</ul>
`,
}
