/**
 * Bangladesh administrative locations — 64 districts (জেলা) grouped by
 * division, each with its sub-districts / upazilas (উপজেলা). Used for the
 * district-based institution location fields and the central monitoring panel.
 */
export const BD_DIVISIONS: { division: string; districts: { district: string; subDistricts: string[] }[] }[] = [
  {
    division: "Dhaka",
    districts: [
      { district: "Dhaka", subDistricts: ["Dhaka Metropolitan", "Savar", "Dhamrai", "Keraniganj", "Nawabganj", "Dohar"] },
      { district: "Faridpur", subDistricts: ["Faridpur Sadar", "Madhukhali", "Boalmari", "Sadarpur", "Alfadanga", "Bhanga", "Nagarkanda", "Charbhadrasan", "Saltha"] },
      { district: "Gazipur", subDistricts: ["Gazipur Sadar", "Kaliakair", "Kaliganj", "Sreepur", "Kapasia"] },
      { district: "Gopalganj", subDistricts: ["Gopalganj Sadar", "Kashiani", "Muksudpur", "Tungipara", "Kotalipara"] },
      { district: "Kishoreganj", subDistricts: ["Kishoreganj Sadar", "Pakundia", "Karimganj", "Hossainpur", "Katiadi", "Nikli", "Mithamain", "Itna", "Astagram", "Bajitpur", "Kuliarchar", "Tarail", "Nandail"] },
      { district: "Madaripur", subDistricts: ["Madaripur Sadar", "Shibchar", "Kalkini", "Rajoir", "Dasar"] },
      { district: "Manikganj", subDistricts: ["Manikganj Sadar", "Singair", "Shivalaya", "Saturia", "Ghior", "Daulatpur", "Harirampur"] },
      { district: "Munshiganj", subDistricts: ["Munshiganj Sadar", "Sirajdikhan", "Lohajang", "Srinagar", "Tongibari", "Gazaria"] },
      { district: "Narayanganj", subDistricts: ["Narayanganj Sadar", "Bandar", "Araihazar", "Sonargaon", "Rupganj"] },
      { district: "Narsingdi", subDistricts: ["Narsingdi Sadar", "Belabo", "Monohardi", "Palash", "Raipura", "Shibpur"] },
      { district: "Rajbari", subDistricts: ["Rajbari Sadar", "Pangsha", "Kalukhali", "Baliakandi", "Goalandaghat"] },
      { district: "Shariatpur", subDistricts: ["Shariatpur Sadar", "Naria", "Zanjira", "Bhedarganj", "Gosairhat", "Damudya"] },
      { district: "Tangail", subDistricts: ["Tangail Sadar", "Mirzapur", "Kalihati", "Ghatail", "Sakhipur", "Basail", "Madhupur", "Dhanbari", "Bhuapur", "Nagarpur", "Gopalpur", "Delduar"] },
    ],
  },
  {
    division: "Chattogram",
    districts: [
      { district: "Bandarban", subDistricts: ["Bandarban Sadar", "Lama", "Naikhongchhari", "Ali Kadam", "Thanchi", "Rowangchhari", "Ruma"] },
      { district: "Brahmanbaria", subDistricts: ["Brahmanbaria Sadar", "Ashuganj", "Nabinagar", "Nasirnagar", "Sarail", "Kasba", "Akhaura", "Bancharampur", "Bijoynagar"] },
      { district: "Chandpur", subDistricts: ["Chandpur Sadar", "Matlab Uttar", "Matlab Dakshin", "Haimchar", "Faridganj", "Shahrasti", "Kachua", "Haziganj"] },
      { district: "Chattogram", subDistricts: ["Chattogram Sadar", "Sitakunda", "Mirsharai", "Rangunia", "Raozan", "Hathazari", "Fatikchhari", "Sandwip", "Boalkhali", "Patiya", "Anwara", "Banshkhali", "Chandanaish", "Satkania", "Lohagara", "Karnaphuli"] },
      { district: "Cumilla", subDistricts: ["Cumilla Adarsha Sadar", "Cumilla Sadar", "Debidwar", "Barura", "Brahmanpara", "Chandina", "Chauddagram", "Daudkandi", "Homna", "Laksam", "Meghna", "Monohorgonj", "Nangalkot", "Titas"] },
      { district: "Cox's Bazar", subDistricts: ["Cox's Bazar Sadar", "Chakaria", "Kutubdia", "Maheshkhali", "Ramu", "Teknaf", "Ukhia", "Pekua"] },
      { district: "Feni", subDistricts: ["Feni Sadar", "Chhagalnaiya", "Daganbhuiyan", "Fulgazi", "Parshuram", "Sonagazi"] },
      { district: "Khagrachhari", subDistricts: ["Khagrachhari Sadar", "Mahalchhari", "Manikchhari", "Ramgarh", "Dighinala", "Panchari", "Lakshmichhari", "Matiranga"] },
      { district: "Lakshmipur", subDistricts: ["Lakshmipur Sadar", "Kamalnagar", "Raipur", "Ramganj"] },
      { district: "Noakhali", subDistricts: ["Noakhali Sadar", "Begumganj", "Chatkhil", "Companiganj", "Hatiya", "Senbagh", "Sonaimuri", "Subarnachar", "Kabirhat"] },
      { district: "Rangamati", subDistricts: ["Rangamati Sadar", "Bilaichhari", "Barkal", "Kaptai", "Juraichhari", "Langadu", "Naniarchar", "Rajasthali", "Baghaichhari", "Belaichhari"] },
    ],
  },
  {
    division: "Rajshahi",
    districts: [
      { district: "Bogura", subDistricts: ["Bogura Sadar", "Shibganj", "Dhunat", "Dhupchanchia", "Gabtali", "Sherpur", "Sariakandi", "Sonatala", "Adamdighi", "Nandigram", "Kahaloo"] },
      { district: "Chapainawabganj", subDistricts: ["Chapainawabganj Sadar", "Bholahat", "Gomastapur", "Nachole", "Shibganj"] },
      { district: "Joypurhat", subDistricts: ["Joypurhat Sadar", "Akkelpur", "Kalai", "Khetlal", "Panchbibi"] },
      { district: "Naogaon", subDistricts: ["Naogaon Sadar", "Manda", "Atrai", "Raninagar", "Dhamoirhat", "Patnitala", "Porsha", "Sapahar", "Badalgachhi", "Niamatpur"] },
      { district: "Natore", subDistricts: ["Natore Sadar", "Bagatipara", "Baraigram", "Gurudaspur", "Lalpur", "Singra"] },
      { district: "Pabna", subDistricts: ["Pabna Sadar", "Ishwardi", "Chatmohar", "Bhangura", "Faridpur", "Sujanagar", "Atgharia", "Santhia", "Bera"] },
      { district: "Rajshahi", subDistricts: ["Rajshahi Sadar", "Bagha", "Bagmara", "Charghat", "Durgapur", "Godagari", "Mohanpur", "Puthia", "Tanore"] },
      { district: "Sirajganj", subDistricts: ["Sirajganj Sadar", "Belkuchi", "Chauhali", "Kamarkhanda", "Kazipur", "Raiganj", "Shahjadpur", "Tarash", "Ullapara"] },
    ],
  },
  {
    division: "Khulna",
    districts: [
      { district: "Bagerhat", subDistricts: ["Bagerhat Sadar", "Mollahat", "Fakirhat", "Rampal", "Morrelganj", "Kachua", "Mongla", "Sarankhola"] },
      { district: "Chuadanga", subDistricts: ["Chuadanga Sadar", "Alamdanga", "Damurhuda", "Jibannagar"] },
      { district: "Jashore", subDistricts: ["Jashore Sadar", "Abhoynagar", "Bagherpara", "Chaugachha", "Keshabpur", "Manirampur", "Sharsha", "Jhikargachha"] },
      { district: "Jhenaidah", subDistricts: ["Jhenaidah Sadar", "Shailkupa", "Harinakunda", "Kaliganj", "Kotchandpur", "Maheshpur"] },
      { district: "Khulna", subDistricts: ["Khulna Sadar", "Batiaghata", "Dacope", "Dumuria", "Dighalia", "Koyra", "Paikgachha", "Phultala", "Rupsa", "Terokhada"] },
      { district: "Kushtia", subDistricts: ["Kushtia Sadar", "Bheramara", "Daulatpur", "Khoksa", "Kumarkhali", "Mirpur"] },
      { district: "Magura", subDistricts: ["Magura Sadar", "Shalikha", "Sreepur", "Mohammadpur"] },
      { district: "Meherpur", subDistricts: ["Meherpur Sadar", "Gangni", "Mujibnagar"] },
      { district: "Narail", subDistricts: ["Narail Sadar", "Kalia", "Lohagara"] },
      { district: "Satkhira", subDistricts: ["Satkhira Sadar", "Assasuni", "Debhata", "Kalaroa", "Kaliganj", "Shyamnagar", "Tala"] },
    ],
  },
  {
    division: "Barishal",
    districts: [
      { district: "Barguna", subDistricts: ["Barguna Sadar", "Amtali", "Bamna", "Betagi", "Patharghata", "Taltali"] },
      { district: "Barishal", subDistricts: ["Barishal Sadar", "Agailjhara", "Babuganj", "Bakerganj", "Banaripara", "Gaurnadi", "Hizla", "Mehendiganj", "Muladi", "Wazirpur"] },
      { district: "Bhola", subDistricts: ["Bhola Sadar", "Burhanuddin", "Char Fasson", "Daulatkhan", "Lalmohan", "Manpura", "Tazumuddin"] },
      { district: "Jhalokati", subDistricts: ["Jhalokati Sadar", "Kathalia", "Nalchity", "Rajapur"] },
      { district: "Patuakhali", subDistricts: ["Patuakhali Sadar", "Bauphal", "Dashmina", "Dumki", "Galachipa", "Kalapara", "Mirzaganj", "Rangabali"] },
      { district: "Pirojpur", subDistricts: ["Pirojpur Sadar", "Bhandaria", "Kawkhali", "Mathbaria", "Nazirpur", "Nesarabad", "Zianagar"] },
    ],
  },
  {
    division: "Sylhet",
    districts: [
      { district: "Habiganj", subDistricts: ["Habiganj Sadar", "Bahubal", "Ajmiriganj", "Baniyachong", "Chunarughat", "Lakhai", "Madhabpur", "Nabiganj"] },
      { district: "Moulvibazar", subDistricts: ["Moulvibazar Sadar", "Barlekha", "Juri", "Kamalganj", "Kulaura", "Rajnagar", "Sreemangal"] },
      { district: "Sunamganj", subDistricts: ["Sunamganj Sadar", "South Sunamganj", "Bishwamvarpur", "Chhatak", "Dowarabazar", "Derai", "Dharampasha", "Jagannathpur", "Jamalganj", "Sullah", "Tahirpur"] },
      { district: "Sylhet", subDistricts: ["Sylhet Sadar", "Balaganj", "Beanibazar", "Bishwanath", "Companiganj", "Fenchuganj", "Golapganj", "Gowainghat", "Jaintiapur", "Kanaighat", "Zakiganj", "Osmani Nagar", "Dakhin Surma"] },
    ],
  },
  {
    division: "Rangpur",
    districts: [
      { district: "Dinajpur", subDistricts: ["Dinajpur Sadar", "Birampur", "Birganj", "Biral", "Bochaganj", "Chirirbandar", "Phulbari", "Ghoraghat", "Hakimpur", "Kaharole", "Khansama", "Nawabganj", "Parbatipur"] },
      { district: "Gaibandha", subDistricts: ["Gaibandha Sadar", "Phulchhari", "Gobindaganj", "Palashbari", "Sadullapur", "Saghata", "Sundarganj"] },
      { district: "Kurigram", subDistricts: ["Kurigram Sadar", "Bhurungamari", "Char Rajibpur", "Chilmari", "Phulbari", "Nageshwari", "Raomari", "Ulipur", "Rajarhat"] },
      { district: "Lalmonirhat", subDistricts: ["Lalmonirhat Sadar", "Aditmari", "Hatibandha", "Kaliganj", "Patgram"] },
      { district: "Nilphamari", subDistricts: ["Nilphamari Sadar", "Dimla", "Domar", "Jaldhaka", "Kishoreganj", "Saidpur"] },
      { district: "Panchagarh", subDistricts: ["Panchagarh Sadar", "Boda", "Atwari", "Tetulia", "Debiganj"] },
      { district: "Rangpur", subDistricts: ["Rangpur Sadar", "Gangachara", "Kaunia", "Mithapukur", "Pirgachha", "Pirganj", "Taraganj", "Badarganj"] },
      { district: "Thakurgaon", subDistricts: ["Thakurgaon Sadar", "Baliadangi", "Haripur", "Pirganj", "Ranisankail"] },
    ],
  },
  {
    division: "Mymensingh",
    districts: [
      { district: "Jamalpur", subDistricts: ["Jamalpur Sadar", "Bakshiganj", "Dewanganj", "Islampur", "Madarganj", "Melandaha", "Sarishabari"] },
      { district: "Mymensingh", subDistricts: ["Mymensingh Sadar", "Bhaluka", "Dhobaura", "Fulbaria", "Gaffargaon", "Gauripur", "Haluaghat", "Ishwarganj", "Nandail", "Phulpur", "Tarakanda", "Trishal"] },
      { district: "Netrokona", subDistricts: ["Netrokona Sadar", "Atpara", "Barhatta", "Durgapur", "Kalmakanda", "Kendua", "Khaliajuri", "Madan", "Mohanganj", "Purbadhala"] },
      { district: "Sherpur", subDistricts: ["Sherpur Sadar", "Jhenaigati", "Nakla", "Nalitabari", "Sreebardi"] },
    ],
  },
];

export const BD_DISTRICTS = BD_DIVISIONS.flatMap((d) => d.districts);

export const BD_DISTRICT_NAMES = BD_DISTRICTS.map((d) => d.district);

/** Sub-districts (upazilas) of a district — empty list when unknown. */
export function subDistrictsOf(district: string): string[] {
  return BD_DISTRICTS.find((d) => d.district === district)?.subDistricts ?? [];
}
