package cz.moneta.test.dsl.util.data.generators;

import cz.moneta.test.dsl.util.data.client.Address;
import cz.moneta.test.dsl.util.data.client.Employer;
import cz.moneta.test.harness.context.StoreAccessor;
import cz.moneta.test.harness.support.data.Generator;

import java.util.concurrent.ThreadLocalRandom;

public class EmployerGenerator implements Generator<Employer> {

    private static final Employer[] EMPLOYERS = new Employer[]{
            new Employer("Ministerstvo spravedlnosti", "00025429", Address.builder().street("Vyšehradská").descriptiveNumber("427").orientationNumber("16").city("Praha").zip("12000").country("CZ").build(), "221997111"),
            // new Employer("Ministerstvo dopravy", "66003008", Address.builder().street("nábřeží Ludvíka Svobody").descriptiveNumber("1222").orientationNumber("12").city("Praha").zip("11000").country("CZ").build(), "225131111"), // TODO: DFM-23097
            new Employer("Ministerstvo zdravotnictví", "00024341", Address.builder().street("Palackého náměstí").descriptiveNumber("375").orientationNumber("4").city("Praha").zip("12000").country("CZ").build(), "224971111"),
            new Employer("Ministerstvo zemědělství", "00020478", Address.builder().street("Těšnov").descriptiveNumber("65").orientationNumber("17").city("Praha").zip("11000").country("CZ").build(), "221811111"),
            new Employer("Ministerstvo financí", "00006947", Address.builder().street("Letenská").descriptiveNumber("525").orientationNumber("15").city("Praha").zip("11000").country("CZ").build(), "225092392"),
            new Employer("Ministerstvo obrany", "60162694", Address.builder().street("Tychonova").descriptiveNumber("221").orientationNumber("1").city("Praha").zip("16000").country("CZ").build(), "224252524"),
            new Employer("Ministerstvo vnitra", "00007064", Address.builder().street("Nad štolou").descriptiveNumber("936").orientationNumber("3").city("Praha").zip("17000").country("CZ").build(), "224252524"),
            new Employer("Ministerstvo kultury", "00023671", Address.builder().street("Maltézské náměstí").descriptiveNumber("471").orientationNumber("1").city("Praha").zip("11000").country("CZ").build(), "257085111"),
            new Employer("Ministerstvo zahraničních věcí", "45769851", Address.builder().street("Loretánské náměstí").descriptiveNumber("101").orientationNumber("5").city("Praha").zip("11000").country("CZ").build(), "224181111"),
            new Employer("Ministerstvo životního prostředí", "00164801", Address.builder().street("Vršovická").descriptiveNumber("1442").orientationNumber("65").city("Praha").zip("10000").country("CZ").build(), "267121111"),
            new Employer("Ministerstvo průmyslu a obchodu", "47609109", Address.builder().street("Na Františku").descriptiveNumber("1039").orientationNumber("32").city("Praha").zip("11000").country("CZ").build(), "224851111"),
            // new Employer("Ministerstvo pro místní rozvoj", "66002222", Address.builder().street("Staroměstské náměstí").descriptiveNumber("932").orientationNumber("6").city("Praha").zip("11000").country("CZ").build(), "224861138"), // TODO: DFM-23097
            new Employer("Ministerstvo školství", "00022985", Address.builder().street("Karmelitská").descriptiveNumber("427").orientationNumber("5").city("Praha").zip("11000").country("CZ").build(), "234811111"),
            new Employer("Ministerstvo práce a sociálních věcí", "00551023", Address.builder().street("Na Poříčním právu").descriptiveNumber("376").orientationNumber("1").city("Praha").zip("12000").country("CZ").build(), "221921111"),
            new Employer("Zařízení služeb pro Ministerstvo vnitra", "67779999", Address.builder().street("Přípotoční").descriptiveNumber("300").orientationNumber("12").city("Praha").zip("10000").country("CZ").build(), "224252524")
    };

    @Override
    public Employer generate(StoreAccessor harness, Object... params) {
        return EMPLOYERS[ThreadLocalRandom.current().nextInt(EMPLOYERS.length)];
    }
}
