const AUDIT_ACTION_LABELS: Record = { CREATE: "Erstellt", UPDATE: "Aktualisiert", DEACTIVATE: "Deaktiviert", DELETE: "Gelöscht", LOGIN: "Angemeldet", LOGIN_FAILED: "Anmeldung fehlgeschlagen", LOGOUT: "Abgemeldet", TOKEN_REFRESHED: "Token erneuert", MFA_ENABLED: "MFA aktiviert", MFA_DISABLED: "MFA deaktiviert", ACCOUNT_LOCKED: "Konto vorübergehend gesperrt", }; export function auditActionLabel(action: string): string { return AUDIT_ACTION_LABELS[action] ?? action; } const AUDIT_ENTITY_TYPE_LABELS: Record = { Apiary: "Bienenstand", AuthSession: "Sitzung", AutomationRule: "Automatisierungsregel", BottlingBatch: "Abfüllung", Colony: "Volk", COLONY: "Volk", Document: "Dokument", Equipment: "Ausrüstung", Extraction: "Schleuderung", Feeding: "Fütterung", Harvest: "Ernte", HoneyBatch: "Honigcharge", HoneyBatchRelocation: "Honigcharge-Umlagerung", HoneyMeasurement: "Honigmessung", Import: "Import", Inspection: "Durchsicht", Product: "Produkt", Queen: "Königin", QueenEvaluation: "Königinnenbewertung", Role: "Rolle", StockItem: "Lagerartikel", StockMovement: "Bestandsbewegung", StorageContainer: "Lagerbehälter", SwarmControlCheck: "Schwarmkontrolle", Task: "Aufgabe", TaskTemplate: "Aufgabenvorlage", Treatment: "Behandlung", User: "Benutzer", VarroaMeasurement: "Varroamessung", WebhookSubscription: "Webhook", }; /** Filter choices: one entry per area (duplicate spellings collapsed), A-Z. */ export const AUDIT_ENTITY_TYPE_OPTIONS: { value: string; label: string }[] = Object.entries( AUDIT_ENTITY_TYPE_LABELS, ) .filter(([value]) => value !== value.toUpperCase()) .map(([value, label]) => ({ value, label })) .sort((a, b) => a.label.localeCompare(b.label, "de")); export function auditEntityTypeLabel(entityType: string): string { return AUDIT_ENTITY_TYPE_LABELS[entityType] ?? entityType; }