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

import type { DataCategory, DataSubject } from './enums'
import type { LocalizedString } from './control-library'

export interface DataCategoryMetadata {
  id: DataCategory
  name: LocalizedString
  isSpecialCategory: boolean
  gdprReference?: string
}

export const DATA_CATEGORIES_METADATA: DataCategoryMetadata[] = [
  {
    id: 'IDENTIFICATION',
    name: { de: 'Identifikationsdaten', en: 'Identification Data' },
    isSpecialCategory: false,
  },
  {
    id: 'CONTACT',
    name: { de: 'Kontaktdaten', en: 'Contact Data' },
    isSpecialCategory: false,
  },
  {
    id: 'FINANCIAL',
    name: { de: 'Finanzdaten', en: 'Financial Data' },
    isSpecialCategory: false,
  },
  {
    id: 'PROFESSIONAL',
    name: { de: 'Berufliche Daten', en: 'Professional Data' },
    isSpecialCategory: false,
  },
  {
    id: 'LOCATION',
    name: { de: 'Standortdaten', en: 'Location Data' },
    isSpecialCategory: false,
  },
  {
    id: 'BEHAVIORAL',
    name: { de: 'Verhaltensdaten', en: 'Behavioral Data' },
    isSpecialCategory: false,
  },
  {
    id: 'BIOMETRIC',
    name: { de: 'Biometrische Daten', en: 'Biometric Data' },
    isSpecialCategory: true,
    gdprReference: 'Art. 9 Abs. 1',
  },
  {
    id: 'HEALTH',
    name: { de: 'Gesundheitsdaten', en: 'Health Data' },
    isSpecialCategory: true,
    gdprReference: 'Art. 9 Abs. 1',
  },
  {
    id: 'GENETIC',
    name: { de: 'Genetische Daten', en: 'Genetic Data' },
    isSpecialCategory: true,
    gdprReference: 'Art. 9 Abs. 1',
  },
  {
    id: 'POLITICAL',
    name: { de: 'Politische Meinungen', en: 'Political Opinions' },
    isSpecialCategory: true,
    gdprReference: 'Art. 9 Abs. 1',
  },
  {
    id: 'RELIGIOUS',
    name: { de: 'Religiöse Überzeugungen', en: 'Religious Beliefs' },
    isSpecialCategory: true,
    gdprReference: 'Art. 9 Abs. 1',
  },
  {
    id: 'SEXUAL_ORIENTATION',
    name: { de: 'Sexuelle Orientierung', en: 'Sexual Orientation' },
    isSpecialCategory: true,
    gdprReference: 'Art. 9 Abs. 1',
  },
  {
    id: 'CRIMINAL',
    name: { de: 'Strafrechtliche Daten', en: 'Criminal Data' },
    isSpecialCategory: true,
    gdprReference: 'Art. 10',
  },
]

// =============================================================================
// DATA SUBJECT METADATA
// =============================================================================

export interface DataSubjectMetadata {
  id: DataSubject
  name: LocalizedString
  isVulnerable: boolean
}

export const DATA_SUBJECTS_METADATA: DataSubjectMetadata[] = [
  {
    id: 'EMPLOYEES',
    name: { de: 'Mitarbeiter', en: 'Employees' },
    isVulnerable: false,
  },
  {
    id: 'CUSTOMERS',
    name: { de: 'Kunden', en: 'Customers' },
    isVulnerable: false,
  },
  {
    id: 'PROSPECTS',
    name: { de: 'Interessenten', en: 'Prospects' },
    isVulnerable: false,
  },
  {
    id: 'SUPPLIERS',
    name: { de: 'Lieferanten', en: 'Suppliers' },
    isVulnerable: false,
  },
  {
    id: 'MINORS',
    name: { de: 'Minderjährige', en: 'Minors' },
    isVulnerable: true,
  },
  {
    id: 'PATIENTS',
    name: { de: 'Patienten', en: 'Patients' },
    isVulnerable: true,
  },
  {
    id: 'STUDENTS',
    name: { de: 'Schüler/Studenten', en: 'Students' },
    isVulnerable: false,
  },
  {
    id: 'GENERAL_PUBLIC',
    name: { de: 'Allgemeine Öffentlichkeit', en: 'General Public' },
    isVulnerable: false,
  },
]
