/**
 * Demo VVT (Verarbeitungsverzeichnis / Processing Activities Register) for AI Compliance SDK
 * Art. 30 DSGVO - These are seed data structures - actual data is stored in database
 */

import { ProcessingActivity, RetentionPolicy } from '../types'

export const DEMO_PROCESSING_ACTIVITIES: ProcessingActivity[] = [
  {
    id: 'demo-pa-1',
    name: 'KI-gestützte Kundenanalyse',
    purpose: 'Analyse von Kundenverhalten und Präferenzen zur Personalisierung von Angeboten, Churn-Prediction und Marketing-Optimierung',
    legalBasis: 'Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse) / Art. 6 Abs. 1 lit. a DSGVO (Einwilligung für erweitertes Profiling)',
    dataCategories: [
      'Stammdaten (Name, Adresse, E-Mail, Telefon)',
      'Transaktionsdaten (Käufe, Bestellungen, Retouren)',
      'Nutzungsdaten (Clickstreams, Seitenaufrufe, Verweildauer)',
      'Demographische Daten (Alter, Geschlecht, PLZ-Region)',
    ],
    dataSubjects: [
      'Bestandskunden (ca. 250.000 aktive)',
      'Registrierte Interessenten (ca. 100.000)',
      'Newsletter-Abonnenten (ca. 180.000)',
    ],
    recipients: [
      'Interne Fachabteilungen (Marketing, Vertrieb)',
      'E-Mail-Marketing-Dienstleister (AV-Vertrag vorhanden)',
      'Cloud-Infrastruktur-Anbieter (AV-Vertrag vorhanden)',
    ],
    thirdCountryTransfers: false,
    retentionPeriod: '3 Jahre nach letzter Aktivität, danach Anonymisierung',
    technicalMeasures: [
      'AES-256 Verschlüsselung',
      'Pseudonymisierung',
      'Zugriffskontrolle mit MFA',
      'Audit-Logging',
    ],
    organizationalMeasures: [
      'Rollenbasiertes Berechtigungskonzept',
      'Verpflichtung auf Datengeheimnis',
      'Regelmäßige Datenschutzschulungen',
      'Dokumentierte Prozesse',
    ],
  },
  {
    id: 'demo-pa-2',
    name: 'Automatisierte Bewerbungsvorauswahl',
    purpose: 'KI-gestützte Vorauswahl von Bewerbungen basierend auf Lebenslauf-Analyse und Qualifikationsabgleich zur Effizienzsteigerung im Recruiting',
    legalBasis: 'Art. 6 Abs. 1 lit. b DSGVO (vorvertragliche Maßnahmen) / § 26 BDSG (Beschäftigungsverhältnis)',
    dataCategories: [
      'Bewerberdaten (Name, Kontakt, Geburtsdatum)',
      'Qualifikationen (Ausbildung, Berufserfahrung, Zertifikate)',
      'Lebenslaufdaten (Werdegang, Fähigkeiten)',
      'Bewerbungsschreiben',
    ],
    dataSubjects: [
      'Bewerber auf offene Stellen',
      'Initiativbewerber',
    ],
    recipients: [
      'HR-Abteilung',
      'Fachabteilungsleiter (nur finale Kandidaten)',
      'Betriebsrat (Einsichtnahme möglich)',
    ],
    thirdCountryTransfers: false,
    retentionPeriod: '6 Monate nach Abschluss des Bewerbungsverfahrens (bei Ablehnung), länger nur mit Einwilligung für Talentpool',
    technicalMeasures: [
      'Verschlüsselte Speicherung',
      'Zugangsbeschränkung auf HR',
      'Automatische Löschroutinen',
      'Bias-Monitoring',
    ],
    organizationalMeasures: [
      'Human-in-the-Loop für finale Entscheidungen',
      'Dokumentierte KI-Entscheidungskriterien',
      'Transparente Information an Bewerber',
      'Regelmäßige Fairness-Audits',
    ],
  },
  {
    id: 'demo-pa-3',
    name: 'Kundenservice-Chatbot',
    purpose: 'Automatisierte Beantwortung von Kundenanfragen im First-Level-Support mittels KI-gestütztem Dialogsystem',
    legalBasis: 'Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung) / Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse)',
    dataCategories: [
      'Kundenstammdaten (zur Identifikation)',
      'Kommunikationsinhalte (Chat-Verläufe)',
      'Technische Daten (Session-ID, Zeitstempel)',
      'Serviceanfragen und deren Lösungen',
    ],
    dataSubjects: [
      'Kunden mit aktiven Verträgen',
      'Interessenten mit Anfragen',
    ],
    recipients: [
      'Kundenservice-Team (bei Eskalation)',
      'Cloud-Anbieter (Hosting, AV-Vertrag)',
    ],
    thirdCountryTransfers: false,
    retentionPeriod: '2 Jahre für Chat-Verläufe, danach Anonymisierung für Training',
    technicalMeasures: [
      'TLS-Verschlüsselung',
      'Keine Speicherung sensitiver Daten im Chat',
      'Automatische PII-Erkennung und Maskierung',
    ],
    organizationalMeasures: [
      'Klare KI-Kennzeichnung gegenüber Kunden',
      'Jederzeit Übergabe an Menschen möglich',
      'Schulung des Eskalations-Teams',
    ],
  },
  {
    id: 'demo-pa-4',
    name: 'Mitarbeiterverwaltung',
    purpose: 'Verwaltung von Personalstammdaten, Gehaltsabrechnung, Zeiterfassung und Personalentwicklung',
    legalBasis: 'Art. 6 Abs. 1 lit. b DSGVO (Arbeitsvertrag) / § 26 BDSG (Beschäftigungsverhältnis) / gesetzliche Pflichten (Steuer, SV)',
    dataCategories: [
      'Personalstammdaten (Name, Adresse, Geburtsdatum, SV-Nr.)',
      'Vertragsdaten (Arbeitsvertrag, Gehalt, Arbeitszeit)',
      'Zeiterfassungsdaten',
      'Leistungsbeurteilungen',
      'Bankverbindung',
    ],
    dataSubjects: [
      'Aktive Mitarbeiter',
      'Ehemalige Mitarbeiter (Archiv)',
    ],
    recipients: [
      'HR-Abteilung',
      'Lohnbuchhaltung / Steuerberater',
      'Sozialversicherungsträger',
      'Finanzamt',
    ],
    thirdCountryTransfers: false,
    retentionPeriod: '10 Jahre nach Ausscheiden (steuerliche Aufbewahrungspflichten)',
    technicalMeasures: [
      'Verschlüsselte Speicherung',
      'Strenge Zugriffskontrolle',
      'Getrennte Systeme für verschiedene Datenkategorien',
    ],
    organizationalMeasures: [
      'Need-to-know-Prinzip',
      'Dokumentierte Prozesse',
      'Betriebsvereinbarung zur Datenverarbeitung',
    ],
  },
  {
    id: 'demo-pa-5',
    name: 'Website-Analyse und Marketing',
    purpose: 'Analyse des Nutzerverhaltens auf der Website zur Optimierung der User Experience und für personalisierte Marketing-Maßnahmen',
    legalBasis: 'Art. 6 Abs. 1 lit. a DSGVO (Einwilligung via Cookie-Banner)',
    dataCategories: [
      'Pseudonymisierte Nutzungsdaten',
      'Cookie-IDs und Tracking-Identifier',
      'Geräteinformationen',
      'Interaktionsdaten (Klicks, Scrollverhalten)',
    ],
    dataSubjects: [
      'Website-Besucher (nur mit Einwilligung)',
    ],
    recipients: [
      'Marketing-Team',
      'Analytics-Anbieter (AV-Vertrag)',
      'Advertising-Partner (nur mit erweiterter Einwilligung)',
    ],
    thirdCountryTransfers: true,
    retentionPeriod: '13 Monate für Analytics-Daten, Cookie-Laufzeit max. 12 Monate',
    technicalMeasures: [
      'IP-Anonymisierung',
      'Secure Cookies',
      'Consent-Management-System',
    ],
    organizationalMeasures: [
      'Transparente Cookie-Richtlinie',
      'Einfacher Widerruf möglich',
      'Regelmäßige Cookie-Audits',
    ],
  },
  {
    id: 'demo-pa-6',
    name: 'Videoüberwachung',
    purpose: 'Schutz von Eigentum und Personen, Prävention und Aufklärung von Straftaten in Geschäftsräumen',
    legalBasis: 'Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an Sicherheit)',
    dataCategories: [
      'Videoaufnahmen',
      'Zeitstempel',
      'Aufnahmeort',
    ],
    dataSubjects: [
      'Mitarbeiter in überwachten Bereichen',
      'Besucher und Kunden',
      'Lieferanten',
    ],
    recipients: [
      'Sicherheitspersonal',
      'Geschäftsleitung (bei Vorfällen)',
      'Strafverfolgungsbehörden (auf Anforderung)',
    ],
    thirdCountryTransfers: false,
    retentionPeriod: '72 Stunden, bei Vorfällen bis zur Abschluss der Untersuchung',
    technicalMeasures: [
      'Verschlüsselte Speicherung',
      'Automatische Löschung nach Fristablauf',
      'Eingeschränkter Zugriff',
    ],
    organizationalMeasures: [
      'Beschilderung der überwachten Bereiche',
      'Betriebsvereinbarung mit Betriebsrat',
      'Dokumentiertes Einsichtsprotokoll',
    ],
  },
]

export const DEMO_RETENTION_POLICIES: RetentionPolicy[] = [
  {
    id: 'demo-ret-1',
    dataCategory: 'Kundenstammdaten',
    description: 'Grundlegende Daten zur Kundenidentifikation (Name, Adresse, Kontaktdaten)',
    legalBasis: 'Handels- und steuerrechtliche Aufbewahrungspflichten (§ 257 HGB, § 147 AO)',
    retentionPeriod: '10 Jahre nach Vertragsende',
    deletionMethod: 'Sichere Löschung mit Protokollierung, bei Papier: Aktenvernichtung DIN 66399',
    exceptions: [
      'Laufende Rechtsstreitigkeiten',
      'Offene Forderungen',
    ],
  },
  {
    id: 'demo-ret-2',
    dataCategory: 'Transaktionsdaten',
    description: 'Bestellungen, Rechnungen, Zahlungen, Lieferungen',
    legalBasis: '§ 257 HGB, § 147 AO (handels- und steuerrechtliche Aufbewahrung)',
    retentionPeriod: '10 Jahre ab Ende des Geschäftsjahres',
    deletionMethod: 'Automatisierte Löschung nach Fristablauf',
    exceptions: [
      'Garantiefälle (bis Ende der Garantiezeit)',
      'Prüfungen durch Finanzbehörden',
    ],
  },
  {
    id: 'demo-ret-3',
    dataCategory: 'Bewerberdaten',
    description: 'Lebenslauf, Anschreiben, Zeugnisse, Korrespondenz',
    legalBasis: 'AGG (Diskriminierungsschutz) / § 26 BDSG',
    retentionPeriod: '6 Monate nach Abschluss des Verfahrens',
    deletionMethod: 'Sichere Löschung, bei Papier: Aktenvernichtung',
    exceptions: [
      'Aufnahme in Talentpool (mit Einwilligung): 2 Jahre',
      'Diskriminierungsklagen: bis Abschluss',
    ],
  },
  {
    id: 'demo-ret-4',
    dataCategory: 'Personalakten',
    description: 'Arbeitsverträge, Gehaltsabrechnungen, Beurteilungen, Abmahnungen',
    legalBasis: '§ 257 HGB, § 147 AO, Sozialversicherungsrecht',
    retentionPeriod: '10 Jahre nach Ausscheiden (teilweise 30 Jahre für Rentenansprüche)',
    deletionMethod: 'Sichere Löschung mit Dokumentation',
    exceptions: [
      'Arbeitsrechtliche Streitigkeiten',
      'Rentenversicherungsnachweise (lebenslang empfohlen)',
    ],
  },
  {
    id: 'demo-ret-5',
    dataCategory: 'Marketing-Profile',
    description: 'Analysedaten, Segmentierungen, Präferenzen, Kaufhistorie',
    legalBasis: 'Einwilligung (Art. 6 Abs. 1 lit. a DSGVO)',
    retentionPeriod: '3 Jahre nach letzter Aktivität, dann Anonymisierung',
    deletionMethod: 'Pseudonymisierung → Anonymisierung → Löschung',
    exceptions: [
      'Widerruf der Einwilligung (sofortige Löschung)',
    ],
  },
  {
    id: 'demo-ret-6',
    dataCategory: 'Videoaufnahmen',
    description: 'Aufnahmen der Sicherheitskameras',
    legalBasis: 'Berechtigtes Interesse (Art. 6 Abs. 1 lit. f DSGVO)',
    retentionPeriod: '72 Stunden',
    deletionMethod: 'Automatisches Überschreiben',
    exceptions: [
      'Sicherheitsvorfälle (bis Abschluss der Untersuchung)',
      'Anforderung durch Strafverfolgungsbehörden',
    ],
  },
  {
    id: 'demo-ret-7',
    dataCategory: 'KI-Trainingsdaten',
    description: 'Anonymisierte Datensätze für Modell-Training',
    legalBasis: 'Berechtigtes Interesse / ursprüngliche Zweckbindung (bei Kompatibilität)',
    retentionPeriod: 'Solange Modell aktiv, danach Löschung mit Modell-Archivierung',
    deletionMethod: 'Sichere Löschung bei Modell-Retirement',
    exceptions: [
      'Audit-Trail für Modell-Herkunft (anonymisierte Metadaten)',
    ],
  },
  {
    id: 'demo-ret-8',
    dataCategory: 'Audit-Logs',
    description: 'Protokolle von Datenzugriffen und Systemereignissen',
    legalBasis: 'Nachweispflichten DSGVO, Compliance-Anforderungen',
    retentionPeriod: '10 Jahre',
    deletionMethod: 'Automatisierte Löschung nach Fristablauf',
    exceptions: [
      'Laufende Untersuchungen oder Audits',
    ],
  },
]

export function getDemoProcessingActivities(): ProcessingActivity[] {
  return DEMO_PROCESSING_ACTIVITIES
}

export function getDemoRetentionPolicies(): RetentionPolicy[] {
  return DEMO_RETENTION_POLICIES
}
