/**
 * Subprocessor and TOM Controls
 * Domains: SUBPROCESSOR, TOM
 */

import { Control } from '../types'

export const SUBPROCESSOR_CONTROLS: Control[] = [
  {
    id: 'VND-SUB-01',
    domain: 'SUBPROCESSOR',
    title: {
      de: 'Genehmigungspflicht für Unterauftragnehmer',
      en: 'Approval requirement for sub-processors',
    },
    description: {
      de: 'Einsatz von Unterauftragnehmern nur mit Genehmigung',
      en: 'Use of sub-processors only with approval',
    },
    passCriteria: {
      de: 'Genehmigungserfordernis (spezifisch oder allgemein mit Widerspruchsrecht) vereinbart',
      en: 'Approval requirement (specific or general with objection right) agreed',
    },
    requirements: ['Art. 28 Abs. 2, 4 DSGVO'],
    isRequired: true,
    defaultFrequency: 'ANNUAL',
  },
  {
    id: 'VND-SUB-02',
    domain: 'SUBPROCESSOR',
    title: {
      de: 'Aktuelle Unterauftragnehmer-Liste',
      en: 'Current sub-processor list',
    },
    description: {
      de: 'Vollständige und aktuelle Liste aller Unterauftragnehmer',
      en: 'Complete and current list of all sub-processors',
    },
    passCriteria: {
      de: 'Liste liegt vor mit Name, Sitz, Verarbeitungszweck',
      en: 'List available with name, location, processing purpose',
    },
    requirements: ['Art. 28 Abs. 2 DSGVO'],
    isRequired: true,
    defaultFrequency: 'QUARTERLY',
  },
  {
    id: 'VND-SUB-03',
    domain: 'SUBPROCESSOR',
    title: {
      de: 'Informationspflicht bei Änderungen',
      en: 'Notification obligation for changes',
    },
    description: {
      de: 'Information über neue oder geänderte Unterauftragnehmer',
      en: 'Information about new or changed sub-processors',
    },
    passCriteria: {
      de: 'Vorabinformation vereinbart, ausreichende Frist für Widerspruch',
      en: 'Advance notification agreed, sufficient time for objection',
    },
    requirements: ['Art. 28 Abs. 2 DSGVO'],
    isRequired: true,
    defaultFrequency: 'ANNUAL',
  },
  {
    id: 'VND-SUB-04',
    domain: 'SUBPROCESSOR',
    title: {
      de: 'Weitergabe der Datenschutzpflichten',
      en: 'Transfer of data protection obligations',
    },
    description: {
      de: 'Datenschutzpflichten werden an Unterauftragnehmer weitergegeben',
      en: 'Data protection obligations are transferred to sub-processors',
    },
    passCriteria: {
      de: 'Vertraglich vereinbart, dass Unterauftragnehmer gleichen Pflichten unterliegen',
      en: 'Contractually agreed that sub-processors are subject to same obligations',
    },
    requirements: ['Art. 28 Abs. 4 DSGVO'],
    isRequired: true,
    defaultFrequency: 'ANNUAL',
  },
  {
    id: 'VND-SUB-05',
    domain: 'SUBPROCESSOR',
    title: {
      de: 'Haftung für Unterauftragnehmer',
      en: 'Liability for sub-processors',
    },
    description: {
      de: 'Klare Haftungsregelung für Unterauftragnehmer',
      en: 'Clear liability provision for sub-processors',
    },
    passCriteria: {
      de: 'Auftragsverarbeiter haftet für Unterauftragnehmer wie für eigenes Handeln',
      en: 'Processor is liable for sub-processors as for own actions',
    },
    requirements: ['Art. 28 Abs. 4 DSGVO'],
    isRequired: true,
    defaultFrequency: 'ANNUAL',
  },
]

export const TOM_CONTROLS: Control[] = [
  {
    id: 'VND-TOM-01',
    domain: 'TOM',
    title: {
      de: 'TOM-Dokumentation vorhanden',
      en: 'TOM documentation available',
    },
    description: {
      de: 'Vollständige Dokumentation der technischen und organisatorischen Maßnahmen',
      en: 'Complete documentation of technical and organizational measures',
    },
    passCriteria: {
      de: 'TOM-Anlage vorhanden, aktuell, spezifisch für die Verarbeitung',
      en: 'TOM annex available, current, specific to the processing',
    },
    requirements: ['Art. 28 Abs. 3 lit. c DSGVO', 'Art. 32 DSGVO'],
    isRequired: true,
    defaultFrequency: 'ANNUAL',
  },
  {
    id: 'VND-TOM-02',
    domain: 'TOM',
    title: {
      de: 'Verschlüsselung',
      en: 'Encryption',
    },
    description: {
      de: 'Angemessene Verschlüsselung für Daten in Transit und at Rest',
      en: 'Appropriate encryption for data in transit and at rest',
    },
    passCriteria: {
      de: 'TLS 1.2+ für Transit, AES-256 für at Rest',
      en: 'TLS 1.2+ for transit, AES-256 for at rest',
    },
    requirements: ['Art. 32 Abs. 1 lit. a DSGVO'],
    isRequired: true,
    defaultFrequency: 'ANNUAL',
  },
  {
    id: 'VND-TOM-03',
    domain: 'TOM',
    title: {
      de: 'Zugriffskontrolle',
      en: 'Access control',
    },
    description: {
      de: 'Angemessene Zugriffskontrollmechanismen',
      en: 'Appropriate access control mechanisms',
    },
    passCriteria: {
      de: 'Rollenbasierte Zugriffskontrolle, Least Privilege, Logging',
      en: 'Role-based access control, least privilege, logging',
    },
    requirements: ['Art. 32 Abs. 1 lit. b DSGVO', 'ISO 27001 A.9'],
    isRequired: true,
    defaultFrequency: 'ANNUAL',
  },
  {
    id: 'VND-TOM-04',
    domain: 'TOM',
    title: {
      de: 'Verfügbarkeit und Wiederherstellung',
      en: 'Availability and recovery',
    },
    description: {
      de: 'Maßnahmen zur Sicherstellung der Verfügbarkeit und Wiederherstellung',
      en: 'Measures to ensure availability and recovery',
    },
    passCriteria: {
      de: 'Backup-Konzept, DR-Plan, RTO/RPO definiert',
      en: 'Backup concept, DR plan, RTO/RPO defined',
    },
    requirements: ['Art. 32 Abs. 1 lit. b, c DSGVO'],
    isRequired: true,
    defaultFrequency: 'ANNUAL',
  },
  {
    id: 'VND-TOM-05',
    domain: 'TOM',
    title: {
      de: 'Regelmäßige TOM-Überprüfung',
      en: 'Regular TOM review',
    },
    description: {
      de: 'Regelmäßige Überprüfung und Aktualisierung der TOM',
      en: 'Regular review and update of TOM',
    },
    passCriteria: {
      de: 'TOM werden mindestens jährlich überprüft und bei Bedarf aktualisiert',
      en: 'TOM are reviewed at least annually and updated as needed',
    },
    requirements: ['Art. 32 Abs. 1 lit. d DSGVO'],
    isRequired: true,
    defaultFrequency: 'ANNUAL',
  },
  {
    id: 'VND-TOM-06',
    domain: 'TOM',
    title: {
      de: 'Penetrationstest',
      en: 'Penetration testing',
    },
    description: {
      de: 'Regelmäßige Penetrationstests der relevanten Systeme',
      en: 'Regular penetration testing of relevant systems',
    },
    passCriteria: {
      de: 'Jährlicher Pentest, kritische Findings behoben',
      en: 'Annual pentest, critical findings resolved',
    },
    requirements: ['ISO 27001 A.12.6.1'],
    isRequired: false,
    defaultFrequency: 'ANNUAL',
  },
]
