/** * Official Bahia municipality name → IBGE 7-digit code (codarea) mapping. * * Source (IBGE Localidades API v1 — municípios da UF BA; accessed 2026-07-19): * https://servicodados.ibge.gov.br/api/v1/localidades/estados/29/municipios * Download SHA-256: ee2524f732a80d234f129b2e26a90f9bc080a52844a01e5359e789c613d7ee4f * * Mesh provenance (IBGE Malhas API v3 — qualidade intermediaria; accessed 2026-07-19): * https://servicodados.ibge.gov.br/api/v3/malhas/estados/29?formato=application/vnd.geo+json&intrarregiao=municipio&qualidade=intermediaria * Download SHA-256: 909017a4f91e7950cea123d2601a53b64c70acdb2b256548be25ca9e703cc572 * * Municipality spellings follow the canonical application names in bahiaTerritories. * IBGE variants (Araçás, Iuiu, Muquém do São Francisco, Santa Terezinha) were * reconciled via canonicalizeMunicipalityName. Coverage is independently checked * by the official test evidence fixture. */ import { isBahiaMunicipality } from '@/lib/bahiaTerritories' export const bahiaMunicipalityCodes: Readonly> = { "Abaíra": "2900108", "Abaré": "2900207", "Acajutiba": "2900306", "Adustina": "2900355", "Água Fria": "2900405", "Aiquara": "2900603", "Alagoinhas": "2900702", "Alcobaça": "2900801", "Almadina": "2900900", "Amargosa": "2901007", "Amélia Rodrigues": "2901106", "América Dourada": "2901155", "Anagé": "2901205", "Andaraí": "2901304", "Andorinha": "2901353", "Angical": "2901403", "Anguera": "2901502", "Antas": "2901601", "Antônio Cardoso": "2901700", "Antônio Gonçalves": "2901809", "Aporá": "2901908", "Apuarema": "2901957", "Araças": "2902054", "Aracatu": "2902005", "Araci": "2902104", "Aramari": "2902203", "Arataca": "2902252", "Aratuípe": "2902302", "Aurelino Leal": "2902401", "Baianópolis": "2902500", "Baixa Grande": "2902609", "Banzaê": "2902658", "Barra": "2902708", "Barra da Estiva": "2902807", "Barra do Choça": "2902906", "Barra do Mendes": "2903003", "Barra do Rocha": "2903102", "Barreiras": "2903201", "Barro Alto": "2903235", "Barro Preto": "2903300", "Barrocas": "2903276", "Belmonte": "2903409", "Belo Campo": "2903508", "Biritinga": "2903607", "Boa Nova": "2903706", "Boa Vista do Tupim": "2903805", "Bom Jesus da Lapa": "2903904", "Bom Jesus da Serra": "2903953", "Boninal": "2904001", "Bonito": "2904050", "Boquira": "2904100", "Botuporã": "2904209", "Brejões": "2904308", "Brejolândia": "2904407", "Brotas de Macaúbas": "2904506", "Brumado": "2904605", "Buerarema": "2904704", "Buritirama": "2904753", "Caatiba": "2904803", "Cabaceiras do Paraguaçu": "2904852", "Cachoeira": "2904902", "Caculé": "2905008", "Caém": "2905107", "Caetanos": "2905156", "Caetité": "2905206", "Cafarnaum": "2905305", "Cairu": "2905404", "Caldeirão Grande": "2905503", "Camacan": "2905602", "Camaçari": "2905701", "Camamu": "2905800", "Campo Alegre de Lourdes": "2905909", "Campo Formoso": "2906006", "Canápolis": "2906105", "Canarana": "2906204", "Canavieiras": "2906303", "Candeal": "2906402", "Candeias": "2906501", "Candiba": "2906600", "Cândido Sales": "2906709", "Cansanção": "2906808", "Canudos": "2906824", "Capela do Alto Alegre": "2906857", "Capim Grosso": "2906873", "Caraíbas": "2906899", "Caravelas": "2906907", "Cardeal da Silva": "2907004", "Carinhanha": "2907103", "Casa Nova": "2907202", "Castro Alves": "2907301", "Catolândia": "2907400", "Catu": "2907509", "Caturama": "2907558", "Central": "2907608", "Chorrochó": "2907707", "Cícero Dantas": "2907806", "Cipó": "2907905", "Coaraci": "2908002", "Cocos": "2908101", "Conceição da Feira": "2908200", "Conceição do Almeida": "2908309", "Conceição do Coité": "2908408", "Conceição do Jacuípe": "2908507", "Conde": "2908606", "Condeúba": "2908705", "Contendas do Sincorá": "2908804", "Coração de Maria": "2908903", "Cordeiros": "2909000", "Coribe": "2909109", "Coronel João Sá": "2909208", "Correntina": "2909307", "Cotegipe": "2909406", "Cravolândia": "2909505", "Crisópolis": "2909604", "Cristópolis": "2909703", "Cruz das Almas": "2909802", "Curaçá": "2909901", "Dário Meira": "2910008", "Dias d'Ávila": "2910057", "Dom Basílio": "2910107", "Dom Macedo Costa": "2910206", "Elísio Medrado": "2910305", "Encruzilhada": "2910404", "Entre Rios": "2910503", "Érico Cardoso": "2900504", "Esplanada": "2910602", "Euclides da Cunha": "2910701", "Eunápolis": "2910727", "Fátima": "2910750", "Feira da Mata": "2910776", "Feira de Santana": "2910800", "Filadélfia": "2910859", "Firmino Alves": "2910909", "Floresta Azul": "2911006", "Formosa do Rio Preto": "2911105", "Gandu": "2911204", "Gavião": "2911253", "Gentio do Ouro": "2911303", "Glória": "2911402", "Gongogi": "2911501", "Governador Mangabeira": "2911600", "Guajeru": "2911659", "Guanambi": "2911709", "Guaratinga": "2911808", "Heliópolis": "2911857", "Iaçu": "2911907", "Ibiassucê": "2912004", "Ibicaraí": "2912103", "Ibicoara": "2912202", "Ibicuí": "2912301", "Ibipeba": "2912400", "Ibipitanga": "2912509", "Ibiquera": "2912608", "Ibirapitanga": "2912707", "Ibirapuã": "2912806", "Ibirataia": "2912905", "Ibitiara": "2913002", "Ibititá": "2913101", "Ibotirama": "2913200", "Ichu": "2913309", "Igaporã": "2913408", "Igrapiúna": "2913457", "Iguaí": "2913507", "Ilhéus": "2913606", "Inhambupe": "2913705", "Ipecaetá": "2913804", "Ipiaú": "2913903", "Ipirá": "2914000", "Ipupiara": "2914109", "Irajuba": "2914208", "Iramaia": "2914307", "Iraquara": "2914406", "Irará": "2914505", "Irecê": "2914604", "Itabela": "2914653", "Itaberaba": "2914703", "Itabuna": "2914802", "Itacaré": "2914901", "Itaeté": "2915007", "Itagi": "2915106", "Itagibá": "2915205", "Itagimirim": "2915304", "Itaguaçu da Bahia": "2915353", "Itaju do Colônia": "2915403", "Itajuípe": "2915502", "Itamaraju": "2915601", "Itamari": "2915700", "Itambé": "2915809", "Itanagra": "2915908", "Itanhém": "2916005", "Itaparica": "2916104", "Itapé": "2916203", "Itapebi": "2916302", "Itapetinga": "2916401", "Itapicuru": "2916500", "Itapitanga": "2916609", "Itaquara": "2916708", "Itarantim": "2916807", "Itatim": "2916856", "Itiruçu": "2916906", "Itiúba": "2917003", "Itororó": "2917102", "Ituaçu": "2917201", "Ituberá": "2917300", "Iuiú": "2917334", "Jaborandi": "2917359", "Jacaraci": "2917409", "Jacobina": "2917508", "Jaguaquara": "2917607", "Jaguarari": "2917706", "Jaguaripe": "2917805", "Jandaíra": "2917904", "Jequié": "2918001", "Jeremoabo": "2918100", "Jiquiriçá": "2918209", "Jitaúna": "2918308", "João Dourado": "2918357", "Juazeiro": "2918407", "Jucuruçu": "2918456", "Jussara": "2918506", "Jussari": "2918555", "Jussiape": "2918605", "Lafaiete Coutinho": "2918704", "Lagoa Real": "2918753", "Laje": "2918803", "Lajedão": "2918902", "Lajedinho": "2919009", "Lajedo do Tabocal": "2919058", "Lamarão": "2919108", "Lapão": "2919157", "Lauro de Freitas": "2919207", "Lençóis": "2919306", "Licínio de Almeida": "2919405", "Livramento de Nossa Senhora": "2919504", "Luís Eduardo Magalhães": "2919553", "Macajuba": "2919603", "Macarani": "2919702", "Macaúbas": "2919801", "Macururé": "2919900", "Madre de Deus": "2919926", "Maetinga": "2919959", "Maiquinique": "2920007", "Mairi": "2920106", "Malhada": "2920205", "Malhada de Pedras": "2920304", "Manoel Vitorino": "2920403", "Mansidão": "2920452", "Maracás": "2920502", "Maragogipe": "2920601", "Maraú": "2920700", "Marcionílio Souza": "2920809", "Mascote": "2920908", "Mata de São João": "2921005", "Matina": "2921054", "Medeiros Neto": "2921104", "Miguel Calmon": "2921203", "Milagres": "2921302", "Mirangaba": "2921401", "Mirante": "2921450", "Monte Santo": "2921500", "Morpará": "2921609", "Morro do Chapéu": "2921708", "Mortugaba": "2921807", "Mucugê": "2921906", "Mucuri": "2922003", "Mulungu do Morro": "2922052", "Mundo Novo": "2922102", "Muniz Ferreira": "2922201", "Muquém de São Francisco": "2922250", "Muritiba": "2922300", "Mutuípe": "2922409", "Nazaré": "2922508", "Nilo Peçanha": "2922607", "Nordestina": "2922656", "Nova Canaã": "2922706", "Nova Fátima": "2922730", "Nova Ibiá": "2922755", "Nova Itarana": "2922805", "Nova Redenção": "2922854", "Nova Soure": "2922904", "Nova Viçosa": "2923001", "Novo Horizonte": "2923035", "Novo Triunfo": "2923050", "Olindina": "2923100", "Oliveira dos Brejinhos": "2923209", "Ouriçangas": "2923308", "Ourolândia": "2923357", "Palmas de Monte Alto": "2923407", "Palmeiras": "2923506", "Paramirim": "2923605", "Paratinga": "2923704", "Paripiranga": "2923803", "Pau Brasil": "2923902", "Paulo Afonso": "2924009", "Pé de Serra": "2924058", "Pedrão": "2924108", "Pedro Alexandre": "2924207", "Piatã": "2924306", "Pilão Arcado": "2924405", "Pindaí": "2924504", "Pindobaçu": "2924603", "Pintadas": "2924652", "Piraí do Norte": "2924678", "Piripá": "2924702", "Piritiba": "2924801", "Planaltino": "2924900", "Planalto": "2925006", "Poções": "2925105", "Pojuca": "2925204", "Ponto Novo": "2925253", "Porto Seguro": "2925303", "Potiraguá": "2925402", "Prado": "2925501", "Presidente Dutra": "2925600", "Presidente Jânio Quadros": "2925709", "Presidente Tancredo Neves": "2925758", "Queimadas": "2925808", "Quijingue": "2925907", "Quixabeira": "2925931", "Rafael Jambeiro": "2925956", "Remanso": "2926004", "Retirolândia": "2926103", "Riachão das Neves": "2926202", "Riachão do Jacuípe": "2926301", "Riacho de Santana": "2926400", "Ribeira do Amparo": "2926509", "Ribeira do Pombal": "2926608", "Ribeirão do Largo": "2926657", "Rio de Contas": "2926707", "Rio do Antônio": "2926806", "Rio do Pires": "2926905", "Rio Real": "2927002", "Rodelas": "2927101", "Ruy Barbosa": "2927200", "Salinas da Margarida": "2927309", "Salvador": "2927408", "Santa Bárbara": "2927507", "Santa Brígida": "2927606", "Santa Cruz Cabrália": "2927705", "Santa Cruz da Vitória": "2927804", "Santa Inês": "2927903", "Santa Luzia": "2928059", "Santa Maria da Vitória": "2928109", "Santa Rita de Cássia": "2928406", "Santa Teresinha": "2928505", "Santaluz": "2928000", "Santana": "2928208", "Santanópolis": "2928307", "Santo Amaro": "2928604", "Santo Antônio de Jesus": "2928703", "Santo Estêvão": "2928802", "São Desidério": "2928901", "São Domingos": "2928950", "São Felipe": "2929107", "São Félix": "2929008", "São Félix do Coribe": "2929057", "São Francisco do Conde": "2929206", "São Gabriel": "2929255", "São Gonçalo dos Campos": "2929305", "São José da Vitória": "2929354", "São José do Jacuípe": "2929370", "São Miguel das Matas": "2929404", "São Sebastião do Passé": "2929503", "Sapeaçu": "2929602", "Sátiro Dias": "2929701", "Saubara": "2929750", "Saúde": "2929800", "Seabra": "2929909", "Sebastião Laranjeiras": "2930006", "Senhor do Bonfim": "2930105", "Sento Sé": "2930204", "Serra do Ramalho": "2930154", "Serra Dourada": "2930303", "Serra Preta": "2930402", "Serrinha": "2930501", "Serrolândia": "2930600", "Simões Filho": "2930709", "Sítio do Mato": "2930758", "Sítio do Quinto": "2930766", "Sobradinho": "2930774", "Souto Soares": "2930808", "Tabocas do Brejo Velho": "2930907", "Tanhaçu": "2931004", "Tanque Novo": "2931053", "Tanquinho": "2931103", "Taperoá": "2931202", "Tapiramutá": "2931301", "Teixeira de Freitas": "2931350", "Teodoro Sampaio": "2931400", "Teofilândia": "2931509", "Teolândia": "2931608", "Terra Nova": "2931707", "Tremedal": "2931806", "Tucano": "2931905", "Uauá": "2932002", "Ubaíra": "2932101", "Ubaitaba": "2932200", "Ubatã": "2932309", "Uibaí": "2932408", "Umburanas": "2932457", "Una": "2932507", "Urandi": "2932606", "Uruçuca": "2932705", "Utinga": "2932804", "Valença": "2932903", "Valente": "2933000", "Várzea da Roça": "2933059", "Várzea do Poço": "2933109", "Várzea Nova": "2933158", "Varzedo": "2933174", "Vera Cruz": "2933208", "Vereda": "2933257", "Vitória da Conquista": "2933307", "Wagner": "2933406", "Wanderley": "2933455", "Wenceslau Guimarães": "2933505", "Xique-Xique": "2933604", } export const codeForMunicipality = (name: string): string | undefined => { if (!isBahiaMunicipality(name)) return undefined return bahiaMunicipalityCodes[name] } const municipalityByCode = new Map( Object.entries(bahiaMunicipalityCodes).map(([name, code]) => [code, name]), ) export const municipalityForCode = (codarea: string): string | undefined => municipalityByCode.get(codarea)