const regions = [
  {
    name: " Sarajevo",
    id: "sarajevo",
    olxid: "9",
    municipalities: [
      {
        name: "Hadžići",
        id: "hadii",
        olxid: "3817"
      },
      {
        name: "Ilidža",
        id: "ilida",
        olxid: "3879"
      },
      {
        name: "Ilijaš",
        id: "ilija",
        olxid: "3892"
      },
      {
        name: "Sarajevo - Centar",
        id: "sarajevocentar",
        olxid: "3812"
      },
      {
        name: "Sarajevo-Novi Grad",
        id: "sarajevonovigrad",
        olxid: "3969"
      },
      {
        name: "Sarajevo-Novo Sarajevo",
        id: "sarajevonovosarajevo",
        olxid: "5896"
      },
      {
        name: "Sarajevo-Stari Grad",
        id: "sarajevostarigrad",
        olxid: "4048"
      },
      {
        name: "Trnovo",
        id: "trnovo",
        olxid: "4063"
      },
      {
        name: "Vogošća",
        id: "vogoa",
        olxid: "4126"
      }
    ]
  },
  {
    name: " Unsko-sanski",
    id: "unskosanski",
    olxid: "1",
    municipalities: [
      {
        name: "Bihać",
        id: "biha",
        olxid: "75"
      },
      {
        name: "Bosanska Krupa",
        id: "bosanskakrupa",
        olxid: "373"
      },
      {
        name: "Bosanski Petrovac",
        id: "bosanskipetrovac",
        olxid: "504"
      },
      {
        name: "Bužim",
        id: "buim",
        olxid: "374"
      },
      {
        name: "Cazin",
        id: "cazin",
        olxid: "857"
      },
      {
        name: "Ključ",
        id: "klju",
        olxid: "2362"
      },
      {
        name: "Sanski Most",
        id: "sanskimost",
        olxid: "3738"
      },
      {
        name: "Velika Kladuša",
        id: "velikakladua",
        olxid: "5122"
      }
    ]
  },
  {
    name: " Posavski",
    id: "posavski",
    olxid: "2",
    municipalities: [
      {
        name: "Domaljevac",
        id: "domaljevac",
        olxid: "6144"
      },
      {
        name: "Odžak",
        id: "odak",
        olxid: "424"
      },
      {
        name: "Orašje",
        id: "oraje",
        olxid: "3252"
      },
      {
        name: "Šamac",
        id: "amac",
        olxid: "540"
      }
    ]
  },
  {
    name: " Tuzlanski",
    id: "tuzlanski",
    olxid: "3",
    municipalities: [
      {
        name: "Banovići",
        id: "banovii",
        olxid: "2"
      },
      {
        name: "Doboj-Istok",
        id: "dobojistok",
        olxid: "1090"
      },
      {
        name: "Gradačac",
        id: "gradaac",
        olxid: "1854"
      },
      {
        name: "Gračanica",
        id: "graanica",
        olxid: "1826"
      },
      {
        name: "Kalesija",
        id: "kalesija",
        olxid: "2129"
      },
      {
        name: "Kladanj",
        id: "kladanj",
        olxid: "2319"
      },
      {
        name: "Lukavac",
        id: "lukavac",
        olxid: "2840"
      },
      {
        name: "Sapna",
        id: "sapna",
        olxid: "5699"
      },
      {
        name: "Srebrenik",
        id: "srebrenik",
        olxid: "4391"
      },
      {
        name: "Teočak",
        id: "teoak",
        olxid: "5010"
      },
      {
        name: "Tuzla",
        id: "tuzla",
        olxid: "4944"
      },
      {
        name: "Čelić",
        id: "eli",
        olxid: "2801"
      },
      {
        name: "Živinice",
        id: "ivinice",
        olxid: "5774"
      }
    ]
  },
  {
    name: " Zeničko-dobojski",
    id: "zenickodobojski",
    olxid: "4",
    municipalities: [
      {
        name: "Breza",
        id: "breza",
        olxid: "704"
      },
      {
        name: "Doboj-Jug",
        id: "dobojjug",
        olxid: "1122"
      },
      {
        name: "Kakanj",
        id: "kakanj",
        olxid: "2022"
      },
      {
        name: "Maglaj",
        id: "maglaj",
        olxid: "2941"
      },
      {
        name: "Olovo",
        id: "olovo",
        olxid: "1925"
      },
      {
        name: "Tešanj",
        id: "teanj",
        olxid: "4594"
      },
      {
        name: "Usora",
        id: "usora",
        olxid: "1087"
      },
      {
        name: "Vareš",
        id: "vare",
        olxid: "5037"
      },
      {
        name: "Visoko",
        id: "visoko",
        olxid: "5171"
      },
      {
        name: "Zavidovići",
        id: "zavidovii",
        olxid: "5548"
      },
      {
        name: "Zenica",
        id: "zenica",
        olxid: "4571"
      },
      {
        name: "Žepče",
        id: "epe",
        olxid: "2940"
      }
    ]
  },
  {
    name: " Bosansko-podrinjski",
    id: "bosanskopodrinjski",
    olxid: "5",
    municipalities: [
      {
        name: "Foča",
        id: "foa",
        olxid: "1289"
      },
      {
        name: "Goražde",
        id: "gorade",
        olxid: "1588"
      },
      {
        name: "Pale",
        id: "pale",
        olxid: "3546"
      }
    ]
  },
  {
    name: " Srednjobosanski",
    id: "srednjobosanski",
    olxid: "6",
    municipalities: [
      {
        name: "Bugojno",
        id: "bugojno",
        olxid: "732"
      },
      {
        name: "Busovača",
        id: "busovaa",
        olxid: "810"
      },
      {
        name: "Dobretići",
        id: "dobretii",
        olxid: "4151"
      },
      {
        name: "Donji Vakuf",
        id: "donjivakuf",
        olxid: "1160"
      },
      {
        name: "Fojnica",
        id: "fojnica",
        olxid: "1407"
      },
      {
        name: "Gornji Vakuf - Uskoplje",
        id: "gornjivakufuskoplje",
        olxid: "1775"
      },
      {
        name: "Jajce",
        id: "jajce",
        olxid: "1960"
      },
      {
        name: "Kiseljak",
        id: "kiseljak",
        olxid: "2237"
      },
      {
        name: "Kreševo",
        id: "kreevo",
        olxid: "2608"
      },
      {
        name: "Novi Travnik",
        id: "novitravnik",
        olxid: "3477"
      },
      {
        name: "Travnik",
        id: "travnik",
        olxid: "4678"
      },
      {
        name: "Vitez",
        id: "vitez",
        olxid: "5422"
      }
    ]
  },
  {
    name: " Hercegovačko-neretvanski",
    id: "hercegovackoneretvanski",
    olxid: "7",
    municipalities: [
      {
        name: "Grad Mostar",
        id: "gradmostar",
        olxid: "3017"
      },
      {
        name: "Jablanica",
        id: "jablanica",
        olxid: "1930"
      },
      {
        name: "Konjic",
        id: "konjic",
        olxid: "2169"
      },
      {
        name: "Neum",
        id: "neum",
        olxid: "3111"
      },
      {
        name: "Prozor",
        id: "prozor",
        olxid: "3421"
      },
      {
        name: "Ravno",
        id: "ravno",
        olxid: "4769"
      },
      {
        name: "Stolac",
        id: "stolac",
        olxid: "4439"
      },
      {
        name: "Čapljina",
        id: "apljina",
        olxid: "947"
      },
      {
        name: "Čitluk",
        id: "itluk",
        olxid: "1009"
      }
    ]
  },
  {
    name: " Zapadno-hercegovački",
    id: "zapadnohercegovacki",
    olxid: "8",
    municipalities: [
      {
        name: "Grude",
        id: "grude",
        olxid: "1892"
      },
      {
        name: "Ljubuški",
        id: "ljubuki",
        olxid: "2905"
      },
      {
        name: "Posušje",
        id: "posuje",
        olxid: "3268"
      },
      {
        name: "Široki Brijeg",
        id: "irokibrijeg",
        olxid: "2708"
      }
    ]
  },
  {
    name: " Livanjski",
    id: "livanjski",
    olxid: "10",
    municipalities: [
      {
        name: "Bosansko Grahovo",
        id: "bosanskograhovo",
        olxid: "560"
      },
      {
        name: "Drvar",
        id: "drvar",
        olxid: "4640"
      },
      {
        name: "Glamoč",
        id: "glamo",
        olxid: "1533"
      },
      {
        name: "Kupres",
        id: "kupres",
        olxid: "2635"
      },
      {
        name: "Livno",
        id: "livno",
        olxid: "2741"
      },
      {
        name: "Tomislavgrad",
        id: "tomislavgrad",
        olxid: "1228"
      }
    ]
  },
  {
    name: " Banjalučka",
    id: "banjalučka",
    olxid: "14",
    municipalities: [
      {
        name: "Banja Luka",
        id: "banjaluka",
        olxid: "21"
      },
      {
        name: "Gradiška",
        id: "gradika",
        olxid: "305"
      },
      {
        name: "Istočni Drvar",
        id: "istonidrvar",
        olxid: "4662"
      },
      {
        name: "Jezero",
        id: "jezero",
        olxid: "1965"
      },
      {
        name: "Kneževo",
        id: "kneevo",
        olxid: "4147"
      },
      {
        name: "Kostajnica",
        id: "kostajnica",
        olxid: "6142"
      },
      {
        name: "Kotor Varoš",
        id: "kotorvaro",
        olxid: "2574"
      },
      {
        name: "Kozarska Dubica",
        id: "kozarskadubica",
        olxid: "244"
      },
      {
        name: "Krupa na uni",
        id: "krupanauni",
        olxid: "382"
      },
      {
        name: "Kupres ",
        id: "kupres",
        olxid: "2654"
      },
      {
        name: "Laktaši",
        id: "laktai",
        olxid: "2671"
      },
      {
        name: "Mrkonjić Grad",
        id: "mrkonjigrad",
        olxid: "3073"
      },
      {
        name: "Novi Grad",
        id: "novigrad",
        olxid: "444"
      },
      {
        name: "Oštra Luka",
        id: "otraluka",
        olxid: "3737"
      },
      {
        name: "Petrovac",
        id: "petrovac",
        olxid: "515"
      },
      {
        name: "Prijedor",
        id: "prijedor",
        olxid: "3287"
      },
      {
        name: "Prnjavor",
        id: "prnjavor",
        olxid: "3358"
      },
      {
        name: "Ribnik",
        id: "ribnik",
        olxid: "2365"
      },
      {
        name: "Srbac",
        id: "srbac",
        olxid: "4271"
      },
      {
        name: "Čelinac",
        id: "elinac",
        olxid: "979"
      },
      {
        name: "Šipovo",
        id: "ipovo",
        olxid: "4509"
      }
    ]
  },
  {
    name: " Dobojsko-Bijeljinska",
    id: "dobojskobijeljinska",
    olxid: "15",
    municipalities: [
      {
        name: "Bijeljina",
        id: "bijeljina",
        olxid: "123"
      },
      {
        name: "Bosanski Brod",
        id: "bosanskibrod",
        olxid: "421"
      },
      {
        name: "Derventa",
        id: "derventa",
        olxid: "1030"
      },
      {
        name: "Doboj",
        id: "doboj",
        olxid: "1088"
      },
      {
        name: "Donji Žabar",
        id: "donjiabar",
        olxid: "3254"
      },
      {
        name: "Lopare",
        id: "lopare",
        olxid: "2800"
      },
      {
        name: "Lukavac",
        id: "lukavac",
        olxid: "6029"
      },
      {
        name: "Modriča",
        id: "modria",
        olxid: "2996"
      },
      {
        name: "Pelagićevo",
        id: "pelagievo",
        olxid: "1856"
      },
      {
        name: "Petrovo",
        id: "petrovo",
        olxid: "1827"
      },
      {
        name: "Stanari",
        id: "stanari",
        olxid: "1148"
      },
      {
        name: "Teslić",
        id: "tesli",
        olxid: "4549"
      },
      {
        name: "Tešanj",
        id: "teanj",
        olxid: "4636"
      },
      {
        name: "Travnik",
        id: "travnik",
        olxid: "4692"
      },
      {
        name: "Tuzla",
        id: "tuzla",
        olxid: "4966"
      },
      {
        name: "Ugljevik",
        id: "ugljevik",
        olxid: "5009"
      },
      {
        name: "Vukosavlje",
        id: "vukosavlje",
        olxid: "3197"
      },
      {
        name: "Šamac",
        id: "amac",
        olxid: "539"
      }
    ]
  },
  {
    name: " Sarajevsko-Zvornička",
    id: "sarajevskozvornicka",
    olxid: "16",
    municipalities: [
      {
        name: "Bratunac",
        id: "bratunac",
        olxid: "595"
      },
      {
        name: "Han Pijesak",
        id: "hanpijesak",
        olxid: "1904"
      },
      {
        name: "Ilijaš",
        id: "ilija",
        olxid: "3947"
      },
      {
        name: "Istočni Stari Grad",
        id: "istonistarigrad",
        olxid: "4049"
      },
      {
        name: "Kasindo",
        id: "kasindo",
        olxid: "3880"
      },
      {
        name: "Kladanj",
        id: "kladanj",
        olxid: "2325"
      },
      {
        name: "Lukavica",
        id: "lukavica",
        olxid: "3971"
      },
      {
        name: "Milići",
        id: "milii",
        olxid: "6143"
      },
      {
        name: "Olovo",
        id: "olovo",
        olxid: "3221"
      },
      {
        name: "Osmaci",
        id: "osmaci",
        olxid: "2128"
      },
      {
        name: "Pale",
        id: "pale",
        olxid: "3978"
      },
      {
        name: "Rogatica",
        id: "rogatica",
        olxid: "3529"
      },
      {
        name: "Rudo",
        id: "rudo",
        olxid: "3648"
      },
      {
        name: "Sarajevo-Novi Grad",
        id: "sarajevonovigrad",
        olxid: "6069"
      },
      {
        name: "Sokolac",
        id: "sokolac",
        olxid: "4183"
      },
      {
        name: "Srebrenica",
        id: "srebrenica",
        olxid: "4310"
      },
      {
        name: "Trnovo",
        id: "trnovo",
        olxid: "4067"
      },
      {
        name: "Ustiprača",
        id: "ustipraa",
        olxid: "1593"
      },
      {
        name: "Višegrad",
        id: "viegrad",
        olxid: "5259"
      },
      {
        name: "Vlasenica",
        id: "vlasenica",
        olxid: "5456"
      },
      {
        name: "Zvornik",
        id: "zvornik",
        olxid: "5684"
      },
      {
        name: "Šekovići",
        id: "ekovii",
        olxid: "4475"
      },
      {
        name: "Žepa",
        id: "epa",
        olxid: "1906"
      }
    ]
  },
  {
    name: " Trebinjsko-Fočanska",
    id: "trebinjskofocanska",
    olxid: "17",
    municipalities: [
      {
        name: "Berkovići",
        id: "berkovii",
        olxid: "4441"
      },
      {
        name: "Bileća",
        id: "bilea",
        olxid: "183"
      },
      {
        name: "Foča",
        id: "foa",
        olxid: "1287"
      },
      {
        name: "Gacko",
        id: "gacko",
        olxid: "1462"
      },
      {
        name: "Istočni Mostar",
        id: "istonimostar",
        olxid: "3038"
      },
      {
        name: "Kalinovik",
        id: "kalinovik",
        olxid: "2164"
      },
      {
        name: "Ljubinje",
        id: "ljubinje",
        olxid: "2884"
      },
      {
        name: "Nevesinje",
        id: "nevesinje",
        olxid: "3138"
      },
      {
        name: "Trebinje",
        id: "trebinje",
        olxid: "4766"
      },
      {
        name: "Čajniče",
        id: "ajnie",
        olxid: "911"
      }
    ]
  },
  {
    name: "Distrikt Brčko",
    id: "distriktbrcko",
    olxid: "12",
    municipalities: [
      {
        name: "Brčko",
        id: "brko",
        olxid: "645"
      }
    ]
  }
];

const getRegions = () => {
  return regions.map(g => ({ name: g.name, id: g.id, olxid: g.olxid }));
};

const getRegion = regionId => {
  return regions.find(region => region.id === regionId);
};

const getRegionName = regionId => {
  const region = getRegion(regionId);
  return region && region.name ? region.name : null;
};

const getMunicipalitiesForRegion = regionId => {
  const region = getRegion(regionId);
  return region && region.municipalities ? region.municipalities : null;
};

const getMunicipality = (regionId, municipalityId) => {
  const region = getRegion(regionId);
  if (!region) {
    return null;
  }

  const municipality = region.municipalities.find(
    municipality => municipality.id === municipalityId
  );
  if (!municipality) {
    return null;
  }

  return municipality;
};

const getMunicipalityName = (regionId, municipalityId) => {
  const region = getRegion(regionId);
  if (!region) {
    return null;
  }

  const municipality = region.municipalities.find(
    municipality => municipality.id === municipalityId
  );
  if (!municipality) {
    return null;
  }

  return municipality.name;
};

module.exports = {
  getRegion,
  getRegions,
  getRegionName,
  getMunicipalitiesForRegion,
  getMunicipalityName,
  getMunicipality
};
