// Display labels for the master-control mapping dimensions (use case +
// verification method). Keys mirror the backend use_case_registry; an unknown
// key humanizes gracefully so a newly-seeded use case still renders.

export const USE_CASE_LABELS: Record<string, string> = {
  impressum: 'Impressum',
  telekommunikation: 'Telekommunikation (TKG)',
  dse: 'Datenschutzerklärung',
  agb: 'AGB',
  cookie_banner: 'Cookie-Banner',
  widerruf: 'Widerruf',
  dsr: 'Betroffenenrechte (DSR)',
  loeschkonzept: 'Löschkonzept',
  avv: 'Auftragsverarbeitung (AVV)',
  dsfa: 'DSFA',
  code_security: 'Code Security',
  network_security: 'Network Security',
  cra: 'Cyber Resilience Act',
  isms: 'ISMS',
  tisax: 'TISAX',
  kritis: 'KRITIS',
  dora: 'DORA',
  ai_act: 'AI Act',
  mica: 'MiCA',
  mdr: 'Medizinprodukte (MDR)',
  maschinen: 'Maschinenverordnung',
  batterie: 'Batterieverordnung',
  ehds: 'EHDS',
  produktsicherheit: 'Produktsicherheit',
  dsa: 'Digital Services Act',
  dma: 'Digital Markets Act',
  data_governance: 'Data Governance Act',
  zahlungsdienste: 'Zahlungsdienste (PSD2)',
  geldwaesche: 'Geldwäsche (GwG)',
  lieferkette: 'Lieferkettengesetz',
  whistleblowing: 'Whistleblowing',
  barrierefreiheit: 'Barrierefreiheit (BFSG)',
  verbraucherschutz: 'Verbraucherschutz',
  urheberrecht: 'Urheberrecht',
  wettbewerbsrecht: 'Wettbewerbsrecht',
  gleichbehandlung: 'Gleichbehandlung (AGG)',
  steuerrecht: 'Steuerrecht',
  handelsrecht: 'Handelsrecht',
}

export const MC_VERIFICATION_LABELS: Record<string, string> = {
  document: 'Dokument',
  source_code: 'Source Code',
  network: 'Netzwerk/Infra',
  it_process: 'IT-Prozess',
  hybrid: 'Hybrid',
  manual: 'Manuell',
}

function humanize(key: string): string {
  return key.replace(/_/g, ' ').replace(/\b\w/g, c => c.toUpperCase())
}

export function useCaseLabel(key: string): string {
  return USE_CASE_LABELS[key] || humanize(key)
}

export function mcVerificationLabel(key: string): string {
  return MC_VERIFICATION_LABELS[key] || humanize(key)
}
