Test Failed
Push — master ( 1a9fa4...737114 )
by Esteban De La Fuente
03:38
created

Comuna::getRegion()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 13
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 7
c 1
b 0
f 0
nc 2
nop 0
dl 0
loc 13
ccs 0
cts 9
cp 0
crap 6
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
/**
6
 * Derafu: Biblioteca PHP (Núcleo).
7
 * Copyright (C) Derafu <https://www.derafu.org>
8
 *
9
 * Este programa es software libre: usted puede redistribuirlo y/o modificarlo
10
 * bajo los términos de la Licencia Pública General Affero de GNU publicada por
11
 * la Fundación para el Software Libre, ya sea la versión 3 de la Licencia, o
12
 * (a su elección) cualquier versión posterior de la misma.
13
 *
14
 * Este programa se distribuye con la esperanza de que sea útil, pero SIN
15
 * GARANTÍA ALGUNA; ni siquiera la garantía implícita MERCANTIL o de APTITUD
16
 * PARA UN PROPÓSITO DETERMINADO. Consulte los detalles de la Licencia Pública
17
 * General Affero de GNU para obtener una información más detallada.
18
 *
19
 * Debería haber recibido una copia de la Licencia Pública General Affero de GNU
20
 * junto a este programa.
21
 *
22
 * En caso contrario, consulte <http://www.gnu.org/licenses/agpl.html>.
23
 */
24
25
namespace Derafu\Lib\Core\Enum\Cl;
26
27
use RuntimeException;
28
29
/**
30
 * Enum para representar las comunas de Chile.
31
 */
32
enum Comuna: int
33
{
34
    case IQUIQUE = 1101;
35
    case CAMIÑA = 1102;
36
    case COLCHANE = 1103;
37
    case HUARA = 1104;
38
    case PICA = 1105;
39
    case POZO_ALMONTE = 1106;
40
    case ALTO_HOSPICIO = 1107;
41
    case CAMARONES = 1202;
42
    case PUTRE = 1301;
43
    case GENERAL_LAGOS = 1302;
44
    case ANTOFAGASTA = 2101;
45
    case MEJILLONES = 2102;
46
    case SIERRA_GORDA = 2103;
47
    case TALTAL = 2104;
48
    case MARIA_ELENA = 2105;
49
    case CALAMA = 2201;
50
    case OLLAGUE = 2202;
51
    case SAN_PEDRO_DE_ATACAMA = 2203;
52
    case TOCOPILLA = 2301;
53
    case COPIAPO = 3101;
54
    case CALDERA = 3102;
55
    case TIERRA_AMARILLA = 3103;
56
    case CHAÑARAL = 3201;
57
    case DIEGO_DE_ALMAGRO = 3202;
58
    case VALLENAR = 3301;
59
    case ALTO_DEL_CARMEN = 3302;
60
    case FREIRINA = 3303;
61
    case HUASCO = 3304;
62
    case LA_SERENA = 4101;
63
    case COQUIMBO = 4102;
64
    case ANDACOLLO = 4103;
65
    case LA_HIGUERA = 4104;
66
    case PAIHUANO = 4105;
67
    case VICUÑA = 4106;
68
    case ILLAPEL = 4201;
69
    case CANELA = 4202;
70
    case LOS_VILOS = 4203;
71
    case SALAMANCA = 4204;
72
    case OVALLE = 4301;
73
    case COMBARBALA = 4302;
74
    case MONTE_PATRIA = 4303;
75
    case PUNITAQUI = 4304;
76
    case RIO_HURTADO = 4305;
77
    case VALPARAISO = 5101;
78
    case CASABLANCA = 5102;
79
    case CONCON = 5103;
80
    case JUAN_FERNANDEZ = 5104;
81
    case PUCHUNCAVI = 5105;
82
    case QUILPUE = 5106;
83
    case QUINTERO = 5107;
84
    case VILLA_ALEMANA = 5108;
85
    case VIÑA_DEL_MAR = 5109;
86
    case ISLA_DE_PASCUA = 5201;
87
    case LOS_ANDES = 5301;
88
    case CALLE_LARGA = 5302;
89
    case RINCONADA = 5303;
90
    case SAN_ESTEBAN = 5304;
91
    case LA_LIGUA = 5401;
92
    case CABILDO = 5402;
93
    case PAPUDO = 5403;
94
    case PETORCA = 5404;
95
    case ZAPALLAR = 5405;
96
    case QUILLOTA = 5501;
97
    case LA_CALERA = 5502;
98
    case HIJUELAS = 5503;
99
    case LA_CRUZ = 5504;
100
    case LIMACHE = 5505;
101
    case NOGALES = 5506;
102
    case OLMUE = 5507;
103
    case SAN_ANTONIO = 5601;
104
    case ALGARROBO = 5602;
105
    case CARTAGENA = 5603;
106
    case EL_QUISCO = 5604;
107
    case EL_TABO = 5605;
108
    case SANTO_DOMINGO = 5606;
109
    case SAN_FELIPE = 5701;
110
    case CATEMU = 5702;
111
    case LLAY_LLAY = 5703;
112
    case PANQUEHUE = 5704;
113
    case PUTAENDO = 5705;
114
    case SANTA_MARIA = 5706;
115
    case RANCAGUA = 6101;
116
    case CODEGUA = 6102;
117
    case COINCO = 6103;
118
    case COLTAUCO = 6104;
119
    case DONIHUE = 6105;
120
    case GRANEROS = 6106;
121
    case LAS_CABRAS = 6107;
122
    case MACHALI = 6108;
123
    case MALLOA = 6109;
124
    case MOSTAZAL = 6110;
125
    case OLIVAR = 6111;
126
    case PEUMO = 6112;
127
    case PICHIDEGUA = 6113;
128
    case QUINTA_DE_TILCOCO = 6114;
129
    case RENGO = 6115;
130
    case REQUINOA = 6116;
131
    case SAN_VICENTE = 6117;
132
    case PICHILEMU = 6201;
133
    case LA_ESTRELLA = 6202;
134
    case LITUECHE = 6203;
135
    case MARCHIGUE = 6204;
136
    case NAVIDAD = 6205;
137
    case PAREDONES = 6206;
138
    case SAN_FERNANDO = 6301;
139
    case CHEPICA = 6302;
140
    case CHIMBARONGO = 6303;
141
    case LOLOL = 6304;
142
    case NANCAGUA = 6305;
143
    case PALMILLA = 6306;
144
    case PERALILLO = 6307;
145
    case PLACILLA = 6308;
146
    case PUMANQUE = 6309;
147
    case SANTA_CRUZ = 6310;
148
    case TALCA = 7101;
149
    case CONSTITUCION = 7102;
150
    case CUREPTO = 7103;
151
    case EMPEDRADO = 7104;
152
    case MAULE = 7105;
153
    case PELARCO = 7106;
154
    case PENCAHUE = 7107;
155
    case RIO_CLARO = 7108;
156
    case SAN_CLEMENTE = 7109;
157
    case SAN_RAFAEL = 7110;
158
    case CAUQUENES = 7201;
159
    case CHANCO = 7202;
160
    case PELLUHUE = 7203;
161
    case CURICO = 7301;
162
    case HUALAÑE = 7302;
163
    case LICANTEN = 7303;
164
    case MOLINA = 7304;
165
    case RAUCO = 7305;
166
    case ROMERAL = 7306;
167
    case SAGRADA_FAMILIA = 7307;
168
    case TENO = 7308;
169
    case VICUQUEN = 7309;
170
    case LINARES = 7401;
171
    case COLBUN = 7402;
172
    case LONGAVI = 7403;
173
    case PARRAL = 7404;
174
    case RETIRO = 7405;
175
    case SAN_JAVIER = 7406;
176
    case VILLA_ALEGRE = 7407;
177
    case YERBAS_BUENAS = 7408;
178
    case CONCEPCION = 8101;
179
    case CORONEL = 8102;
180
    case CHIGUAYANTE = 8103;
181
    case FLORIDA = 8104;
182
    case HUALQUI = 8105;
183
    case LOTA = 8106;
184
    case PENCO = 8107;
185
    case SAN_PEDRO_DE_LA_PAZ = 8108;
186
    case SANTA_JUANA = 8109;
187
    case TALCAHUANO = 8110;
188
    case TOME = 8111;
189
    case LEBU = 8201;
190
    case ARAUCO = 8202;
191
    case CAÑETE = 8203;
192
    case CONTULMO = 8204;
193
    case CURANILAHUE = 8205;
194
    case LOS_ALAMOS = 8206;
195
    case TIRUA = 8207;
196
    case HUALPEN = 8208;
197
    case LOS_ANGELES = 8301;
198
    case ANTUCO = 8302;
199
    case CABRERO = 8303;
200
    case LAJA = 8304;
201
    case MULCHEN = 8305;
202
    case NACIMIENTO = 8306;
203
    case NEGRETE = 8307;
204
    case QUILACO = 8308;
205
    case QUILLECO = 8309;
206
    case SAN_ROSENDO = 8310;
207
    case SANTA_BARBARA = 8311;
208
    case TUCAPEL = 8312;
209
    case YUMBEL = 8313;
210
    case ALTO_BIO_BIO = 8314;
211
    case CHILLAN = 16101;
212
    case BULNES = 16102;
213
    case COBQUECURA = 16202;
214
    case COELEMU = 16203;
215
    case COIHUECO = 16302;
216
    case CHILLAN_VIEJO = 16103;
217
    case EL_CARMEN = 16104;
218
    case NINHUE = 16204;
219
    case NIQUEN = 16303;
220
    case PEMUCO = 16105;
221
    case PINTO = 16106;
222
    case PORTEZUELO = 16205;
223
    case QUILLON = 16107;
224
    case QUIRIHUE = 16201;
225
    case RANQUIL = 16206;
226
    case SAN_CARLOS = 16301;
227
    case SAN_FABIAN = 16304;
228
    case SAN_IGNACIO = 16108;
229
    case SAN_NICOLAS = 16305;
230
    case TREGUACO = 16207;
231
    case YUNGAY = 16109;
232
    case TEMUCO = 9101;
233
    case CARAHUE = 9102;
234
    case CUNCO = 9103;
235
    case CURARREHUE = 9104;
236
    case FREIRE = 9105;
237
    case GALVARINO = 9106;
238
    case GORBEA = 9107;
239
    case LAUTARO = 9108;
240
    case LONCOCHE = 9109;
241
    case MELIPEUCO = 9110;
242
    case NUEVA_IMPERIAL = 9111;
243
    case PADRE_LAS_CASAS = 9112;
244
    case PERQUENCO = 9113;
245
    case PITRUFQUEN = 9114;
246
    case PUCON = 9115;
247
    case SAAVEDRA = 9116;
248
    case TEODORO_SCHMIDT = 9117;
249
    case TOLTEN = 9118;
250
    case VILCUN = 9119;
251
    case VILLARRICA = 9120;
252
    case CHOLCHOL = 9121;
253
    case ANGOL = 9201;
254
    case COLLIPULLI = 9202;
255
    case CURACAUTIN = 9203;
256
    case ERCILLA = 9204;
257
    case LONQUIMAY = 9205;
258
    case LOS_SAUCES = 9206;
259
    case LUMACO = 9207;
260
    case PUREN = 9208;
261
    case RENAICO = 9209;
262
    case TRAIGUEN = 9210;
263
    case VICTORIA = 9211;
264
    case PUERTO_MONTT = 10101;
265
    case CALBUCO = 10102;
266
    case COCHAMO = 10103;
267
    case FRESIA = 10104;
268
    case FRUTILLAR = 10105;
269
    case LOS_MUERMO = 10106;
270
    case LLANQUIHUE = 10107;
271
    case MAULLIN = 10108;
272
    case PUERTO_VARAS = 10109;
273
    case CASTRO = 10201;
274
    case ANCUD = 10202;
275
    case CHONCHI = 10203;
276
    case CURACO_DE_VELEZ = 10204;
277
    case DALCAHUE = 10205;
278
    case PUQUELDON = 10206;
279
    case QUEILEN = 10207;
280
    case QUELLON = 10208;
281
    case QUEMCHI = 10209;
282
    case QUINCHAO = 10210;
283
    case OSORNO = 10301;
284
    case PUERTO_OCTAY = 10302;
285
    case PURRANQUE = 10303;
286
    case PUYEHUE = 10304;
287
    case RIO_NEGRO = 10305;
288
    case SAN_JUAN_DE_LA_COSTA = 10306;
289
    case SAN_PABLO = 10307;
290
    case CHAITE = 10401;
291
    case FUTALEUFU = 10402;
292
    case HUALAIHUE = 10403;
293
    case PALENA = 10404;
294
    case VALDIVIA = 10501;
295
    case CORRAL = 10502;
296
    case FUTRONO = 10503;
297
    case LA_UNION = 10504;
298
    case LAGO_RANCO = 10505;
299
    case LANCO = 10506;
300
    case LOS_LAGOS = 10507;
301
    case MAFIL = 10508;
302
    case MARIQUINA = 10509;
303
    case PAILLACO = 10510;
304
    case PANGUIPULLI = 10511;
305
    case RIO_BUENO = 10512;
306
    case COIHAIQUE = 11101;
307
    case LAGO_VERDE = 11102;
308
    case AISEN = 11201;
309
    case CISNES = 11202;
310
    case GUAITECAS = 11203;
311
    case COCHRANE = 11301;
312
    case OHIGGINS = 11302;
313
    case TORTEL = 11303;
314
    case CHILE_CHICO = 11401;
315
    case RIO_IBANEZ = 11402;
316
    case PUNTA_ARENAS = 12101;
317
    case LAGUNA_BLANCA = 12102;
318
    case RIO_VERDE = 12103;
319
    case SAN_GREGORIO = 12104;
320
    case CABO_DE_HORNO = 12201;
321
    case ANTARTICA = 12202;
322
    case PORVENIR = 12301;
323
    case PRIMAVERA = 12302;
324
    case TIMAUKEL = 12303;
325
    case NATALES = 12401;
326
    case TORRES_DEL_PAINE = 12402;
327
    case SANTIAGO = 13101;
328
    case CERRILLOS = 13102;
329
    case CERRO_NAVIA = 13103;
330
    case CONCHALI = 13104;
331
    case EL_BOSQUE = 13105;
332
    case ESTACION_CENTRAL = 13106;
333
    case HUECHURABA = 13107;
334
    case INDEPENDENCIA = 13108;
335
    case LA_CISTERNA = 13109;
336
    case LA_FLORIDA = 13110;
337
    case LA_GRANJA = 13111;
338
    case LA_PINTANA = 13112;
339
    case LA_REINA = 13113;
340
    case LAS_CONDES = 13114;
341
    case LO_BARNECHEA = 13115;
342
    case LO_ESPEJO = 13116;
343
    case LO_PRADO = 13117;
344
    case MACUL = 13118;
345
    case MAIPU = 13119;
346
    case NUNOA = 13120;
347
    case PEDRO_AGUIRRE_CERDA = 13121;
348
    case PENALOLEN = 13122;
349
    case PROVIDENCIA = 13123;
350
    case PUDAHUEL = 13124;
351
    case QUILICURA = 13125;
352
    case QUINTA_NORMAL = 13126;
353
    case RECOLETA = 13127;
354
    case RENCA = 13128;
355
    case SAN_JOAQUIN = 13129;
356
    case SAN_MIGUEL = 13130;
357
    case SAN_RAMON = 13131;
358
    case VITACURA = 13132;
359
    case PUENTE_ALTO = 13201;
360
    case PIRQUE = 13202;
361
    case SAN_JOSE_DE_MAIPO = 13203;
362
    case COLINA = 13301;
363
    case LAMPA = 13302;
364
    case TILTIL = 13303;
365
    case SAN_BERNARDO = 13401;
366
    case BUIN = 13402;
367
    case CALERA_DE_TANGO = 13403;
368
    case PAINE = 13404;
369
    case MELIPILLA = 13501;
370
    case ALHUE = 13502;
371
    case CURACAVI = 13503;
372
    case MARIA_PINTO = 13504;
373
    case SAN_PEDRO = 13505;
374
    case TALAGANTE = 13601;
375
    case EL_MONTE = 13602;
376
    case ISLA_DE_MAIPO = 13603;
377
    case PADRE_HURTADO = 13604;
378
    case PENAFLOR = 13605;
379
    case ARICA = 15101;
380
381
    private const GLOSAS = [
382
        self::IQUIQUE->value => 'Iquique',
383
        self::CAMIÑA->value => 'Camiña',
384
        self::COLCHANE->value => 'Colchane',
385
        self::HUARA->value => 'Huara',
386
        self::PICA->value => 'Pica',
387
        self::POZO_ALMONTE->value => 'Pozo Almonte',
388
        self::ALTO_HOSPICIO->value => 'Alto Hospicio',
389
        self::CAMARONES->value => 'Camarones',
390
        self::PUTRE->value => 'Putre',
391
        self::GENERAL_LAGOS->value => 'General Lagos',
392
        self::ANTOFAGASTA->value => 'Antofagasta',
393
        self::MEJILLONES->value => 'Mejillones',
394
        self::SIERRA_GORDA->value => 'Sierra Gorda',
395
        self::TALTAL->value => 'Taltal',
396
        self::MARIA_ELENA->value => 'María Elena',
397
        self::CALAMA->value => 'Calama',
398
        self::OLLAGUE->value => 'Ollagüe',
399
        self::SAN_PEDRO_DE_ATACAMA->value => 'San Pedro de Atacama',
400
        self::TOCOPILLA->value => 'Tocopilla',
401
        self::COPIAPO->value => 'Copiapó',
402
        self::CALDERA->value => 'Caldera',
403
        self::TIERRA_AMARILLA->value => 'Tierra Amarilla',
404
        self::CHAÑARAL->value => 'Chañaral',
405
        self::DIEGO_DE_ALMAGRO->value => 'Diego de Almagro',
406
        self::VALLENAR->value => 'Vallenar',
407
        self::ALTO_DEL_CARMEN->value => 'Alto del Carmen',
408
        self::FREIRINA->value => 'Freirina',
409
        self::HUASCO->value => 'Huasco',
410
        self::LA_SERENA->value => 'La Serena',
411
        self::COQUIMBO->value => 'Coquimbo',
412
        self::ANDACOLLO->value => 'Andacollo',
413
        self::LA_HIGUERA->value => 'La Higuera',
414
        self::PAIHUANO->value => 'Paihuano',
415
        self::VICUÑA->value => 'Vicuña',
416
        self::ILLAPEL->value => 'Illapel',
417
        self::CANELA->value => 'Canela',
418
        self::LOS_VILOS->value => 'Los Vilos',
419
        self::SALAMANCA->value => 'Salamanca',
420
        self::OVALLE->value => 'Ovalle',
421
        self::COMBARBALA->value => 'Combarbalá',
422
        self::MONTE_PATRIA->value => 'Monte Patria',
423
        self::PUNITAQUI->value => 'Punitaqui',
424
        self::RIO_HURTADO->value => 'Río Hurtado',
425
        self::VALPARAISO->value => 'Valparaíso',
426
        self::CASABLANCA->value => 'Casablanca',
427
        self::CONCON->value => 'Concón',
428
        self::JUAN_FERNANDEZ->value => 'Juan Fernández',
429
        self::PUCHUNCAVI->value => 'Puchuncaví',
430
        self::QUILPUE->value => 'Quilpué',
431
        self::QUINTERO->value => 'Quintero',
432
        self::VILLA_ALEMANA->value => 'Villa Alemana',
433
        self::VIÑA_DEL_MAR->value => 'Viña del Mar',
434
        self::ISLA_DE_PASCUA->value => 'Isla de Pascua',
435
        self::LOS_ANDES->value => 'Los Andes',
436
        self::CALLE_LARGA->value => 'Calle Larga',
437
        self::RINCONADA->value => 'Rinconada',
438
        self::SAN_ESTEBAN->value => 'San Esteban',
439
        self::LA_LIGUA->value => 'La Ligua',
440
        self::CABILDO->value => 'Cabildo',
441
        self::PAPUDO->value => 'Papudo',
442
        self::PETORCA->value => 'Petorca',
443
        self::ZAPALLAR->value => 'Zapallar',
444
        self::QUILLOTA->value => 'Quillota',
445
        self::LA_CALERA->value => 'La Calera',
446
        self::HIJUELAS->value => 'Hijuelas',
447
        self::LA_CRUZ->value => 'La Cruz',
448
        self::LIMACHE->value => 'Limache',
449
        self::NOGALES->value => 'Nogales',
450
        self::OLMUE->value => 'Olmué',
451
        self::SAN_ANTONIO->value => 'San Antonio',
452
        self::ALGARROBO->value => 'Algarrobo',
453
        self::CARTAGENA->value => 'Cartagena',
454
        self::EL_QUISCO->value => 'El Quisco',
455
        self::EL_TABO->value => 'El Tabo',
456
        self::SANTO_DOMINGO->value => 'Santo Domingo',
457
        self::SAN_FELIPE->value => 'San Felipe',
458
        self::CATEMU->value => 'Catemu',
459
        self::LLAY_LLAY->value => 'Llay Llay',
460
        self::PANQUEHUE->value => 'Panquehue',
461
        self::PUTAENDO->value => 'Putaendo',
462
        self::SANTA_MARIA->value => 'Santa María',
463
        self::RANCAGUA->value => 'Rancagua',
464
        self::CODEGUA->value => 'Codegua',
465
        self::COINCO->value => 'Coinco',
466
        self::COLTAUCO->value => 'Coltauco',
467
        self::DONIHUE->value => 'Doñihue',
468
        self::GRANEROS->value => 'Graneros',
469
        self::LAS_CABRAS->value => 'Las Cabras',
470
        self::MACHALI->value => 'Machalí',
471
        self::MALLOA->value => 'Malloa',
472
        self::MOSTAZAL->value => 'Mostazal',
473
        self::OLIVAR->value => 'Olivar',
474
        self::PEUMO->value => 'Peumo',
475
        self::PICHIDEGUA->value => 'Pichidegua',
476
        self::QUINTA_DE_TILCOCO->value => 'Quinta de Tilcoco',
477
        self::RENGO->value => 'Rengo',
478
        self::REQUINOA->value => 'Requínoa',
479
        self::SAN_VICENTE->value => 'San Vicente',
480
        self::PICHILEMU->value => 'Pichilemu',
481
        self::LA_ESTRELLA->value => 'La Estrella',
482
        self::LITUECHE->value => 'Litueche',
483
        self::MARCHIGUE->value => 'Marchigüe',
484
        self::NAVIDAD->value => 'Navidad',
485
        self::PAREDONES->value => 'Paredones',
486
        self::SAN_FERNANDO->value => 'San Fernando',
487
        self::CHEPICA->value => 'Chépica',
488
        self::CHIMBARONGO->value => 'Chimbarongo',
489
        self::LOLOL->value => 'Lolol',
490
        self::NANCAGUA->value => 'Nancagua',
491
        self::PALMILLA->value => 'Palmilla',
492
        self::PERALILLO->value => 'Peralillo',
493
        self::PLACILLA->value => 'Placilla',
494
        self::PUMANQUE->value => 'Pumanque',
495
        self::SANTA_CRUZ->value => 'Santa Cruz',
496
        self::TALCA->value => 'Talca',
497
        self::CONSTITUCION->value => 'Constitución',
498
        self::CUREPTO->value => 'Curepto',
499
        self::EMPEDRADO->value => 'Empedrado',
500
        self::MAULE->value => 'Maule',
501
        self::PELARCO->value => 'Pelarco',
502
        self::PENCAHUE->value => 'Pencahue',
503
        self::RIO_CLARO->value => 'Río Claro',
504
        self::SAN_CLEMENTE->value => 'San Clemente',
505
        self::SAN_RAFAEL->value => 'San Rafael',
506
        self::CAUQUENES->value => 'Cauquenes',
507
        self::CHANCO->value => 'Chanco',
508
        self::PELLUHUE->value => 'Pelluhue',
509
        self::CURICO->value => 'Curicó',
510
        self::HUALAÑE->value => 'Hualañé',
511
        self::LICANTEN->value => 'Licantén',
512
        self::MOLINA->value => 'Molina',
513
        self::RAUCO->value => 'Rauco',
514
        self::ROMERAL->value => 'Romeral',
515
        self::SAGRADA_FAMILIA->value => 'Sagrada Familia',
516
        self::TENO->value => 'Teno',
517
        self::VICUQUEN->value => 'Vichuquén',
518
        self::LINARES->value => 'Linares',
519
        self::COLBUN->value => 'Colbún',
520
        self::LONGAVI->value => 'Longaví',
521
        self::PARRAL->value => 'Parral',
522
        self::RETIRO->value => 'Retiro',
523
        self::SAN_JAVIER->value => 'San Javier',
524
        self::VILLA_ALEGRE->value => 'Villa Alegre',
525
        self::YERBAS_BUENAS->value => 'Yerbas Buenas',
526
        self::CONCEPCION->value => 'Concepción',
527
        self::CORONEL->value => 'Coronel',
528
        self::CHIGUAYANTE->value => 'Chiguayante',
529
        self::FLORIDA->value => 'Florida',
530
        self::HUALQUI->value => 'Hualqui',
531
        self::LOTA->value => 'Lota',
532
        self::PENCO->value => 'Penco',
533
        self::SAN_PEDRO_DE_LA_PAZ->value => 'San Pedro de La Paz',
534
        self::SANTA_JUANA->value => 'Santa Juana',
535
        self::TALCAHUANO->value => 'Talcahuano',
536
        self::TOME->value => 'Tomé',
537
        self::LEBU->value => 'Lebu',
538
        self::ARAUCO->value => 'Arauco',
539
        self::CAÑETE->value => 'Cañete',
540
        self::CONTULMO->value => 'Contulmo',
541
        self::CURANILAHUE->value => 'Curanilahue',
542
        self::LOS_ALAMOS->value => 'Los Álamos',
543
        self::TIRUA->value => 'Tirúa',
544
        self::HUALPEN->value => 'Hualpén',
545
        self::LOS_ANGELES->value => 'Los Ángeles',
546
        self::ANTUCO->value => 'Antuco',
547
        self::CABRERO->value => 'Cabrero',
548
        self::LAJA->value => 'Laja',
549
        self::MULCHEN->value => 'Mulchén',
550
        self::NACIMIENTO->value => 'Nacimiento',
551
        self::NEGRETE->value => 'Negrete',
552
        self::QUILACO->value => 'Quilaco',
553
        self::QUILLECO->value => 'Quilleco',
554
        self::SAN_ROSENDO->value => 'San Rosendo',
555
        self::SANTA_BARBARA->value => 'Santa Bárbara',
556
        self::TUCAPEL->value => 'Tucapel',
557
        self::YUMBEL->value => 'Yumbel',
558
        self::ALTO_BIO_BIO->value => 'Alto Bio Bio',
559
        self::CHILLAN->value => 'Chillán',
560
        self::BULNES->value => 'Bulnes',
561
        self::COBQUECURA->value => 'Cobquecura',
562
        self::COELEMU->value => 'Coelemu',
563
        self::COIHUECO->value => 'Coihueco',
564
        self::CHILLAN_VIEJO->value => 'Chillán Viejo',
565
        self::EL_CARMEN->value => 'El Carmen',
566
        self::NINHUE->value => 'Ninhue',
567
        self::NIQUEN->value => 'Ñiquén',
568
        self::PEMUCO->value => 'Pemuco',
569
        self::PINTO->value => 'Pinto',
570
        self::PORTEZUELO->value => 'Portezuelo',
571
        self::QUILLON->value => 'Quillón',
572
        self::QUIRIHUE->value => 'Quirihue',
573
        self::RANQUIL->value => 'Ránquil',
574
        self::SAN_CARLOS->value => 'San Carlos',
575
        self::SAN_FABIAN->value => 'San Fabián',
576
        self::SAN_IGNACIO->value => 'San Ignacio',
577
        self::SAN_NICOLAS->value => 'San Nicolás',
578
        self::TREGUACO->value => 'Treguaco',
579
        self::YUNGAY->value => 'Yungay',
580
        self::TEMUCO->value => 'Temuco',
581
        self::CARAHUE->value => 'Carahue',
582
        self::CUNCO->value => 'Cunco',
583
        self::CURARREHUE->value => 'Curarrehue',
584
        self::FREIRE->value => 'Freire',
585
        self::GALVARINO->value => 'Galvarino',
586
        self::GORBEA->value => 'Gorbea',
587
        self::LAUTARO->value => 'Lautaro',
588
        self::LONCOCHE->value => 'Loncoche',
589
        self::MELIPEUCO->value => 'Melipeuco',
590
        self::NUEVA_IMPERIAL->value => 'Nueva Imperial',
591
        self::PADRE_LAS_CASAS->value => 'Padre Las Casas',
592
        self::PERQUENCO->value => 'Perquenco',
593
        self::PITRUFQUEN->value => 'Pitrufquén',
594
        self::PUCON->value => 'Pucón',
595
        self::SAAVEDRA->value => 'Saavedra',
596
        self::TEODORO_SCHMIDT->value => 'Teodoro Schmidt',
597
        self::TOLTEN->value => 'Toltén',
598
        self::VILCUN->value => 'Vilcún',
599
        self::VILLARRICA->value => 'Villarrica',
600
        self::CHOLCHOL->value => 'Cholchol',
601
        self::ANGOL->value => 'Angol',
602
        self::COLLIPULLI->value => 'Collipulli',
603
        self::CURACAUTIN->value => 'Curacautín',
604
        self::ERCILLA->value => 'Ercilla',
605
        self::LONQUIMAY->value => 'Lonquimay',
606
        self::LOS_SAUCES->value => 'Los Sauces',
607
        self::LUMACO->value => 'Lumaco',
608
        self::PUREN->value => 'Purén',
609
        self::RENAICO->value => 'Renaico',
610
        self::TRAIGUEN->value => 'Traiguén',
611
        self::VICTORIA->value => 'Victoria',
612
        self::PUERTO_MONTT->value => 'Puerto Montt',
613
        self::CALBUCO->value => 'Calbuco',
614
        self::COCHAMO->value => 'Cochamó',
615
        self::FRESIA->value => 'Fresia',
616
        self::FRUTILLAR->value => 'Frutillar',
617
        self::LOS_MUERMO->value => 'Los Muermos',
618
        self::LLANQUIHUE->value => 'Llanquihue',
619
        self::MAULLIN->value => 'Maullín',
620
        self::PUERTO_VARAS->value => 'Puerto Varas',
621
        self::CASTRO->value => 'Castro',
622
        self::ANCUD->value => 'Ancud',
623
        self::CHONCHI->value => 'Chonchi',
624
        self::CURACO_DE_VELEZ->value => 'Curaco De Vélez',
625
        self::DALCAHUE->value => 'Dalcahue',
626
        self::PUQUELDON->value => 'Puqueldón',
627
        self::QUEILEN->value => 'Queilén',
628
        self::QUELLON->value => 'Quellón',
629
        self::QUEMCHI->value => 'Quemchi',
630
        self::QUINCHAO->value => 'Quinchao',
631
        self::OSORNO->value => 'Osorno',
632
        self::PUERTO_OCTAY->value => 'Puerto Octay',
633
        self::PURRANQUE->value => 'Purranque',
634
        self::PUYEHUE->value => 'Puyehue',
635
        self::RIO_NEGRO->value => 'Río Negro',
636
        self::SAN_JUAN_DE_LA_COSTA->value => 'San Juan De La Costa',
637
        self::SAN_PABLO->value => 'San Pablo',
638
        self::CHAITE->value => 'Chaitén',
639
        self::FUTALEUFU->value => 'Futaleufú',
640
        self::HUALAIHUE->value => 'Hualaihué',
641
        self::PALENA->value => 'Palena',
642
        self::VALDIVIA->value => 'Valdivia',
643
        self::CORRAL->value => 'Corral',
644
        self::FUTRONO->value => 'Futrono',
645
        self::LA_UNION->value => 'La Unión',
646
        self::LAGO_RANCO->value => 'Lago Ranco',
647
        self::LANCO->value => 'Lanco',
648
        self::LOS_LAGOS->value => 'Los Lagos',
649
        self::MAFIL->value => 'Máfil',
650
        self::MARIQUINA->value => 'Mariquina',
651
        self::PAILLACO->value => 'Paillaco',
652
        self::PANGUIPULLI->value => 'Panguipulli',
653
        self::RIO_BUENO->value => 'Río Bueno',
654
        self::COIHAIQUE->value => 'Coihaique',
655
        self::LAGO_VERDE->value => 'Lago Verde',
656
        self::AISEN->value => 'Aisén',
657
        self::CISNES->value => 'Cisnes',
658
        self::GUAITECAS->value => 'Guaitecas',
659
        self::COCHRANE->value => 'Cochrane',
660
        self::OHIGGINS->value => "O'Higgins",
661
        self::TORTEL->value => 'Tortel',
662
        self::CHILE_CHICO->value => 'Chile Chico',
663
        self::RIO_IBANEZ->value => 'Río Ibáñez',
664
        self::PUNTA_ARENAS->value => 'Punta Arenas',
665
        self::LAGUNA_BLANCA->value => 'Laguna Blanca',
666
        self::RIO_VERDE->value => 'Río Verde',
667
        self::SAN_GREGORIO->value => 'San Gregorio',
668
        self::CABO_DE_HORNO->value => 'Cabo De Horno',
669
        self::ANTARTICA->value => 'Antártica',
670
        self::PORVENIR->value => 'Porvenir',
671
        self::PRIMAVERA->value => 'Primavera',
672
        self::TIMAUKEL->value => 'Timaukel',
673
        self::NATALES->value => 'Natales',
674
        self::TORRES_DEL_PAINE->value => 'Torres Del Paine',
675
        self::SANTIAGO->value => 'Santiago',
676
        self::CERRILLOS->value => 'Cerrillos',
677
        self::CERRO_NAVIA->value => 'Cerro Navia',
678
        self::CONCHALI->value => 'Conchalí',
679
        self::EL_BOSQUE->value => 'El Bosque',
680
        self::ESTACION_CENTRAL->value => 'Estación Central',
681
        self::HUECHURABA->value => 'Huechuraba',
682
        self::INDEPENDENCIA->value => 'Independencia',
683
        self::LA_CISTERNA->value => 'La Cisterna',
684
        self::LA_FLORIDA->value => 'La Florida',
685
        self::LA_GRANJA->value => 'La Granja',
686
        self::LA_PINTANA->value => 'La Pintana',
687
        self::LA_REINA->value => 'La Reina',
688
        self::LAS_CONDES->value => 'Las Condes',
689
        self::LO_BARNECHEA->value => 'Lo Barnechea',
690
        self::LO_ESPEJO->value => 'Lo Espejo',
691
        self::LO_PRADO->value => 'Lo Prado',
692
        self::MACUL->value => 'Macul',
693
        self::MAIPU->value => 'Maipú',
694
        self::NUNOA->value => 'Ñuñoa',
695
        self::PEDRO_AGUIRRE_CERDA->value => 'Pedro Aguirre Cerda',
696
        self::PENALOLEN->value => 'Peñalolén',
697
        self::PROVIDENCIA->value => 'Providencia',
698
        self::PUDAHUEL->value => 'Pudahuel',
699
        self::QUILICURA->value => 'Quilicura',
700
        self::QUINTA_NORMAL->value => 'Quinta Normal',
701
        self::RECOLETA->value => 'Recoleta',
702
        self::RENCA->value => 'Renca',
703
        self::SAN_JOAQUIN->value => 'San Joaquín',
704
        self::SAN_MIGUEL->value => 'San Miguel',
705
        self::SAN_RAMON->value => 'San Ramón',
706
        self::VITACURA->value => 'Vitacura',
707
        self::PUENTE_ALTO->value => 'Puente Alto',
708
        self::PIRQUE->value => 'Pirque',
709
        self::SAN_JOSE_DE_MAIPO->value => 'San José De Maipo',
710
        self::COLINA->value => 'Colina',
711
        self::LAMPA->value => 'Lampa',
712
        self::TILTIL->value => 'Tiltil',
713
        self::SAN_BERNARDO->value => 'San Bernardo',
714
        self::BUIN->value => 'Buin',
715
        self::CALERA_DE_TANGO->value => 'Calera De Tango',
716
        self::PAINE->value => 'Paine',
717
        self::MELIPILLA->value => 'Melipilla',
718
        self::ALHUE->value => 'Alhué',
719
        self::CURACAVI->value => 'Curacaví',
720
        self::MARIA_PINTO->value => 'María Pinto',
721
        self::SAN_PEDRO->value => 'San Pedro',
722
        self::TALAGANTE->value => 'Talagante',
723
        self::EL_MONTE->value => 'El Monte',
724
        self::ISLA_DE_MAIPO->value => 'Isla de Maipo',
725
        self::PADRE_HURTADO->value => 'Padre Hurtado',
726
        self::PENAFLOR->value => 'Peñaflor',
727
        self::ARICA->value => 'Arica',
728
    ];
729
730
    /**
731
     * Entrega el código de la comuna normalizado a 5 dígitos.
732
     *
733
     * @return string
734
     */
735
    public function getCodigo(): string
736
    {
737
        return $this->value < 10000
738
            ? '0' . $this->value
739
            : (string) $this->value
740
        ;
741
    }
742
743
    /**
744
     * Obtiene la glosa asociada a una comuna.
745
     *
746
     * @return string
747
     */
748
    public function getGlosa(): string
749
    {
750
        return self::GLOSAS[$this->value];
0 ignored issues
show
Bug introduced by
The constant Derafu\Lib\Core\Enum\Cl\Comuna::GLOSAS was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
751
    }
752
753
    /**
754
     * Obtiene el nombre de la comuna.
755
     *
756
     * @return string
757
     */
758
    public function getNombre(): string
759
    {
760
        return $this->getGlosa();
761
    }
762
763
    /**
764
     * Entrega la región a la que pertenece la comuna.
765
     *
766
     * Los 2 primeros dígitos del código normalizado de la comuna
767
     * corresponden al código normalizado de la región.
768
     *
769
     * @return Region
770
     */
771
    public function getRegion(): Region
772
    {
773
        $regionCode = (int) substr($this->getCodigo(), 0, 2);
774
        $region = Region::tryFrom($regionCode);
775
776
        if ($region === null) {
777
            throw new RuntimeException(sprintf(
778
                'No se encontró la región para la comuna %s.',
779
                $this->getNombre()
780
            ));
781
        }
782
783
        return $region;
784
    }
785
786
    /**
787
     * Entrega la provincia a la que pertenece la comuna.
788
     *
789
     * Los 3 primeros dígitos del código normalizado de la comuna
790
     * corresponden al código normalizado de la provincia.
791
     *
792
     * @return Provincia
793
     */
794
    public function getProvincia(): Provincia
795
    {
796
        $provinciaCode = (int) substr($this->getCodigo(), 0, 3);
797
        $provincia = Provincia::tryFrom($provinciaCode);
798
799
        if ($provincia === null) {
800
            throw new RuntimeException(sprintf(
801
                'No se encontró la provincia para la comuna %s.',
802
                $this->getNombre()
803
            ));
804
        }
805
806
        return $provincia;
807
    }
808
}
809