export const thaiTrainingStatusLabels = {
  draft: 'ฉบับร่าง',
  pending: 'รอตรวจสอบ',
  approved: 'อนุมัติแล้ว',
  rejected: 'ไม่อนุมัติ',
  needs_revision: 'ขอแก้ไข'
} as const;

export const thaiTrainingTypeLabels = {
  INTERNAL_TRAINING: 'อบรมภายใน (Internal Training)',
  EXTERNAL_TRAINING: 'อบรมภายนอก (Public Training)',
  ONLINE_COURSE: 'e-Learning / Online Course',
  OJT: 'On the Job Training (OJT)',
  internal: 'อบรมภายใน (Internal Training)',
  external: 'อบรมภายนอก (Public Training)',
  online: 'e-Learning / Online Course',
  onsite: 'On the Job Training (OJT)'
} as const;

export const thaiTrainingCategoryLabels = {
  K: 'Knowledge (ความรู้)',
  S: 'Skill (ทักษะ)',
  A: 'Attitude (ทัศนคติ)'
} as const;

export const thaiRoleLabels = {
  admin: 'ผู้ดูแล',
  user: 'พนักงาน',
  owner: 'เจ้าขององค์กร',
  member: 'พนักงาน'
} as const;

export const thaiActiveStatusLabels = {
  active: 'ใช้งาน',
  inactive: 'ไม่ใช้งาน'
} as const;

export function getTrainingStatusLabel(
  status: keyof typeof thaiTrainingStatusLabels | string | null | undefined
) {
  if (!status) return '-';
  return thaiTrainingStatusLabels[status as keyof typeof thaiTrainingStatusLabels] ?? status;
}

export function getTrainingTypeLabel(
  type: keyof typeof thaiTrainingTypeLabels | string | null | undefined
) {
  if (!type) return '-';
  return thaiTrainingTypeLabels[type as keyof typeof thaiTrainingTypeLabels] ?? type;
}

export function getTrainingCategoryLabel(
  category: keyof typeof thaiTrainingCategoryLabels | string | null | undefined
) {
  if (!category) return '-';
  return thaiTrainingCategoryLabels[category as keyof typeof thaiTrainingCategoryLabels] ?? category;
}

export function getRoleLabel(role: keyof typeof thaiRoleLabels | string | null | undefined) {
  if (!role) return '-';
  return thaiRoleLabels[role as keyof typeof thaiRoleLabels] ?? role;
}

export function getActiveStatusLabel(isActive: boolean) {
  return isActive ? thaiActiveStatusLabels.active : thaiActiveStatusLabels.inactive;
}

export const thaiImportEmployeeHeaders = [
  'รหัสพนักงาน',
  'ชื่อพนักงาน',
  'อีเมล',
  'บริษัท',
  'แผนก',
  'ตำแหน่ง',
  'สถานะ'
] as const;

export const thaiImportTrainingHeaders = [
  'ชื่อหลักสูตร',
  'หมวดหมู่',
  'ชั่วโมงอบรม',
  'ประเภทการอบรม',
  'วันที่อบรม'
] as const;

export const thaiImportTemplateHeaders = [
  ...thaiImportEmployeeHeaders,
  ...thaiImportTrainingHeaders
] as const;

export const thaiImportStatusValues = {
  active: ['ใช้งาน', 'active', 'ACTIVE'],
  inactive: ['ไม่ใช้งาน', 'inactive', 'INACTIVE']
} as const;

export function normalizeImportedStatus(value: string | null | undefined) {
  const normalized = value?.trim();
  if (!normalized) return null;

  if (thaiImportStatusValues.active.includes(normalized as never)) {
    return true;
  }

  if (thaiImportStatusValues.inactive.includes(normalized as never)) {
    return false;
  }

  return null;
}
