// =============================================================================
// CATEGORY METADATA
// =============================================================================

import type { ControlCategory } from './enums'
import type { LocalizedString } from './control-library'

export interface CategoryMetadata {
  id: ControlCategory
  name: LocalizedString
  gdprReference: string
  icon?: string
}

export const CONTROL_CATEGORIES: CategoryMetadata[] = [
  {
    id: 'ACCESS_CONTROL',
    name: { de: 'Zutrittskontrolle', en: 'Physical Access Control' },
    gdprReference: 'Art. 32 Abs. 1 lit. b',
  },
  {
    id: 'ADMISSION_CONTROL',
    name: { de: 'Zugangskontrolle', en: 'System Access Control' },
    gdprReference: 'Art. 32 Abs. 1 lit. b',
  },
  {
    id: 'ACCESS_AUTHORIZATION',
    name: { de: 'Zugriffskontrolle', en: 'Access Authorization' },
    gdprReference: 'Art. 32 Abs. 1 lit. b',
  },
  {
    id: 'TRANSFER_CONTROL',
    name: { de: 'Weitergabekontrolle', en: 'Transfer Control' },
    gdprReference: 'Art. 32 Abs. 1 lit. b',
  },
  {
    id: 'INPUT_CONTROL',
    name: { de: 'Eingabekontrolle', en: 'Input Control' },
    gdprReference: 'Art. 32 Abs. 1 lit. b',
  },
  {
    id: 'ORDER_CONTROL',
    name: { de: 'Auftragskontrolle', en: 'Order Control' },
    gdprReference: 'Art. 28',
  },
  {
    id: 'AVAILABILITY',
    name: { de: 'Verfügbarkeit', en: 'Availability' },
    gdprReference: 'Art. 32 Abs. 1 lit. b, c',
  },
  {
    id: 'SEPARATION',
    name: { de: 'Trennbarkeit', en: 'Separation' },
    gdprReference: 'Art. 32 Abs. 1 lit. b',
  },
  {
    id: 'ENCRYPTION',
    name: { de: 'Verschlüsselung', en: 'Encryption' },
    gdprReference: 'Art. 32 Abs. 1 lit. a',
  },
  {
    id: 'PSEUDONYMIZATION',
    name: { de: 'Pseudonymisierung', en: 'Pseudonymization' },
    gdprReference: 'Art. 32 Abs. 1 lit. a',
  },
  {
    id: 'RESILIENCE',
    name: { de: 'Belastbarkeit', en: 'Resilience' },
    gdprReference: 'Art. 32 Abs. 1 lit. b',
  },
  {
    id: 'RECOVERY',
    name: { de: 'Wiederherstellbarkeit', en: 'Recovery' },
    gdprReference: 'Art. 32 Abs. 1 lit. c',
  },
  {
    id: 'REVIEW',
    name: { de: 'Überprüfung & Bewertung', en: 'Review & Assessment' },
    gdprReference: 'Art. 32 Abs. 1 lit. d',
  },
]
