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

export type LocalizedText =
    | string
    | {
        en: string;
        kh: string;
    };

export const workingGroupText = {
    en: {
        dashboard: "Dashboard",
        dashboardSubtitle:
            "Monitor G-PSF implementation. Use filters and click charts to drill down.",

        reset: "RESET",

        totalIssues: "Total Issues",
        solved: "Solved",
        inProgress: "In Progress",
        notAddressed: "Not Addressed",
        totalPrimaryAgencies: "Total Primary Agencies",

        export: "Export",
        newItem: "New",
        addIssue: "Add Issue",
        requestMeeting: "Request Meeting",
        csv: "CSV",
        xlsx: "XLSX",
        image: "Image",
        lastUpdated: "Last updated",
        lastUpdatedDate: "14 September 2025, 23:00",

        year: "Year",
        status: "Status",
        agency: "Agency",
        report: "Report",
    },

    kh: {
        dashboard: "ផ្ទាំងគ្រប់គ្រង",
        dashboardSubtitle:
            "តាមដានការអនុវត្ត G-PSF។ ប្រើតម្រង និងចុចលើក្រាហ្វ ដើម្បីមើលព័ត៌មានលម្អិត។",

        reset: "កំណត់ឡើងវិញ",

        totalIssues: "បញ្ហាសរុប",
        solved: "បានដោះស្រាយ",
        inProgress: "កំពុងដំណើរការ",
        notAddressed: "មិនទាន់ដោះស្រាយ",
        totalPrimaryAgencies: "ស្ថាប័នទទួលបន្ទុកសរុប",

        export: "នាំចេញ",
        newItem: "បង្កើតថ្មី",
        addIssue: "បន្ថែមបញ្ហា",
        requestMeeting: "ស្នើសុំកិច្ចប្រជុំ",
        csv: "CSV",
        xlsx: "XLSX",
        image: "រូបភាព",
        lastUpdated: "ធ្វើបច្ចុប្បន្នភាពចុងក្រោយ",
        lastUpdatedDate: "១៤ កញ្ញា ២០២៥, ២៣:០០",

        year: "ឆ្នាំ",
        status: "ស្ថានភាព",
        agency: "ស្ថាប័ន",
        report: "របាយការណ៍",
    },
} as const;

const workingGroupValueTranslations: Record<string, string> = {
    Year: "ឆ្នាំ",
    Status: "ស្ថានភាព",
    Agency: "ស្ថាប័ន",
    Report: "របាយការណ៍",

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

    Solved: "បានដោះស្រាយ",
    "In Progress": "កំពុងដំណើរការ",
    "Not Addressed": "មិនទាន់ដោះស្រាយ",
    "Total Issues": "បញ្ហាសរុប",
    "Total Primary Agencies": "ស្ថាប័នទទួលបន្ទុកសរុប",

    Government: "រដ្ឋាភិបាល",
    Taxation: "ពន្ធដារ",
    "Human Resource": "ធនធានមនុស្ស",
    Trade: "ពាណិជ្ជកម្ម",
    Legislation: "ច្បាប់",
    Procedure: "នីតិវិធី",
    Market: "ទីផ្សារ",
    Policy: "គោលនយោបាយ",
    Strategy: "យុទ្ធសាស្ត្រ",

    "(A) Agriculture and Agro-Industry": "(A) កសិកម្ម និងកសិឧស្សាហកម្ម",
    "(B) Tourism": "(B) ទេសចរណ៍",
    "(C) SMEs, Manufacturing, and Services":
        "(C) សហគ្រាសធុនតូច និងមធ្យម កម្មន្តសាល និងសេវាកម្ម",
    "(D) Law, Tax, and Governance": "(D) ច្បាប់ ពន្ធ និងអភិបាលកិច្ច",
    "(E) Banking and Financial Services": "(E) ធនាគារ និងសេវាហិរញ្ញវត្ថុ",
    "(F) Transportation and Infrastructure": "(F) ដឹកជញ្ជូន និងហេដ្ឋារចនាសម្ព័ន្ធ",
    "(G) Export Processing and Trade": "(G) ការកែច្នៃនាំចេញ និងពាណិជ្ជកម្ម",
    "(H) Industrial Relations": "(H) ទំនាក់ទំនងឧស្សាហកម្ម",
    "(I) Rice and Paddy": "(I) ស្រូវ និងអង្ករ",
    "(J) Energy and Mineral Resources": "(J) ថាមពល និងធនធានរ៉ែ",
    "(M) Construction and Real Estate": "(M) សំណង់ និងអចលនទ្រព្យ",
    "(N) Non-Bank Financial Services": "(N) សេវាហិរញ្ញវត្ថុមិនមែនធនាគារ",
};

export function normalizeWorkingGroupLanguage(
    language: string | null | undefined
): WorkingGroupLanguage {
    return language === "en" ? "en" : "kh";
}

export function getWorkingGroupLocalizedText(
    value: LocalizedText | null | undefined,
    language: WorkingGroupLanguage
): string {
    if (!value) {
        return "";
    }

    if (typeof value === "object") {
        return value[language] || value.en || value.kh || "";
    }

    if (language === "en") {
        return value;
    }

    return workingGroupValueTranslations[value] ?? value;
}