export type ProgressReportLanguage = "en" | "kh";

export function normalizeProgressReportLanguage(
  language?: string
): ProgressReportLanguage {
  if (language === "kh" || language === "km") return "kh";
  return "en";
}

export const progressReportText = {
  en: {
    pageTitle: "All Progress Report",
    pageSubtitle: "Progress Reports",
    exportAsXlsx: "Export as xlsx",

    year: "Year",
    semester: "Semester",
    status: "Status",

    viewDetails: "View Details",

    columns: {
      title: "Report Title",
      year: "Year",
      deadline: "Deadline",
      firstMeeting: "1st Meeting",
      secondDeadline: "2nd Deadline",
      secondMeeting: "2nd Meeting",
      thirdDeadline: "3rd Deadline",
      draftSemester: "Draft Semester",
      reportDoc: "Progress Report DOC",
      status: "Status",
      actions: "Actions",
    },
  },

  kh: {
    pageTitle: "របាយការណ៍វឌ្ឍនភាពទាំងអស់",
    pageSubtitle: "របាយការណ៍វឌ្ឍនភាព",
    exportAsXlsx: "នាំចេញជា xlsx",

    year: "ឆ្នាំ",
    semester: "ឆមាស",
    status: "ស្ថានភាព",

    viewDetails: "មើលលម្អិត",

    columns: {
      title: "ចំណងជើងរបាយការណ៍",
      year: "ឆ្នាំ",
      deadline: "កាលបរិច្ឆេទដល់កំណត់",
      firstMeeting: "កិច្ចប្រជុំលើកទី១",
      secondDeadline: "កាលបរិច្ឆេទដល់កំណត់លើកទី២",
      secondMeeting: "កិច្ចប្រជុំលើកទី២",
      thirdDeadline: "កាលបរិច្ឆេទដល់កំណត់លើកទី៣",
      draftSemester: "សេចក្ដីព្រាងឆមាស",
      reportDoc: "ឯកសាររបាយការណ៍វឌ្ឍនភាព",
      status: "ស្ថានភាព",
      actions: "សកម្មភាព",
    },
  },
} as const;

const khmerValueLabels: Record<string, string> = {
  Year: "ឆ្នាំ",
  Semester: "ឆមាស",
  Status: "ស្ថានភាព",

  Both: "ទាំងពីរ",
  S1: "ឆមាសទី១",
  S2: "ឆមាសទី២",

  Sent: "បានផ្ញើ",
  Draft: "សេចក្ដីព្រាង",
  Shared: "បានចែករំលែក",
  Submitted: "បានដាក់ស្នើ",
  "Under Review": "កំពុងពិនិត្យ",
  Reviewed: "បានពិនិត្យរួច",
  "Needs Update": "ត្រូវការកែប្រែ",

  "Semester 1": "ឆមាសទី១",
  "Semester 2": "ឆមាសទី២",
  "Draft Semester": "សេចក្ដីព្រាងឆមាស",
  "Report DOC": "ឯកសាររបាយការណ៍",
  "View Details": "មើលលម្អិត",
};

export function translateProgressReportValue(
  value: string | number | boolean | null | undefined,
  language: ProgressReportLanguage
) {
  if (value === null || value === undefined) return "";

  const textValue = String(value);

  if (language === "en") return textValue;

  return khmerValueLabels[textValue] ?? textValue;
}
