export type UiLang = "km" | "en";

export type LocalizedText = {
  km: string;
  en: string;
};

export type MeetingRequestStatus =
  | "Drafted"
  | "Under Review"
  | "Submitted"
  | "Scheduled"
  | "Completed";

export function tText(value: string | LocalizedText, lang: UiLang): string {
  if (typeof value === "string") return value;
  return value[lang] || value.km || value.en || "";
}

export function getMeetingRequestFont(lang: UiLang): string {
  return lang === "km"
    ? "var(--font-khmer)"
    : '"Inter","Segoe UI",Arial,sans-serif';
}

const meetingRequestI18n = {
  km: {
    meetingRequests: "សំណើប្រជុំ",
    calendar: "ប្រតិទិន",
    breadcrumbMeetingRequests: "សំណើប្រជុំ",
    breadcrumbCalendar: "សំណើប្រជុំ / ប្រតិទិន",

    exportAsXlsx: "នាំចេញជា XLSX",
    newMeetingRequest: "បង្កើតសំណើប្រជុំថ្មី",

    workingGroup: "ក្រុមការងារ",
    governmentAgency: "ស្ថាប័នរដ្ឋាភិបាល",
    meetingStatus: "ស្ថានភាពប្រជុំ",
    meetingDate: "កាលបរិច្ឆេទប្រជុំ",

    allMeetingRequest: "សំណើប្រជុំទាំងអស់",
    no: "ល.រ",
    meetingTitle: "ចំណងជើងកិច្ចប្រជុំ",
    meetingDescription: "ការពិពណ៌នាកិច្ចប្រជុំ",
    issuesCount: "ចំនួនបញ្ហា",
    meetingRequest: "សំណើប្រជុំ",
    action: "សកម្មភាព",

    requestDetails: "ព័ត៌មានសំណើ",
    meetingUpdate: "ព័ត៌មានកិច្ចប្រជុំ",
    submittedDate: "កាលបរិច្ឆេទដាក់ស្នើ",
    status: "ស្ថានភាព",
    meetingRequestDocument: "ឯកសារសំណើប្រជុំ",
    description: "ការពិពណ៌នា",
    issueSubmitted: "បញ្ហាដែលបានដាក់ស្នើ",
    sentBy: "ផ្ញើដោយ",
    receivedBy: "ទទួលដោយ",
    meetingReferenceDocument: "ឯកសារយោងកិច្ចប្រជុំ",
    participant: "អ្នកចូលរួម",

    previous: "ថយក្រោយ",
    next: "បន្ទាប់",

    statuses: {
      Drafted: "ព្រាង",
      "Under Review": "កំពុងពិនិត្យ",
      Submitted: "បានដាក់ស្នើ",
      Scheduled: "បានកំណត់កាលវិភាគ",
      Completed: "បានបញ្ចប់",
    },
  },

  en: {
    meetingRequests: "Meeting Requests",
    calendar: "Calendar",
    breadcrumbMeetingRequests: "Meeting Requests",
    breadcrumbCalendar: "Meeting Requests / Calendar",

    exportAsXlsx: "Export as XLSX",
    newMeetingRequest: "New Meeting Request",

    workingGroup: "Working Group",
    governmentAgency: "Government Agency",
    meetingStatus: "Meeting Status",
    meetingDate: "Meeting Date",

    allMeetingRequest: "All Meeting Request",
    no: "No.",
    meetingTitle: "Meeting Title",
    meetingDescription: "Meeting Description",
    issuesCount: "# of Issues",
    meetingRequest: "Meeting Request",
    action: "Action",

    requestDetails: "Request Details",
    meetingUpdate: "Meeting Update",
    submittedDate: "Submitted Date",
    status: "Status",
    meetingRequestDocument: "Meeting Request Document",
    description: "Description",
    issueSubmitted: "Issue Submitted",
    sentBy: "Sent by",
    receivedBy: "Received by",
    meetingReferenceDocument: "Meeting Reference Document",
    participant: "Participant",

    previous: "Previous",
    next: "Next",

    statuses: {
      Drafted: "Drafted",
      "Under Review": "Under Review",
      Submitted: "Submitted",
      Scheduled: "Scheduled",
      Completed: "Completed",
    },
  },
} as const;

export function i18n(lang: UiLang) {
  return meetingRequestI18n[lang] ?? meetingRequestI18n.km;
}
