import type { Option } from '@/types/data-table';

export const AUDIT_MODULE_OPTIONS: Option[] = [
  { value: 'AUTHENTICATION', label: 'การเข้าสู่ระบบ' },
  { value: 'TRAINING_RECORDS', label: 'ประวัติการอบรม' },
  { value: 'HRD_REVIEW', label: 'ตรวจสอบโดย HRD' },
  { value: 'COURSE_MASTER', label: 'หลักสูตร' },
  { value: 'TRAINING_POLICY', label: 'นโยบายอบรม' },
  { value: 'EMPLOYEE_IMPORT', label: 'นำเข้าพนักงาน' },
  { value: 'MASTER_REVIEW', label: 'อนุมัติข้อมูลหลัก' },
  { value: 'NOTIFICATIONS', label: 'การแจ้งเตือน' },
  { value: 'ANNOUNCEMENTS', label: 'ประกาศ' }
];

export const AUDIT_ACTION_OPTIONS: Option[] = [
  { value: 'LOGIN_SUCCESS', label: 'เข้าสู่ระบบสำเร็จ' },
  { value: 'LOGIN_FAILED', label: 'เข้าสู่ระบบไม่สำเร็จ' },
  { value: 'CREATE', label: 'สร้าง' },
  { value: 'UPDATE', label: 'แก้ไข' },
  { value: 'DELETE', label: 'ลบ' },
  { value: 'APPROVE', label: 'อนุมัติ' },
  { value: 'REJECT', label: 'ไม่อนุมัติ' },
  { value: 'IMPORT', label: 'นำเข้า' },
  { value: 'NOTIFICATION_MARK_READ', label: 'อ่านการแจ้งเตือน' },
  { value: 'NOTIFICATION_MARK_ALL_READ', label: 'อ่านทั้งหมด' },
  { value: 'NOTIFICATION_CREATE', label: 'สร้างการแจ้งเตือน' },
  { value: 'ANNOUNCEMENT_CREATE', label: 'สร้างประกาศ' },
  { value: 'ANNOUNCEMENT_DRAFT_SAVED', label: 'บันทึกร่างประกาศ' },
  { value: 'ANNOUNCEMENT_UPDATE', label: 'แก้ไขประกาศ' },
  { value: 'ANNOUNCEMENT_PUBLISH', label: 'เผยแพร่ประกาศ' },
  { value: 'ANNOUNCEMENT_PINNED', label: 'ปักหมุดประกาศ' },
  { value: 'ANNOUNCEMENT_UNPINNED', label: 'ยกเลิกปักหมุดประกาศ' },
  { value: 'ANNOUNCEMENT_ARCHIVE', label: 'เก็บประกาศ' }
];

const moduleLabelMap = new Map(AUDIT_MODULE_OPTIONS.map((option) => [option.value, option.label]));
const actionLabelMap = new Map(AUDIT_ACTION_OPTIONS.map((option) => [option.value, option.label]));

export function getAuditModuleLabel(value: string) {
  return moduleLabelMap.get(value) ?? value;
}

export function getAuditActionLabel(value: string) {
  return actionLabelMap.get(value) ?? value;
}
