import type { CountryCode } from '@/types/commonTypes';

export interface Country {
  code: string;
  label: string;
  phone: CountryCode;
}

export const countries: readonly Country[] = [
  { code: 'AF', label: 'country.afghanistan', phone: '+93' },
  { code: 'AX', label: 'country.aland_islands', phone: '+358' },
  { code: 'AL', label: 'country.albania', phone: '+355' },
  { code: 'DZ', label: 'country.algeria', phone: '+213' },
  { code: 'AS', label: 'country.american_samoa', phone: '+1684' },
  { code: 'AD', label: 'country.andorra', phone: '+376' },
  { code: 'AO', label: 'country.angola', phone: '+244' },
  { code: 'AI', label: 'country.anguilla', phone: '+1264' },
  { code: 'AQ', label: 'country.antarctica', phone: '+672' },
  { code: 'AG', label: 'country.antigua_and_barbuda', phone: '+1268' },
  { code: 'AR', label: 'country.argentina', phone: '+54' },
  { code: 'AM', label: 'country.armenia', phone: '+374' },
  { code: 'AW', label: 'country.aruba', phone: '+297' },
  { code: 'AU', label: 'country.australia', phone: '+61' },
  { code: 'AT', label: 'country.austria', phone: '+43' },
  { code: 'AZ', label: 'country.azerbaijan', phone: '+994' },
  { code: 'BS', label: 'country.bahamas', phone: '+1242' },
  { code: 'BH', label: 'country.bahrain', phone: '+973' },
  { code: 'BD', label: 'country.bangladesh', phone: '+880' },
  { code: 'BB', label: 'country.barbados', phone: '+1246' },
  { code: 'BY', label: 'country.belarus', phone: '+375' },
  { code: 'BE', label: 'country.belgium', phone: '+32' },
  { code: 'BZ', label: 'country.belize', phone: '+501' },
  { code: 'BJ', label: 'country.benin', phone: '+229' },
  { code: 'BM', label: 'country.bermuda', phone: '+1441' },
  { code: 'BT', label: 'country.bhutan', phone: '+975' },
  { code: 'BO', label: 'country.bolivia', phone: '+591' },
  { code: 'BA', label: 'country.bosnia_and_herzegovina', phone: '+387' },
  { code: 'BW', label: 'country.botswana', phone: '+267' },
  { code: 'BR', label: 'country.brazil', phone: '+55' },
  { code: 'VG', label: 'country.british_virgin_islands', phone: '+1284' },
  { code: 'BN', label: 'country.brunei', phone: '+673' },
  { code: 'BG', label: 'country.bulgaria', phone: '+359' },
  { code: 'BF', label: 'country.burkina_faso', phone: '+226' },
  { code: 'BI', label: 'country.burundi', phone: '+257' },
  { code: 'KH', label: 'country.cambodia', phone: '+855' },
  { code: 'CM', label: 'country.cameroon', phone: '+237' },
  { code: 'CA', label: 'country.canada', phone: '+1' },
  { code: 'CV', label: 'country.cape_verde', phone: '+238' },
  { code: 'KY', label: 'country.cayman_islands', phone: '+1345' },
  { code: 'CF', label: 'country.central_african_republic', phone: '+236' },
  { code: 'TD', label: 'country.chad', phone: '+235' },
  { code: 'CL', label: 'country.chile', phone: '+56' },
  { code: 'CN', label: 'country.china', phone: '+86' },
  { code: 'CO', label: 'country.colombia', phone: '+57' },
  { code: 'KM', label: 'country.comoros', phone: '+269' },
  { code: 'CR', label: 'country.costa_rica', phone: '+506' },
  { code: 'CI', label: 'country.cote_divoire', phone: '+225' },
  { code: 'HR', label: 'country.croatia', phone: '+385' },
  { code: 'CU', label: 'country.cuba', phone: '+53' },
  { code: 'CY', label: 'country.cyprus', phone: '+357' },
  { code: 'CZ', label: 'country.czech_republic', phone: '+420' },
  { code: 'DK', label: 'country.denmark', phone: '+45' },
  { code: 'DJ', label: 'country.djibouti', phone: '+253' },
  { code: 'DM', label: 'country.dominica', phone: '+1767' },
  { code: 'DO', label: 'country.dominican_republic', phone: '+1' },
  { code: 'EC', label: 'country.ecuador', phone: '+593' },
  { code: 'EG', label: 'country.egypt', phone: '+20' },
  { code: 'SV', label: 'country.el_salvador', phone: '+503' },
  { code: 'GQ', label: 'country.equatorial_guinea', phone: '+240' },
  { code: 'ER', label: 'country.eritrea', phone: '+291' },
  { code: 'EE', label: 'country.estonia', phone: '+372' },
  { code: 'SZ', label: 'country.eswatini', phone: '+268' },
  { code: 'ET', label: 'country.ethiopia', phone: '+251' },
  { code: 'FJ', label: 'country.fiji', phone: '+679' },
  { code: 'FI', label: 'country.finland', phone: '+358' },
  { code: 'FR', label: 'country.france', phone: '+33' },
  { code: 'GA', label: 'country.gabon', phone: '+241' },
  { code: 'GM', label: 'country.gambia', phone: '+220' },
  { code: 'GE', label: 'country.georgia', phone: '+995' },
  { code: 'DE', label: 'country.germany', phone: '+49' },
  { code: 'GH', label: 'country.ghana', phone: '+233' },
  { code: 'GR', label: 'country.greece', phone: '+30' },
  { code: 'GL', label: 'country.greenland', phone: '+299' },
  { code: 'GT', label: 'country.guatemala', phone: '+502' },
  { code: 'GN', label: 'country.guinea', phone: '+224' },
  { code: 'GW', label: 'country.guinea_bissau', phone: '+245' },
  { code: 'GY', label: 'country.guyana', phone: '+592' },
  { code: 'HT', label: 'country.haiti', phone: '+509' },
  { code: 'HN', label: 'country.honduras', phone: '+504' },
  { code: 'HK', label: 'country.hong_kong', phone: '+852' },
  { code: 'HU', label: 'country.hungary', phone: '+36' },
  { code: 'IS', label: 'country.iceland', phone: '+354' },
  { code: 'IN', label: 'country.india', phone: '+91' },
  { code: 'ID', label: 'country.indonesia', phone: '+62' },
  { code: 'IR', label: 'country.iran', phone: '+98' },
  { code: 'IQ', label: 'country.iraq', phone: '+964' },
  { code: 'IE', label: 'country.ireland', phone: '+353' },
  { code: 'IL', label: 'country.israel', phone: '+972' },
  { code: 'IT', label: 'country.italy', phone: '+39' },
  { code: 'JM', label: 'country.jamaica', phone: '+1876' },
  { code: 'JP', label: 'country.japan', phone: '+81' },
  { code: 'JO', label: 'country.jordan', phone: '+962' },
  { code: 'KZ', label: 'country.kazakhstan', phone: '+7' },
  { code: 'KE', label: 'country.kenya', phone: '+254' },
  { code: 'KW', label: 'country.kuwait', phone: '+965' },
  { code: 'KG', label: 'country.kyrgyzstan', phone: '+996' },
  { code: 'LA', label: 'country.laos', phone: '+856' },
  { code: 'LV', label: 'country.latvia', phone: '+371' },
  { code: 'LB', label: 'country.lebanon', phone: '+961' },
  { code: 'LS', label: 'country.lesotho', phone: '+266' },
  { code: 'LR', label: 'country.liberia', phone: '+231' },
  { code: 'LY', label: 'country.libya', phone: '+218' },
  { code: 'LT', label: 'country.lithuania', phone: '+370' },
  { code: 'LU', label: 'country.luxembourg', phone: '+352' },
  { code: 'MO', label: 'country.macau', phone: '+853' },
  { code: 'MG', label: 'country.madagascar', phone: '+261' },
  { code: 'MY', label: 'country.malaysia', phone: '+60' },
  { code: 'MV', label: 'country.maldives', phone: '+960' },
  { code: 'ML', label: 'country.mali', phone: '+223' },
  { code: 'MT', label: 'country.malta', phone: '+356' },
  { code: 'MR', label: 'country.mauritania', phone: '+222' },
  { code: 'MU', label: 'country.mauritius', phone: '+230' },
  { code: 'MX', label: 'country.mexico', phone: '+52' },
  { code: 'MD', label: 'country.moldova', phone: '+373' },
  { code: 'MC', label: 'country.monaco', phone: '+377' },
  { code: 'MN', label: 'country.mongolia', phone: '+976' },
  { code: 'MA', label: 'country.morocco', phone: '+212' },
  { code: 'MZ', label: 'country.mozambique', phone: '+258' },
  { code: 'MM', label: 'country.myanmar', phone: '+95' },
  { code: 'NA', label: 'country.namibia', phone: '+264' },
  { code: 'NP', label: 'country.nepal', phone: '+977' },
  { code: 'NL', label: 'country.netherlands', phone: '+31' },
  { code: 'NZ', label: 'country.new_zealand', phone: '+64' },
  { code: 'NI', label: 'country.nicaragua', phone: '+505' },
  { code: 'NE', label: 'country.niger', phone: '+227' },
  { code: 'NG', label: 'country.nigeria', phone: '+234' },
  { code: 'KP', label: 'country.north_korea', phone: '+850' },
  { code: 'MK', label: 'country.north_macedonia', phone: '+389' },
  { code: 'NO', label: 'country.norway', phone: '+47' },
  { code: 'OM', label: 'country.oman', phone: '+968' },
  { code: 'PK', label: 'country.pakistan', phone: '+92' },
  { code: 'PW', label: 'country.palau', phone: '+680' },
  { code: 'PS', label: 'country.palestine', phone: '+970' },
  { code: 'PA', label: 'country.panama', phone: '+507' },
  { code: 'PG', label: 'country.papua_new_guinea', phone: '+675' },
  { code: 'PY', label: 'country.paraguay', phone: '+595' },
  { code: 'PE', label: 'country.peru', phone: '+51' },
  { code: 'PH', label: 'country.philippines', phone: '+63' },
  { code: 'PL', label: 'country.poland', phone: '+48' },
  { code: 'PT', label: 'country.portugal', phone: '+351' },
  { code: 'PR', label: 'country.puerto_rico', phone: '+1' },
  { code: 'QA', label: 'country.qatar', phone: '+974' },
  { code: 'RO', label: 'country.romania', phone: '+40' },
  { code: 'RU', label: 'country.russia', phone: '+7' },
  { code: 'RW', label: 'country.rwanda', phone: '+250' },
  { code: 'SA', label: 'country.saudi_arabia', phone: '+966' },
  { code: 'SN', label: 'country.senegal', phone: '+221' },
  { code: 'RS', label: 'country.serbia', phone: '+381' },
  { code: 'SC', label: 'country.seychelles', phone: '+248' },
  { code: 'SL', label: 'country.sierra_leone', phone: '+232' },
  { code: 'SG', label: 'country.singapore', phone: '+65' },
  { code: 'SK', label: 'country.slovakia', phone: '+421' },
  { code: 'SI', label: 'country.slovenia', phone: '+386' },
  { code: 'SO', label: 'country.somalia', phone: '+252' },
  { code: 'ZA', label: 'country.south_africa', phone: '+27' },
  { code: 'KR', label: 'country.south_korea', phone: '+82' },
  { code: 'SS', label: 'country.south_sudan', phone: '+211' },
  { code: 'ES', label: 'country.spain', phone: '+34' },
  { code: 'LK', label: 'country.sri_lanka', phone: '+94' },
  { code: 'SD', label: 'country.sudan', phone: '+249' },
  { code: 'SR', label: 'country.suriname', phone: '+597' },
  { code: 'SE', label: 'country.sweden', phone: '+46' },
  { code: 'CH', label: 'country.switzerland', phone: '+41' },
  { code: 'SY', label: 'country.syria', phone: '+963' },
  { code: 'TW', label: 'country.taiwan', phone: '+886' },
  { code: 'TJ', label: 'country.tajikistan', phone: '+992' },
  { code: 'TZ', label: 'country.tanzania', phone: '+255' },
  { code: 'TH', label: 'country.thailand', phone: '+66' },
  { code: 'TL', label: 'country.timor_leste', phone: '+670' },
  { code: 'TG', label: 'country.togo', phone: '+228' },
  { code: 'TO', label: 'country.tonga', phone: '+676' },
  { code: 'TT', label: 'country.trinidad_and_tobago', phone: '+1868' },
  { code: 'TN', label: 'country.tunisia', phone: '+216' },
  { code: 'TR', label: 'country.turkey', phone: '+90' },
  { code: 'TM', label: 'country.turkmenistan', phone: '+993' },
  { code: 'TV', label: 'country.tuvalu', phone: '+688' },
  { code: 'UG', label: 'country.uganda', phone: '+256' },
  { code: 'UA', label: 'country.ukraine', phone: '+380' },
  { code: 'AE', label: 'country.united_arab_emirates', phone: '+971' },
  { code: 'GB', label: 'country.united_kingdom', phone: '+44' },
  { code: 'US', label: 'country.united_states', phone: '+1' },
  { code: 'UY', label: 'country.uruguay', phone: '+598' },
  { code: 'UZ', label: 'country.uzbekistan', phone: '+998' },
  { code: 'VU', label: 'country.vanuatu', phone: '+678' },
  { code: 'VA', label: 'country.vatican_city', phone: '+39' },
  { code: 'VE', label: 'country.venezuela', phone: '+58' },
  { code: 'VN', label: 'country.vietnam', phone: '+84' },
  { code: 'YE', label: 'country.yemen', phone: '+967' },
  { code: 'ZM', label: 'country.zambia', phone: '+260' },
  { code: 'ZW', label: 'country.zimbabwe', phone: '+263' },
];
