import { CountryData, CountryIso2, defaultCountries, parseCountry } from 'react-international-phone'

export const arabicCountryLabels: Record<CountryIso2, string> = {
  sa: 'المملكة العربية السعودية',
  af: 'أفغانستان',
  ax: 'جزر أولاند',
  al: 'ألبانيا',
  dz: 'الجزائر',
  as: 'ساموا الأمريكية',
  ad: 'أندورا',
  ao: 'أنغولا',
  ai: 'أنغويلا',
  aq: 'القارة القطبية الجنوبية',
  ag: 'أنتيغوا وبربودا',
  ar: 'الأرجنتين',
  am: 'أرمينيا',
  aw: 'أروبا',
  au: 'أستراليا',
  at: 'النمسا',
  az: 'أذربيجان',
  bs: 'الباهاما',
  bh: 'البحرين',
  bd: 'بنغلاديش',
  bb: 'بربادوس',
  by: 'بيلاروسيا',
  be: 'بلجيكا',
  bz: 'بليز',
  bj: 'بنين',
  bm: 'برمودا',
  bt: 'بوتان',
  bo: 'بوليفيا',
  ba: 'البوسنة والهرسك',
  bw: 'بوتسوانا',
  br: 'البرازيل',
  io: 'إقليم المحيط الهندي البريطاني',
  bn: 'بروناي',
  bg: 'بلغاريا',
  bf: 'بوركينا فاسو',
  bi: 'بوروندي',
  kh: 'كمبوديا',
  cm: 'الكاميرون',
  ca: 'كندا',
  cv: 'الرأس الأخضر',
  ky: 'جزر كايمان',
  cf: 'جمهورية أفريقيا الوسطى',
  td: 'تشاد',
  cl: 'تشيلي',
  cn: 'الصين',
  co: 'كولومبيا',
  km: 'جزر القمر',
  cg: 'جمهورية الكونغو',
  cd: 'جمهورية الكونغو الديمقراطية',
  ck: 'جزر كوك',
  cr: 'كوستاريكا',
  hr: 'كرواتيا',
  cu: 'كوبا',
  cy: 'قبرص',
  cz: 'التشيك',
  dk: 'الدنمارك',
  dj: 'جيبوتي',
  dm: 'دومينيكا',
  do: 'جمهورية الدومينيكان',
  ec: 'الإكوادور',
  eg: 'مصر',
  sv: 'السلفادور',
  gq: 'غينيا الاستوائية',
  er: 'إريتريا',
  ee: 'إستونيا',
  et: 'إثيوبيا',
  fj: 'فيجي',
  fi: 'فنلندا',
  fr: 'فرنسا',
  ga: 'الغابون',
  gm: 'غامبيا',
  ge: 'جورجيا',
  de: 'ألمانيا',
  gh: 'غانا',
  gr: 'اليونان',
  gd: 'غرينادا',
  gu: 'غوام',
  gt: 'غواتيمالا',
  gn: 'غينيا',
  gw: 'غينيا بيساو',
  gy: 'غيانا',
  ht: 'هايتي',
  hn: 'هندوراس',
  hk: 'هونغ كونغ',
  hu: 'المجر',
  is: 'آيسلندا',
  in: 'الهند',
  id: 'إندونيسيا',
  ir: 'إيران',
  iq: 'العراق',
  ie: 'أيرلندا',
  il: 'إسرائيل',
  it: 'إيطاليا',
  jm: 'جامايكا',
  jp: 'اليابان',
  jo: 'الأردن',
  kz: 'كازاخستان',
  ke: 'كينيا',
  ki: 'كيريباتي',
  kp: 'كوريا الشمالية',
  kr: 'كوريا الجنوبية',
  kw: 'الكويت',
  kg: 'قيرغيزستان',
  la: 'لاوس',
  lv: 'لاتفيا',
  lb: 'لبنان',
  ls: 'ليسوتو',
  lr: 'ليبيريا',
  ly: 'ليبيا',
  li: 'ليختنشتاين',
  lt: 'ليتوانيا',
  lu: 'لوكسمبورغ',
  mo: 'ماكاو',
  mg: 'مدغشقر',
  mw: 'مالاوي',
  my: 'ماليزيا',
  mv: 'المالديف',
  ml: 'مالي',
  mt: 'مالطا',
  mh: 'جزر مارشال',
  mr: 'موريتانيا',
  mu: 'موريشيوس',
  mx: 'المكسيك',
  fm: 'ميكرونيزيا',
  md: 'مولدوفا',
  mc: 'موناكو',
  mn: 'منغوليا',
  me: 'الجبل الأسود',
  ma: 'المغرب',
  mz: 'موزمبيق',
  mm: 'ميانمار',
  na: 'ناميبيا',
  nr: 'ناورو',
  np: 'نيبال',
  nl: 'هولندا',
  nz: 'نيوزيلندا',
  ni: 'نيكاراغوا',
  ne: 'النيجر',
  ng: 'نيجيريا',
  no: 'النرويج',
  om: 'عمان',
  pk: 'باكستان',
  pw: 'بالاو',
  ps: 'فلسطين',
  pa: 'بنما',
  pg: 'بابوا غينيا الجديدة',
  py: 'باراغواي',
  pe: 'بيرو',
  ph: 'الفلبين',
  pl: 'بولندا',
  pt: 'البرتغال',
  qa: 'قطر',
  ro: 'رومانيا',
  ru: 'روسيا',
  rw: 'رواندا',
  ws: 'ساموا',
  sn: 'السنغال',
  rs: 'صربيا',
  sg: 'سنغافورة',
  sk: 'سلوفاكيا',
  si: 'سلوفينيا',
  so: 'الصومال',
  za: 'جنوب أفريقيا',
  es: 'إسبانيا',
  lk: 'سريلانكا',
  sd: 'السودان',
  sr: 'سورينام',
  se: 'السويد',
  ch: 'سويسرا',
  sy: 'سوريا',
  tw: 'تايوان',
  tj: 'طاجيكستان',
  tz: 'تنزانيا',
  th: 'تايلاند',
  tg: 'توغو',
  to: 'تونغا',
  tn: 'تونس',
  tr: 'تركيا',
  tm: 'تركمانستان',
  ug: 'أوغندا',
  ua: 'أوكرانيا',
  ae: 'الإمارات العربية المتحدة',
  gb: 'المملكة المتحدة',
  us: 'الولايات المتحدة',
  uy: 'أوروغواي',
  uz: 'أوزبكستان',
  vu: 'فانواتو',
  ve: 'فنزويلا',
  vn: 'فيتنام',
  ye: 'اليمن',
  zm: 'زامبيا',
  zw: 'زيمبابوي',
  bq: 'بونير، سانت يوستاتيوس وسابا',
  ci: 'ساحل العاج',
  cw: 'كوراساو',
  gf: 'غويانا الفرنسية',
  pf: 'بولينزيا الفرنسية',
  gp: 'جوادلوب',
  xk: 'كوسوفو',
  mk: 'مقدونيا الشمالية',
  mq: 'مارتينيك',
  nc: 'كاليدونيا الجديدة',
  pr: 'بورتوريكو',
  re: 'لا ريونيون',
  kn: 'سانت كيتس ونيفيس',
  lc: 'سانت لوسيا',
  vc: 'سانت فنسنت وجزر غرينادين',
  sm: 'سان مارينو',
  st: 'ساو تومي وبرينسيبي',
  sc: 'سيشل',
  sl: 'سيراليون',
  sb: 'جزر سليمان',
  ss: 'جنوب السودان',
  sz: 'إسواتيني',
  tl: 'تيمور الشرقية',
  tt: 'ترينيداد وتوباغو',
  tv: 'توفالو',
  va: 'مدينة الفاتيكان',
  yt: 'مايوت'
}

export const arabicCountries: CountryData[] = defaultCountries?.map(country => {
  const { iso2 } = parseCountry(country)
  // Ensure correct values
  return [
    arabicCountryLabels[iso2] || country[0], // Arabic name or default
    country[1] as CountryIso2, // Country ISO2 code
    country[2], // Dial code
    country[3] ?? '' // Default empty string if missing
  ] as CountryData
})
