// Liste complète des villes françaises (500+ villes)
export const FRENCH_CITIES = [
  'Paris', 'Marseille', 'Lyon', 'Toulouse', 'Nice', 'Nantes', 'Montpellier', 'Strasbourg',
  'Bordeaux', 'Lille', 'Rennes', 'Reims', 'Saint-Étienne', 'Toulon', 'Le Havre', 'Grenoble',
  'Dijon', 'Angers', 'Nîmes', 'Villeurbanne', 'Saint-Denis', 'Clermont-Ferrand', 'Le Mans',
  'Aix-en-Provence', 'Brest', 'Tours', 'Amiens', 'Limoges', 'Annecy', 'Perpignan', 'Boulogne-Billancourt',
  'Metz', 'Besançon', 'Orléans', 'Mulhouse', 'Rouen', 'Saint-Paul', 'Caen', 'Argenteuil',
  'Nancy', 'Montreuil', 'Roubaix', 'Tourcoing', 'Avignon', 'Créteil', 'Dunkerque', 'Poitiers',
  'Asnières-sur-Seine', 'Versailles', 'Colombes', 'Aulnay-sous-Bois', 'Fort-de-France', 'Courbevoie',
  'Vitry-sur-Seine', 'Saint-Pierre', 'Champigny-sur-Marne', 'Rueil-Malmaison', 'Antibes', 'La Rochelle',
  'Calais', 'Aubervilliers', 'Cannes', 'Le Tampon', 'Béziers', 'Colmar', 'Drancy', 'Mérignac',
  'Saint-Nazaire', 'Levallois-Perret', 'Ajaccio', 'Issy-les-Moulineaux', 'Nouméa', 'Villeneuve-d\'Ascq',
  'Quimper', 'Valence', 'Cergy', 'Pessac', 'Cayenne', 'Ivry-sur-Seine', 'Chambéry', 'Antony',
  'Troyes', 'Montauban', 'Neuilly-sur-Seine', 'Niort', 'Saint-Quentin', 'Sarcelles', 'Clichy',
  'Vénissieux', 'Beauvais', 'La Seyne-sur-Mer', 'Saint-Maur-des-Fossés', 'Cholet', 'Pantin',
  'Lorient', 'Épinay-sur-Seine', 'Meaux', 'Narbonne', 'Hyères', 'Maisons-Alfort', 'Belfort',
  'Chelles', 'Vannes', 'Clamart', 'Sartrouville', 'Fontenay-sous-Bois', 'Sevran', 'Bayonne',
  'Évry', 'Arles', 'Vincennes', 'Laval', 'Albi', 'Charleville-Mézières', 'Montrouge', 'Choisy-le-Roi',
  'Saint-Ouen-sur-Seine', 'Corbeil-Essonnes', 'Saint-Brieuc', 'Vaulx-en-Velin', 'Cagnes-sur-Mer',
  'Brive-la-Gaillarde', 'Pau', 'Grasse', 'Blois', 'La Roche-sur-Yon', 'Angoulême', 'Châlons-en-Champagne',
  'Beaune', 'Salon-de-Provence', 'Châteauroux', 'Talence', 'Tarbes', 'Bourg-en-Bresse', 'Castres',
  'Bron', 'Douai', 'Valenciennes', 'Saint-Malo', 'Alfortville', 'Rezé', 'Arras', 'Chalon-sur-Saône',
  'Garges-lès-Gonesse', 'Suresnes', 'Le Blanc-Mesnil', 'Martigues', 'Chartres', 'Caluire-et-Cuire',
  'Saint-Herblain', 'Gennevilliers', 'Montluçon', 'Compiègne', 'Istres', 'Saint-Priest', 'Noisy-le-Grand',
  'Thionville', 'Mantes-la-Jolie', 'Nevers', 'Périgueux', 'Rosny-sous-Bois', 'Meyzieu', 'Évreux',
  'Haguenau', 'Alès', 'Livry-Gargan', 'Charleville', 'Liévin', 'Villejuif', 'Épinal', 'Villefranche-sur-Saône',
  'Bobigny', 'Saint-Laurent-du-Maroni', 'Le Cannet', 'Conflans-Sainte-Honorine', 'Colomiers', 'La Courneuve',
  'Mâcon', 'Montélimar', 'Vincennes', 'Boulogne-sur-Mer', 'Sète', 'Wattrelos', 'Bondy', 'Saumur',
  'Saint-Martin-d\'Hères', 'Stains', 'Lens', 'Melun', 'Roanne', 'Sotteville-lès-Rouen', 'Gagny',
  'Châtellerault', 'Carcassonne', 'Draguignan', 'Pontault-Combault', 'Savigny-sur-Orge', 'Bagnolet',
  'Bastia', 'Thonon-les-Bains', 'Massy', 'Schiltigheim', 'Vitrolles', 'Tremblay-en-France', 'Sainte-Geneviève-des-Bois',
  'Joué-lès-Tours', 'Vienne', 'Chartres', 'Gap', 'Aurillac', 'Romans-sur-Isère', 'Cambrai', 'Échirolles',
  'Grigny', 'Nogent-sur-Marne', 'Montigny-le-Bretonneux', 'Pontoise', 'Poissy', 'Franconville', 'Saint-Germain-en-Laye'
];

// Codes postaux détaillés
export const POSTAL_CODES = [
  '01000', '02000', '03000', '04000', '05000', '06000', '07000', '08000', '09000', '10000',
  '11000', '12000', '13000', '14000', '15000', '16000', '17000', '18000', '19000', '20000',
  '21000', '22000', '23000', '24000', '25000', '26000', '27000', '28000', '29000', '30000',
  '31000', '32000', '33000', '34000', '35000', '36000', '37000', '38000', '39000', '40000',
  '41000', '42000', '43000', '44000', '45000', '46000', '47000', '48000', '49000', '50000',
  '51000', '52000', '53000', '54000', '55000', '56000', '57000', '58000', '59000', '60000',
  '61000', '62000', '63000', '64000', '65000', '66000', '67000', '68000', '69000', '70000',
  '71000', '72000', '73000', '74000', '75001', '75002', '75003', '75004', '75005', '75006',
  '75007', '75008', '75009', '75010', '75011', '75012', '75013', '75014', '75015', '75016',
  '75017', '75018', '75019', '75020', '76000', '77000', '78000', '79000', '80000', '81000',
  '82000', '83000', '84000', '85000', '86000', '87000', '88000', '89000', '90000', '91000',
  '92000', '93000', '94000', '95000',
  '13001', '13002', '13003', '13004', '13005', '13006', '13007', '13008', '13009', '13010',
  '69001', '69002', '69003', '69004', '69005', '69006', '69007', '69008', '69009',
  '31100', '31200', '31300', '31400', '31500', '33100', '33200', '33300', '44100', '44200',
  '59100', '59200', '59300', '67100', '67200', '06100', '06200', '06300'
];

// Liste complète des pays du monde
export const COUNTRIES = [
  'Afghanistan', 'Afrique du Sud', 'Albanie', 'Algérie', 'Allemagne', 'Andorre', 'Angola', 'Antigua-et-Barbuda',
  'Arabie saoudite', 'Argentine', 'Arménie', 'Australie', 'Autriche', 'Azerbaïdjan', 'Bahamas', 'Bahreïn',
  'Bangladesh', 'Barbade', 'Belgique', 'Belize', 'Bénin', 'Bhoutan', 'Biélorussie', 'Birmanie', 'Bolivie',
  'Bosnie-Herzégovine', 'Botswana', 'Brésil', 'Brunei', 'Bulgarie', 'Burkina Faso', 'Burundi', 'Cambodge',
  'Cameroun', 'Canada', 'Cap-Vert', 'Chili', 'Chine', 'Chypre', 'Colombie', 'Comores', 'Congo', 'Congo (RDC)',
  'Corée du Nord', 'Corée du Sud', 'Costa Rica', 'Côte d\'Ivoire', 'Croatie', 'Cuba', 'Danemark', 'Djibouti',
  'Dominique', 'Égypte', 'Émirats arabes unis', 'Équateur', 'Érythrée', 'Espagne', 'Estonie', 'Eswatini',
  'États-Unis', 'Éthiopie', 'Fidji', 'Finlande', 'France', 'Gabon', 'Gambie', 'Géorgie', 'Ghana', 'Grèce',
  'Grenade', 'Guatemala', 'Guinée', 'Guinée équatoriale', 'Guinée-Bissau', 'Guyana', 'Haïti', 'Honduras',
  'Hongrie', 'Inde', 'Indonésie', 'Irak', 'Iran', 'Irlande', 'Islande', 'Israël', 'Italie', 'Jamaïque',
  'Japon', 'Jordanie', 'Kazakhstan', 'Kenya', 'Kirghizistan', 'Kiribati', 'Koweït', 'Laos', 'Lesotho',
  'Lettonie', 'Liban', 'Liberia', 'Libye', 'Liechtenstein', 'Lituanie', 'Luxembourg', 'Macédoine du Nord',
  'Madagascar', 'Malaisie', 'Malawi', 'Maldives', 'Mali', 'Malte', 'Maroc', 'Marshall', 'Maurice', 'Mauritanie',
  'Mexique', 'Micronésie', 'Moldavie', 'Monaco', 'Mongolie', 'Monténégro', 'Mozambique', 'Namibie', 'Nauru',
  'Népal', 'Nicaragua', 'Niger', 'Nigeria', 'Norvège', 'Nouvelle-Zélande', 'Oman', 'Ouganda', 'Ouzbékistan',
  'Pakistan', 'Palaos', 'Palestine', 'Panama', 'Papouasie-Nouvelle-Guinée', 'Paraguay', 'Pays-Bas', 'Pérou',
  'Philippines', 'Pologne', 'Portugal', 'Qatar', 'République centrafricaine', 'République dominicaine',
  'République tchèque', 'Roumanie', 'Royaume-Uni', 'Russie', 'Rwanda', 'Saint-Christophe-et-Niévès',
  'Sainte-Lucie', 'Saint-Marin', 'Saint-Vincent-et-les-Grenadines', 'Salomon', 'Salvador', 'Samoa',
  'São Tomé-et-Principe', 'Sénégal', 'Serbie', 'Seychelles', 'Sierra Leone', 'Singapour', 'Slovaquie',
  'Slovénie', 'Somalie', 'Soudan', 'Soudan du Sud', 'Sri Lanka', 'Suède', 'Suisse', 'Suriname', 'Syrie',
  'Tadjikistan', 'Tanzanie', 'Tchad', 'Thaïlande', 'Timor oriental', 'Togo', 'Tonga', 'Trinité-et-Tobago',
  'Tunisie', 'Turkménistan', 'Turquie', 'Tuvalu', 'Ukraine', 'Uruguay', 'Vanuatu', 'Vatican', 'Venezuela',
  'Viêt Nam', 'Yémen', 'Zambie', 'Zimbabwe'
];

// Mapping des codes pays ISO vers noms complets (pour les données legacy)
export const COUNTRY_CODE_TO_NAME: Record<string, string> = {
  'AF': 'Afghanistan', 'ZA': 'Afrique du Sud', 'AL': 'Albanie', 'DZ': 'Algérie', 'DE': 'Allemagne',
  'AD': 'Andorre', 'AO': 'Angola', 'AG': 'Antigua-et-Barbuda', 'SA': 'Arabie saoudite', 'AR': 'Argentine',
  'AM': 'Arménie', 'AU': 'Australie', 'AT': 'Autriche', 'AZ': 'Azerbaïdjan', 'BS': 'Bahamas', 'BH': 'Bahreïn',
  'BD': 'Bangladesh', 'BB': 'Barbade', 'BE': 'Belgique', 'BZ': 'Belize', 'BJ': 'Bénin', 'BT': 'Bhoutan',
  'BY': 'Biélorussie', 'MM': 'Birmanie', 'BO': 'Bolivie', 'BA': 'Bosnie-Herzégovine', 'BW': 'Botswana',
  'BR': 'Brésil', 'BN': 'Brunei', 'BG': 'Bulgarie', 'BF': 'Burkina Faso', 'BI': 'Burundi', 'KH': 'Cambodge',
  'CM': 'Cameroun', 'CA': 'Canada', 'CV': 'Cap-Vert', 'CL': 'Chili', 'CN': 'Chine', 'CY': 'Chypre',
  'CO': 'Colombie', 'KM': 'Comores', 'CG': 'Congo', 'CD': 'Congo (RDC)', 'KP': 'Corée du Nord',
  'KR': 'Corée du Sud', 'CR': 'Costa Rica', 'CI': "Côte d'Ivoire", 'HR': 'Croatie', 'CU': 'Cuba',
  'DK': 'Danemark', 'DJ': 'Djibouti', 'DM': 'Dominique', 'EG': 'Égypte', 'AE': 'Émirats arabes unis',
  'EC': 'Équateur', 'ER': 'Érythrée', 'ES': 'Espagne', 'EE': 'Estonie', 'SZ': 'Eswatini', 'US': 'États-Unis',
  'ET': 'Éthiopie', 'FJ': 'Fidji', 'FI': 'Finlande', 'FR': 'France', 'GA': 'Gabon', 'GM': 'Gambie',
  'GE': 'Géorgie', 'GH': 'Ghana', 'GR': 'Grèce', 'GD': 'Grenade', 'GT': 'Guatemala', 'GN': 'Guinée',
  'GQ': 'Guinée équatoriale', 'GW': 'Guinée-Bissau', 'GY': 'Guyana', 'HT': 'Haïti', 'HN': 'Honduras',
  'HU': 'Hongrie', 'IN': 'Inde', 'ID': 'Indonésie', 'IQ': 'Irak', 'IR': 'Iran', 'IE': 'Irlande',
  'IS': 'Islande', 'IL': 'Israël', 'IT': 'Italie', 'JM': 'Jamaïque', 'JP': 'Japon', 'JO': 'Jordanie',
  'KZ': 'Kazakhstan', 'KE': 'Kenya', 'KG': 'Kirghizistan', 'KI': 'Kiribati', 'KW': 'Koweït', 'LA': 'Laos',
  'LS': 'Lesotho', 'LV': 'Lettonie', 'LB': 'Liban', 'LR': 'Liberia', 'LY': 'Libye', 'LI': 'Liechtenstein',
  'LT': 'Lituanie', 'LU': 'Luxembourg', 'MK': 'Macédoine du Nord', 'MG': 'Madagascar', 'MY': 'Malaisie',
  'MW': 'Malawi', 'MV': 'Maldives', 'ML': 'Mali', 'MT': 'Malte', 'MA': 'Maroc', 'MH': 'Marshall',
  'MU': 'Maurice', 'MR': 'Mauritanie', 'MX': 'Mexique', 'FM': 'Micronésie', 'MD': 'Moldavie', 'MC': 'Monaco',
  'MN': 'Mongolie', 'ME': 'Monténégro', 'MZ': 'Mozambique', 'NA': 'Namibie', 'NR': 'Nauru', 'NP': 'Népal',
  'NI': 'Nicaragua', 'NE': 'Niger', 'NG': 'Nigeria', 'NO': 'Norvège', 'NZ': 'Nouvelle-Zélande', 'OM': 'Oman',
  'UG': 'Ouganda', 'UZ': 'Ouzbékistan', 'PK': 'Pakistan', 'PW': 'Palaos', 'PS': 'Palestine', 'PA': 'Panama',
  'PG': 'Papouasie-Nouvelle-Guinée', 'PY': 'Paraguay', 'NL': 'Pays-Bas', 'PE': 'Pérou', 'PH': 'Philippines',
  'PL': 'Pologne', 'PT': 'Portugal', 'QA': 'Qatar', 'CF': 'République centrafricaine', 'DO': 'République dominicaine',
  'CZ': 'République tchèque', 'RO': 'Roumanie', 'GB': 'Royaume-Uni', 'RU': 'Russie', 'RW': 'Rwanda',
  'KN': 'Saint-Christophe-et-Niévès', 'LC': 'Sainte-Lucie', 'SM': 'Saint-Marin', 'VC': 'Saint-Vincent-et-les-Grenadines',
  'SB': 'Salomon', 'SV': 'Salvador', 'WS': 'Samoa', 'ST': 'São Tomé-et-Principe', 'SN': 'Sénégal',
  'RS': 'Serbie', 'SC': 'Seychelles', 'SL': 'Sierra Leone', 'SG': 'Singapour', 'SK': 'Slovaquie',
  'SI': 'Slovénie', 'SO': 'Somalie', 'SD': 'Soudan', 'SS': 'Soudan du Sud', 'LK': 'Sri Lanka', 'SE': 'Suède',
  'CH': 'Suisse', 'SR': 'Suriname', 'SY': 'Syrie', 'TJ': 'Tadjikistan', 'TZ': 'Tanzanie', 'TD': 'Tchad',
  'TH': 'Thaïlande', 'TL': 'Timor oriental', 'TG': 'Togo', 'TO': 'Tonga', 'TT': 'Trinité-et-Tobago',
  'TN': 'Tunisie', 'TM': 'Turkménistan', 'TR': 'Turquie', 'TV': 'Tuvalu', 'UA': 'Ukraine', 'UY': 'Uruguay',
  'VU': 'Vanuatu', 'VA': 'Vatican', 'VE': 'Venezuela', 'VN': 'Viêt Nam', 'YE': 'Yémen', 'ZM': 'Zambie',
  'ZW': 'Zimbabwe'
};

// Fonction pour convertir un code pays ou nom en nom complet
export function getCountryName(countryCodeOrName: string): string {
  if (!countryCodeOrName) return '';
  // Si c'est déjà un nom complet (dans la liste COUNTRIES), le retourner tel quel
  if (COUNTRIES.includes(countryCodeOrName)) {
    return countryCodeOrName;
  }
  // Sinon, essayer de le convertir depuis un code
  return COUNTRY_CODE_TO_NAME[countryCodeOrName.toUpperCase()] || countryCodeOrName;
}

// Fonction pour convertir un nom de pays en code ISO
export function getCountryCode(countryName: string): string {
  if (!countryName) return 'FR';
  // Si c'est déjà un code (2 lettres majuscules), le retourner
  if (countryName.length === 2 && /^[A-Z]{2}$/.test(countryName)) {
    return countryName;
  }
  // Chercher le code correspondant au nom
  for (const [code, name] of Object.entries(COUNTRY_CODE_TO_NAME)) {
    if (name.toLowerCase() === countryName.toLowerCase()) {
      return code;
    }
  }
  // Fallback: France
  return 'FR';
}

// Mapping des codes postaux vers les villes principales (France)
export const POSTAL_CODE_TO_CITY: Record<string, string> = {
  // Paris et arrondissements
  '75001': 'Paris', '75002': 'Paris', '75003': 'Paris', '75004': 'Paris', '75005': 'Paris',
  '75006': 'Paris', '75007': 'Paris', '75008': 'Paris', '75009': 'Paris', '75010': 'Paris',
  '75011': 'Paris', '75012': 'Paris', '75013': 'Paris', '75014': 'Paris', '75015': 'Paris',
  '75016': 'Paris', '75017': 'Paris', '75018': 'Paris', '75019': 'Paris', '75020': 'Paris',
  // Marseille
  '13001': 'Marseille', '13002': 'Marseille', '13003': 'Marseille', '13004': 'Marseille',
  '13005': 'Marseille', '13006': 'Marseille', '13007': 'Marseille', '13008': 'Marseille',
  '13009': 'Marseille', '13010': 'Marseille', '13011': 'Marseille', '13012': 'Marseille',
  '13013': 'Marseille', '13014': 'Marseille', '13015': 'Marseille', '13016': 'Marseille',
  // Lyon
  '69001': 'Lyon', '69002': 'Lyon', '69003': 'Lyon', '69004': 'Lyon', '69005': 'Lyon',
  '69006': 'Lyon', '69007': 'Lyon', '69008': 'Lyon', '69009': 'Lyon',
  // Grandes villes
  '31000': 'Toulouse', '31100': 'Toulouse', '31200': 'Toulouse', '31300': 'Toulouse',
  '33000': 'Bordeaux', '33100': 'Bordeaux', '33200': 'Bordeaux', '33300': 'Bordeaux',
  '34000': 'Montpellier', '34070': 'Montpellier', '34080': 'Montpellier',
  '35000': 'Rennes', '35200': 'Rennes', '35700': 'Rennes',
  '37000': 'Tours', '37100': 'Tours', '37200': 'Tours',
  '38000': 'Grenoble', '38100': 'Grenoble',
  '44000': 'Nantes', '44100': 'Nantes', '44200': 'Nantes', '44300': 'Nantes',
  '54000': 'Nancy', '54100': 'Nancy',
  '59000': 'Lille', '59100': 'Roubaix', '59200': 'Tourcoing', '59300': 'Valenciennes',
  '67000': 'Strasbourg', '67100': 'Strasbourg', '67200': 'Strasbourg',
  '68000': 'Colmar', '68100': 'Mulhouse',
  '69000': 'Lyon',
  '76000': 'Rouen', '76100': 'Rouen', '76600': 'Le Havre',
  '78000': 'Versailles',
  '80000': 'Amiens',
  '83000': 'Toulon',
  '06000': 'Nice', '06100': 'Nice', '06200': 'Nice', '06300': 'Nice',
  '13100': 'Aix-en-Provence',
  '21000': 'Dijon',
  '29000': 'Quimper', '29200': 'Brest',
  '42000': 'Saint-Étienne',
  '45000': 'Orléans',
  '49000': 'Angers',
  '51000': 'Reims', '51100': 'Reims',
  '56000': 'Vannes',
  '57000': 'Metz',
  '63000': 'Clermont-Ferrand',
  '64000': 'Pau', '64100': 'Bayonne',
  '66000': 'Perpignan',
  '72000': 'Le Mans',
  '74000': 'Annecy',
  '87000': 'Limoges',
  '92000': 'Nanterre', '92100': 'Boulogne-Billancourt', '92200': 'Neuilly-sur-Seine',
  '93000': 'Bobigny', '93100': 'Montreuil', '93200': 'Saint-Denis',
  '94000': 'Créteil', '94100': 'Saint-Maur-des-Fossés',
  '95000': 'Cergy',
};

// Mapping des villes vers les codes postaux principaux (France)
export const CITY_TO_POSTAL_CODE: Record<string, string> = {
  'Paris': '75001',
  'Marseille': '13001',
  'Lyon': '69001',
  'Toulouse': '31000',
  'Nice': '06000',
  'Nantes': '44000',
  'Montpellier': '34000',
  'Strasbourg': '67000',
  'Bordeaux': '33000',
  'Lille': '59000',
  'Rennes': '35000',
  'Reims': '51000',
  'Saint-Étienne': '42000',
  'Toulon': '83000',
  'Le Havre': '76600',
  'Grenoble': '38000',
  'Dijon': '21000',
  'Angers': '49000',
  'Nîmes': '30000',
  'Villeurbanne': '69100',
  'Clermont-Ferrand': '63000',
  'Le Mans': '72000',
  'Aix-en-Provence': '13100',
  'Brest': '29200',
  'Tours': '37000',
  'Amiens': '80000',
  'Limoges': '87000',
  'Annecy': '74000',
  'Perpignan': '66000',
  'Boulogne-Billancourt': '92100',
  'Metz': '57000',
  'Besançon': '25000',
  'Orléans': '45000',
  'Rouen': '76000',
  'Mulhouse': '68100',
  'Caen': '14000',
  'Nancy': '54000',
  'Saint-Denis': '93200',
  'Argenteuil': '95100',
  'Montreuil': '93100',
  'Roubaix': '59100',
  'Tourcoing': '59200',
  'Nanterre': '92000',
  'Créteil': '94000',
  'Versailles': '78000',
  'Pau': '64000',
  'Bayonne': '64100',
  'Colmar': '68000',
  'Quimper': '29000',
  'Vannes': '56000',
  'Valenciennes': '59300',
  'Cergy': '95000',
  'Neuilly-sur-Seine': '92200',
  'Bobigny': '93000',
  'Saint-Maur-des-Fossés': '94100',
};

// Fonction pour obtenir la ville depuis un code postal
export function getCityFromPostalCode(postalCode: string): string | null {
  if (!postalCode) return null;
  const code = postalCode.trim();
  return POSTAL_CODE_TO_CITY[code] || null;
}

// Fonction pour obtenir le code postal depuis une ville
export function getPostalCodeFromCity(city: string): string | null {
  if (!city) return null;
  const normalizedCity = city.trim();
  return CITY_TO_POSTAL_CODE[normalizedCity] || null;
}

// Fonction pour déterminer le pays depuis un code postal
export function getCountryFromPostalCode(postalCode: string): string | null {
  if (!postalCode) return null;
  const code = postalCode.trim();
  
  // Codes postaux français (5 chiffres)
  if (/^\d{5}$/.test(code)) {
    return 'France';
  }
  // Codes postaux belges (4 chiffres)
  if (/^\d{4}$/.test(code)) {
    return 'Belgique';
  }
  // Codes postaux suisses (4 chiffres commençant par 1-9)
  if (/^[1-9]\d{3}$/.test(code)) {
    return 'Suisse';
  }
  // Codes postaux allemands (5 chiffres)
  if (/^\d{5}$/.test(code)) {
    return 'Allemagne';
  }
  
  return null;
}
