// =============================================================================
// ENUMS & CONSTANTS
// =============================================================================

export type DSFAStatus = 'draft' | 'in_review' | 'approved' | 'rejected' | 'needs_update'

export type DSFARiskLevel = 'low' | 'medium' | 'high' | 'very_high'

export type DSFARiskCategory = 'confidentiality' | 'integrity' | 'availability' | 'rights_freedoms'

export type DSFAMitigationType = 'technical' | 'organizational' | 'legal'

export type DSFAMitigationStatus = 'planned' | 'in_progress' | 'implemented' | 'verified'

export const DSFA_STATUS_LABELS: Record<DSFAStatus, string> = {
  draft: 'Entwurf',
  in_review: 'In Prüfung',
  approved: 'Genehmigt',
  rejected: 'Abgelehnt',
  needs_update: 'Überarbeitung erforderlich',
}

export const DSFA_RISK_LEVEL_LABELS: Record<DSFARiskLevel, string> = {
  low: 'Niedrig',
  medium: 'Mittel',
  high: 'Hoch',
  very_high: 'Sehr Hoch',
}

export const DSFA_LEGAL_BASES = {
  consent: 'Art. 6 Abs. 1 lit. a DSGVO - Einwilligung',
  contract: 'Art. 6 Abs. 1 lit. b DSGVO - Vertrag',
  legal_obligation: 'Art. 6 Abs. 1 lit. c DSGVO - Rechtliche Verpflichtung',
  vital_interests: 'Art. 6 Abs. 1 lit. d DSGVO - Lebenswichtige Interessen',
  public_interest: 'Art. 6 Abs. 1 lit. e DSGVO - Öffentliches Interesse',
  legitimate_interest: 'Art. 6 Abs. 1 lit. f DSGVO - Berechtigtes Interesse',
}

export const DSFA_AFFECTED_RIGHTS = [
  { id: 'right_to_information', label: 'Recht auf Information (Art. 13/14)' },
  { id: 'right_of_access', label: 'Auskunftsrecht (Art. 15)' },
  { id: 'right_to_rectification', label: 'Recht auf Berichtigung (Art. 16)' },
  { id: 'right_to_erasure', label: 'Recht auf Löschung (Art. 17)' },
  { id: 'right_to_restriction', label: 'Recht auf Einschränkung (Art. 18)' },
  { id: 'right_to_data_portability', label: 'Recht auf Datenübertragbarkeit (Art. 20)' },
  { id: 'right_to_object', label: 'Widerspruchsrecht (Art. 21)' },
  { id: 'right_not_to_be_profiled', label: 'Recht bzgl. Profiling (Art. 22)' },
  { id: 'freedom_of_expression', label: 'Meinungsfreiheit' },
  { id: 'freedom_of_association', label: 'Versammlungsfreiheit' },
  { id: 'non_discrimination', label: 'Nichtdiskriminierung' },
  { id: 'data_security', label: 'Datensicherheit' },
]
