ldc-mesbr-app/app/Enums/Country.php
Vincent BRIDIER b7cb4c0ab4
Merge API
2023-11-24 20:26:29 +01:00

600 lines
28 KiB
PHP

<?php
namespace App\Enums;
use App\Traits\Enums\BaseEnum;
enum Country: int
{
use BaseEnum;
case afghanistan = 1;
case alandIslands = 2;
case albania = 3;
case algeria = 4;
case americanSamoa = 5;
case andorra = 6;
case angola = 7;
case anguilla = 8;
case antarctica = 9;
case antiguaAndBarbuda = 10;
case argentina = 11;
case armenia = 12;
case aruba = 13;
case australia = 14;
case austria = 15;
case azerbaijan = 16;
case bahrain = 17;
case bahamas = 18;
case bangladesh = 19;
case barbados = 20;
case belarus = 21;
case belgium = 22;
case belize = 23;
case benin = 24;
case bermuda = 25;
case bhutan = 26;
case boliviaPlurinationalStateOf = 27;
case bonaireSintEustatiusAndSaba = 28;
case bosniaAndHerzegovina = 29;
case botswana = 30;
case bouvetIsland = 31;
case brazil = 32;
case britishIndianOceanTerritory = 33;
case bruneiDarussalam = 34;
case bulgaria = 35;
case burkinaFaso = 36;
case burundi = 37;
case cambodia = 38;
case cameroon = 39;
case canada = 40;
case capeVerde = 41;
case caymanIslands = 42;
case centralAfricanRepublic = 43;
case chad = 44;
case chile = 45;
case china = 46;
case christmasIsland = 47;
case cocosKeelingIslands = 48;
case colombia = 49;
case comoros = 50;
case congo = 51;
case congoTheDemocraticRepublicOfThe = 52;
case cookIslands = 53;
case costaRica = 54;
case coteDivoire = 55;
case croatia = 56;
case cuba = 57;
case curacao = 58;
case cyprus = 59;
case czechRepublic = 60;
case denmark = 61;
case djibouti = 62;
case dominica = 63;
case dominicanRepublic = 64;
case ecuador = 65;
case egypt = 66;
case elSalvador = 67;
case equatorialGuinea = 68;
case eritrea = 69;
case estonia = 70;
case ethiopia = 71;
case falklandIslandsMalvinas = 72;
case faroeIslands = 73;
case fiji = 74;
case finland = 75;
case france = 76;
case frenchGuiana = 77;
case frenchPolynesia = 78;
case frenchSouthernTerritories = 79;
case gabon = 80;
case gambia = 81;
case georgia = 82;
case germany = 83;
case ghana = 84;
case gibraltar = 85;
case greece = 86;
case greenland = 87;
case grenada = 88;
case guadeloupe = 89;
case guam = 90;
case guatemala = 91;
case guernsey = 92;
case guinea = 93;
case guineaBissau = 94;
case guyana = 95;
case haiti = 96;
case heardIslandAndMcdonaldIslands = 97;
case holySeeVaticanCityState = 98;
case honduras = 99;
case hongKong = 100;
case hungary = 101;
case iceland = 102;
case india = 103;
case indonesia = 104;
case iranIslamicRepublicOf = 105;
case iraq = 106;
case ireland = 107;
case isleOfMan = 108;
case israel = 109;
case italy = 110;
case jamaica = 111;
case japan = 112;
case jersey = 113;
case jordan = 114;
case kazakhstan = 115;
case kenya = 116;
case kiribati = 117;
case koreaDemocraticPeoplesRepublicOf = 118;
case koreaRepublicOf = 119;
case kuwait = 120;
case kyrgyzstan = 121;
case laoPeoplesDemocraticRepublic = 122;
case latvia = 123;
case lebanon = 124;
case lesotho = 125;
case liberia = 126;
case libya = 127;
case liechtenstein = 128;
case lithuania = 129;
case luxembourg = 130;
case macao = 131;
case macedoniaTheFormerYugoslavRepublicOf = 132;
case madagascar = 133;
case malawi = 134;
case malaysia = 135;
case maldives = 136;
case mali = 137;
case malta = 138;
case marshallIslands = 139;
case martinique = 140;
case mauritania = 141;
case mauritius = 142;
case mayotte = 143;
case mexico = 144;
case micronesiaFederatedStatesOf = 145;
case moldovaRepublicOf = 146;
case monaco = 147;
case mongolia = 148;
case montenegro = 149;
case montserrat = 150;
case morocco = 151;
case mozambique = 152;
case myanmar = 153;
case namibia = 154;
case nauru = 155;
case nepal = 156;
case netherlands = 157;
case newCaledonia = 158;
case newZealand = 159;
case nicaragua = 160;
case niger = 161;
case nigeria = 162;
case niue = 163;
case norfolkIsland = 164;
case northernMarianaIslands = 165;
case norway = 166;
case oman = 167;
case pakistan = 168;
case palau = 169;
case palestineStateOf = 170;
case panama = 171;
case papuaNewGuinea = 172;
case paraguay = 173;
case peru = 174;
case philippines = 175;
case pitcairn = 176;
case poland = 177;
case portugal = 178;
case puertoRico = 179;
case qatar = 180;
case reunion = 181;
case romania = 182;
case russianFederation = 183;
case rwanda = 184;
case saintBarthelemy = 185;
case saintHelenaAscensionAndTristanDaCunha = 186;
case saintKittsAndNevis = 187;
case saintLucia = 188;
case saintMartinFrenchPart = 189;
case saintPierreAndMiquelon = 190;
case saintVincentAndTheGrenadines = 191;
case samoa = 192;
case sanMarino = 193;
case saoTomeAndPrincipe = 194;
case saudiArabia = 195;
case senegal = 196;
case serbia = 197;
case seychelles = 198;
case sierraLeone = 199;
case singapore = 200;
case sintMaartenDutchPart = 201;
case slovakia = 202;
case slovenia = 203;
case solomonIslands = 204;
case somalia = 205;
case southAfrica = 206;
case southGeorgiaAndTheSouthSandwichIslands = 207;
case southSudan = 208;
case spain = 209;
case sriLanka = 210;
case sudan = 211;
case suriname = 212;
case svalbardAndJanMayen = 213;
case swaziland = 214;
case sweden = 215;
case switzerland = 216;
case syrianArabRepublic = 217;
case taiwanProvinceOfChina = 218;
case tajikistan = 219;
case tanzaniaUnitedRepublicOf = 220;
case thailand = 221;
case timorLeste = 222;
case togo = 223;
case tokelau = 224;
case tonga = 225;
case trinidadAndTobago = 226;
case tunisia = 227;
case turkey = 228;
case turkmenistan = 229;
case turksAndCaicosIslands = 230;
case tuvalu = 231;
case uganda = 232;
case ukraine = 233;
case unitedArabEmirates = 234;
case unitedKingdom = 235;
case unitedStates = 236;
case unitedStatesMinorOutlyingIslands = 237;
case uruguay = 238;
case uzbekistan = 239;
case vanuatu = 240;
case venezuelaBolivarianRepublicOf = 241;
case vietNam = 242;
case virginIslandsBritish = 243;
case virginIslandsUs = 244;
case wallisAndFutuna = 245;
case westernSahara = 246;
case yemen = 247;
case zambia = 248;
case zimbabwe = 249;
/**
* Custom added images definition
*/
private const LABELS = [
self::afghanistan->name => "Afghanistan",
self::alandIslands->name => "Åland Islands",
self::albania->name => "Albania",
self::algeria->name => "Algeria",
self::americanSamoa->name => "American Samoa",
self::andorra->name => "Andorra",
self::angola->name => "Angola",
self::anguilla->name => "Anguilla",
self::antarctica->name => "Antarctica",
self::antiguaAndBarbuda->name => "Antigua and Barbuda",
self::argentina->name => "Argentina",
self::armenia->name => "Armenia",
self::aruba->name => "Aruba",
self::australia->name => "Australia",
self::austria->name => "Austria",
self::azerbaijan->name => "Azerbaijan",
self::bahrain->name => "Bahrain",
self::bahamas->name => "Bahamas",
self::bangladesh->name => "Bangladesh",
self::barbados->name => "Barbados",
self::belarus->name => "Belarus",
self::belgium->name => "Belgium",
self::belize->name => "Belize",
self::benin->name => "Benin",
self::bermuda->name => "Bermuda",
self::bhutan->name => "Bhutan",
self::boliviaPlurinationalStateOf->name => "Bolivia, Plurinational State of",
self::bonaireSintEustatiusAndSaba->name => "Bonaire, Sint Eustatius and Saba",
self::bosniaAndHerzegovina->name => "Bosnia and Herzegovina",
self::botswana->name => "Botswana",
self::bouvetIsland->name => "Bouvet Island",
self::brazil->name => "Brazil",
self::britishIndianOceanTerritory->name => "British Indian Ocean Territory",
self::bruneiDarussalam->name => "Brunei Darussalam",
self::bulgaria->name => "Bulgaria",
self::burkinaFaso->name => "Burkina Faso",
self::burundi->name => "Burundi",
self::cambodia->name => "Cambodia",
self::cameroon->name => "Cameroon",
self::canada->name => "Canada",
self::capeVerde->name => "Cape Verde",
self::caymanIslands->name => "Cayman Islands",
self::centralAfricanRepublic->name => "Central African Republic",
self::chad->name => "Chad",
self::chile->name => "Chile",
self::china->name => "China",
self::christmasIsland->name => "Christmas Island",
self::cocosKeelingIslands->name => "Cocos (Keeling) Islands",
self::colombia->name => "Colombia",
self::comoros->name => "Comoros",
self::congo->name => "Congo",
self::congoTheDemocraticRepublicOfThe->name => "Congo, the Democratic Republic of the",
self::cookIslands->name => "Cook Islands",
self::costaRica->name => "Costa Rica",
self::coteDivoire->name => "Côte d'Ivoire",
self::croatia->name => "Croatia",
self::cuba->name => "Cuba",
self::curacao->name => "Curaçao",
self::cyprus->name => "Cyprus",
self::czechRepublic->name => "Czech Republic",
self::denmark->name => "Denmark",
self::djibouti->name => "Djibouti",
self::dominica->name => "Dominica",
self::dominicanRepublic->name => "Dominican Republic",
self::ecuador->name => "Ecuador",
self::egypt->name => "Egypt",
self::elSalvador->name => "El Salvador",
self::equatorialGuinea->name => "Equatorial Guinea",
self::eritrea->name => "Eritrea",
self::estonia->name => "Estonia",
self::ethiopia->name => "Ethiopia",
self::falklandIslandsMalvinas->name => "Falkland Islands (Malvinas)",
self::faroeIslands->name => "Faroe Islands",
self::fiji->name => "Fiji",
self::finland->name => "Finland",
self::france->name => "France",
self::frenchGuiana->name => "French Guiana",
self::frenchPolynesia->name => "French Polynesia",
self::frenchSouthernTerritories->name => "French Southern Territories",
self::gabon->name => "Gabon",
self::gambia->name => "Gambia",
self::georgia->name => "Georgia",
self::germany->name => "Germany",
self::ghana->name => "Ghana",
self::gibraltar->name => "Gibraltar",
self::greece->name => "Greece",
self::greenland->name => "Greenland",
self::grenada->name => "Grenada",
self::guadeloupe->name => "Guadeloupe",
self::guam->name => "Guam",
self::guatemala->name => "Guatemala",
self::guernsey->name => "Guernsey",
self::guinea->name => "Guinea",
self::guineaBissau->name => "GuineaBissau",
self::guyana->name => "Guyana",
self::haiti->name => "Haiti",
self::heardIslandAndMcdonaldIslands->name => "Heard Island and McDonald Islands",
self::holySeeVaticanCityState->name => "Holy See (Vatican City State)",
self::honduras->name => "Honduras",
self::hongKong->name => "Hong Kong",
self::hungary->name => "Hungary",
self::iceland->name => "Iceland",
self::india->name => "India",
self::indonesia->name => "Indonesia",
self::iranIslamicRepublicOf->name => "Iran, Islamic Republic of",
self::iraq->name => "Iraq",
self::ireland->name => "Ireland",
self::isleOfMan->name => "Isle of Man",
self::israel->name => "Israel",
self::italy->name => "Italy",
self::jamaica->name => "Jamaica",
self::japan->name => "Japan",
self::jersey->name => "Jersey",
self::jordan->name => "Jordan",
self::kazakhstan->name => "Kazakhstan",
self::kenya->name => "Kenya",
self::kiribati->name => "Kiribati",
self::koreaDemocraticPeoplesRepublicOf->name => "Korea, Democratic People's Republic of",
self::koreaRepublicOf->name => "Korea, Republic of",
self::kuwait->name => "Kuwait",
self::kyrgyzstan->name => "Kyrgyzstan",
self::laoPeoplesDemocraticRepublic->name => "Lao People's Democratic Republic",
self::latvia->name => "Latvia",
self::lebanon->name => "Lebanon",
self::lesotho->name => "Lesotho",
self::liberia->name => "Liberia",
self::libya->name => "Libya",
self::liechtenstein->name => "Liechtenstein",
self::lithuania->name => "Lithuania",
self::luxembourg->name => "Luxembourg",
self::macao->name => "Macao",
self::macedoniaTheFormerYugoslavRepublicOf->name => "Macedonia, the Former Yugoslav Republic of",
self::madagascar->name => "Madagascar",
self::malawi->name => "Malawi",
self::malaysia->name => "Malaysia",
self::maldives->name => "Maldives",
self::mali->name => "Mali",
self::malta->name => "Malta",
self::marshallIslands->name => "Marshall Islands",
self::martinique->name => "Martinique",
self::mauritania->name => "Mauritania",
self::mauritius->name => "Mauritius",
self::mayotte->name => "Mayotte",
self::mexico->name => "Mexico",
self::micronesiaFederatedStatesOf->name => "Micronesia, Federated States of",
self::moldovaRepublicOf->name => "Moldova, Republic of",
self::monaco->name => "Monaco",
self::mongolia->name => "Mongolia",
self::montenegro->name => "Montenegro",
self::montserrat->name => "Montserrat",
self::morocco->name => "Morocco",
self::mozambique->name => "Mozambique",
self::myanmar->name => "Myanmar",
self::namibia->name => "Namibia",
self::nauru->name => "Nauru",
self::nepal->name => "Nepal",
self::netherlands->name => "Netherlands",
self::newCaledonia->name => "New Caledonia",
self::newZealand->name => "New Zealand",
self::nicaragua->name => "Nicaragua",
self::niger->name => "Niger",
self::nigeria->name => "Nigeria",
self::niue->name => "Niue",
self::norfolkIsland->name => "Norfolk Island",
self::northernMarianaIslands->name => "Northern Mariana Islands",
self::norway->name => "Norway",
self::oman->name => "Oman",
self::pakistan->name => "Pakistan",
self::palau->name => "Palau",
self::palestineStateOf->name => "Palestine, State of",
self::panama->name => "Panama",
self::papuaNewGuinea->name => "Papua New Guinea",
self::paraguay->name => "Paraguay",
self::peru->name => "Peru",
self::philippines->name => "Philippines",
self::pitcairn->name => "Pitcairn",
self::poland->name => "Poland",
self::portugal->name => "Portugal",
self::puertoRico->name => "Puerto Rico",
self::qatar->name => "Qatar",
self::reunion->name => "Réunion",
self::romania->name => "Romania",
self::russianFederation->name => "Russian Federation",
self::rwanda->name => "Rwanda",
self::saintBarthelemy->name => "Saint Barthélemy",
self::saintHelenaAscensionAndTristanDaCunha->name => "Saint Helena, Ascension and Tristan da Cunha",
self::saintKittsAndNevis->name => "Saint Kitts and Nevis",
self::saintLucia->name => "Saint Lucia",
self::saintMartinFrenchPart->name => "Saint Martin (French part)",
self::saintPierreAndMiquelon->name => "Saint Pierre and Miquelon",
self::saintVincentAndTheGrenadines->name => "Saint Vincent and the Grenadines",
self::samoa->name => "Samoa",
self::sanMarino->name => "San Marino",
self::saoTomeAndPrincipe->name => "Sao Tome and Principe",
self::saudiArabia->name => "Saudi Arabia",
self::senegal->name => "Senegal",
self::serbia->name => "Serbia",
self::seychelles->name => "Seychelles",
self::sierraLeone->name => "Sierra Leone",
self::singapore->name => "Singapore",
self::sintMaartenDutchPart->name => "Sint Maarten (Dutch part)",
self::slovakia->name => "Slovakia",
self::slovenia->name => "Slovenia",
self::solomonIslands->name => "Solomon Islands",
self::somalia->name => "Somalia",
self::southAfrica->name => "South Africa",
self::southGeorgiaAndTheSouthSandwichIslands->name => "South Georgia and the South Sandwich Islands",
self::southSudan->name => "South Sudan",
self::spain->name => "Spain",
self::sriLanka->name => "Sri Lanka",
self::sudan->name => "Sudan",
self::suriname->name => "Suriname",
self::svalbardAndJanMayen->name => "Svalbard and Jan Mayen",
self::swaziland->name => "Swaziland",
self::sweden->name => "Sweden",
self::switzerland->name => "Switzerland",
self::syrianArabRepublic->name => "Syrian Arab Republic",
self::taiwanProvinceOfChina->name => "Taiwan, Province of China",
self::tajikistan->name => "Tajikistan",
self::tanzaniaUnitedRepublicOf->name => "Tanzania, United Republic of",
self::thailand->name => "Thailand",
self::timorLeste->name => "TimorLeste",
self::togo->name => "Togo",
self::tokelau->name => "Tokelau",
self::tonga->name => "Tonga",
self::trinidadAndTobago->name => "Trinidad and Tobago",
self::tunisia->name => "Tunisia",
self::turkey->name => "Turkey",
self::turkmenistan->name => "Turkmenistan",
self::turksAndCaicosIslands->name => "Turks and Caicos Islands",
self::tuvalu->name => "Tuvalu",
self::uganda->name => "Uganda",
self::ukraine->name => "Ukraine",
self::unitedArabEmirates->name => "United Arab Emirates",
self::unitedKingdom->name => "United Kingdom",
self::unitedStates->name => "United States",
self::unitedStatesMinorOutlyingIslands->name => "United States Minor Outlying Islands",
self::uruguay->name => "Uruguay",
self::uzbekistan->name => "Uzbekistan",
self::vanuatu->name => "Vanuatu",
self::venezuelaBolivarianRepublicOf->name => "Venezuela, Bolivarian Republic of",
self::vietNam->name => "Viet Nam",
self::virginIslandsBritish->name => "Virgin Islands, British",
self::virginIslandsUs->name => "Virgin Islands, U.S.",
self::wallisAndFutuna->name => "Wallis and Futuna",
self::westernSahara->name => "Western Sahara",
self::yemen->name => "Yemen",
self::zambia->name => "Zambia",
self::zimbabwe->name => "Zimbabwe"
];
/**
* Get valid countries label
*
* @return array
*/
public static function getValidCountriesLabel(): array
{
return collect(self::getValidCountries())->map(function (self $country) {
return $country->label;
})->all();
}
/**
* Get Alpha 2 ISO code of valid countries
*
* @return array
*/
public static function getValidIsoAplha2Codes(): array
{
return \array_values(self::isoCodes());
}
/**
* Get valid countries
*
* @return array
*/
public static function getValidCountries(): array
{
return [
Country::belgium,
Country::luxembourg,
Country::france,
// * DROM C.
Country::guadeloupe,
Country::martinique,
Country::frenchGuiana,
Country::reunion,
Country::saintPierreAndMiquelon,
Country::mayotte,
Country::saintBarthelemy,
Country::saintMartinFrenchPart,
Country::wallisAndFutuna,
Country::frenchPolynesia,
Country::newCaledonia
];
}
/**
* Enum classes
*
* @return array
*/
protected static function isoCodes(): array
{
return [
'france' => 'FR',
'belgium' => 'BE',
'luxembourg' => 'LU',
'guadeloupe' => 'GP',
'martinique' => 'MQ',
'frenchGuiana' => 'GF',
'reunion' => 'RE',
'saintPierreAndMiquelon' => 'PM',
'mayotte' => 'YT',
'saintBarthelemy' => 'BL',
'saintMartinFrenchPart' => 'MF',
'wallisAndFutuna' => 'WF',
'frenchPolynesia' => 'PF',
'newCaledonia' => 'NC',
];
}
/**
* @param string $attribute
* @return integer|string
*/
public function get(string $attribute)
{
if ($attribute === 'iso') {
return $this->isoCodes()[$this->name] ?? null;
}
return $this->{$attribute};
}
}