package cz.moneta.test.dsl.wso2.objects.smallbusiness;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.util.List;

@AllArgsConstructor
@NoArgsConstructor
@Builder
@Data
@EqualsAndHashCode(callSuper = false)
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
public class GetCurrentAccountResponse {
    @JsonProperty("AAAdresat")
    private String aaAdresat;

    @JsonProperty("AACO")
    private String aaco;

    @JsonProperty("AACP")
    private String aacp;

    @JsonProperty("AACtvrt")
    private String aaCtvrt;

    @JsonProperty("AAObec")
    private String aaObec;

    @JsonProperty("AAPSC")
    private String aaPsc;

    @JsonProperty("AAPosta")
    private String aaPosta;

    @JsonProperty("AAUlice")
    private String aaUlice;

    @JsonProperty("AAZeme")
    private String aaZeme;

    @JsonProperty("BeznyZustatek")
    private Double beznyZustatek;

    @JsonProperty("CisloUctu")
    private String cisloUctu;

    @JsonProperty("DanZUroku")
    private Double danZUroku;

    @JsonProperty("DatumDalsihoVypisu")
    private String datumDalsihoVypisu;

    @JsonProperty("DatumOtevreni")
    private String datumOtevreni;

    @JsonProperty("DatumOtevreniRamce")
    private String datumOtevreniRamce;

    @JsonProperty("DatumPosledniAktivity")
    private String datumPosledniAktivity;

    @JsonProperty("DatumPosledniVklad")
    private String datumPosledniVklad;

    @JsonProperty("DatumPoslednihoVypisu")
    private String datumPoslednihoVypisu;

    @JsonProperty("DisponibilniZustatek")
    private Double disponibilniZustatek;

    @JsonProperty("DisponibilniZustatekZitra")
    private Double disponibilniZustatekZitra;

    @JsonProperty("DistribuceVypisu")
    private String distribuceVypisu;

    @JsonProperty("DruheJmeno")
    private String druheJmeno;

    @JsonProperty("FlexiBusTyp")
    private String flexiBusTyp;

    @JsonProperty("IndexUrokoveSazby")
    private Long indexUrokoveSazby;

    @JsonProperty("InformativniZustatek")
    private Double informativniZustatek;

    @JsonProperty("Jmeno")
    private String jmeno;

    @JsonProperty("KlasifikaceUctu")
    private String klasifikaceUctu;

    @JsonProperty("KonecnyZustatek")
    private Double konecnyZustatek;

    @JsonProperty("Mena")
    private String mena;

    @JsonProperty("MenaKod")
    private Long menaKod;

    @JsonProperty("MesicniObratyCR")
    private Double mesicniObratyCR;

    @JsonProperty("MesicniObratyDB")
    private Double mesicniObratyDB;

    @JsonProperty("MinimalniKreditnizustatek")
    private Double minimalniKreditnizustatek;

    @JsonProperty("ObchodniJmeno")
    private String obchodniJmeno;

    @JsonProperty("ObchodniMistoKod")
    private String obchodniMistoKod;

    @JsonProperty("ObjektUveru")
    private String objektUveru;

    @JsonProperty("PausalniPoplatek")
    private Double pausalniPoplatek;

    @JsonProperty("PausalniPoplatekKTK")
    private Double pausalniPoplatekKTK;

    @JsonProperty("PausalniPoplatekPocetMesicuZdarma")
    private Long pausalniPoplatekPocetMesicuZdarma;

    @JsonProperty("PeriodaVypisu")
    private String periodaVypisu;

    @JsonProperty("PoplatkovyPlan")
    private String poplatkovyPlan;

    @JsonProperty("PoplatkovyPlanTisk")
    private String poplatkovyPlanTisk;

    @JsonProperty("PoplatkovyPlanMatersky")
    private String poplatkovyPlanMatersky;

    @JsonProperty("PoplatkovyPlanPuvodni")
    private String poplatkovyPlanPuvodni;

    @JsonProperty("PoplatkovyPlan_Sleva")
    private Long poplatkovyPlan_Sleva;

    @JsonProperty("PostovniPoukazka")
    private String postovniPoukazka;

    @JsonProperty("PouzitaAA")
    private String pouzitaAA;

    @JsonProperty("Prijmeni")
    private String prijmeni;

    @JsonProperty("ProduktKod")
    private String produktKod;

    @JsonProperty("ProduktKodBU")
    private String produktKodBU;

    @JsonProperty("ProduktKodStary")
    private String produktKodStary;

    @JsonProperty("RamecExistuje")
    private String ramecExistuje;

    @JsonProperty("RocniObratyCR")
    private Double rocniObratyCR;

    @JsonProperty("RocniObratyDB")
    private Double rocniObratyDB;

    @JsonProperty("SankcniUrok")
    private Double sankcniUrok;

    @JsonProperty("SchvalenyLimitKontokorentu")
    private Double schvalenyLimitKontokorentu;

    @JsonProperty("SdruzUcetPoplatky")
    private String sdruzUcetPoplatky;

    @JsonProperty("SdruzUcetUroky")
    private String sdruzUcetUroky;

    @JsonProperty("ServisniPoplatek")
    private Double servisniPoplatek;

    @JsonProperty("SplatnyUrok")
    private Double splatnyUrok;

    @JsonProperty("SpravaNavazanehoUURemedialem")
    private String spravaNavazanehoUURemedialem;

    @JsonProperty("StavUctu")
    private String stavUctu;

    @JsonProperty("TitulPred")
    private String titulPred;

    @JsonProperty("TitulZa")
    private String titulZa;

    @JsonProperty("TrU_DatumPozadavkuNaZruseni")
    private String trU_DatumPozadavkuNaZruseni;

    @JsonProperty("TrU_DatumVerifZruseniTransp")
    private String trU_DatumVerifZruseniTransp;

    @JsonProperty("TrU_DatumVerifikaceTransp")
    private String trU_DatumVerifikaceTransp;

    @JsonProperty("TrU_DatumVytvoreni")
    private String trU_DatumVytvoreni;

    @JsonProperty("TrU_KodKategorie")
    private String trU_KodKategorie;

    @JsonProperty("TrU_KodMeny")
    private String trU_KodMeny;

    @JsonProperty("TrU_StatusTransparentnosti")
    private String trU_StatusTransparentnosti;

    @JsonProperty("TrU_UrednikPozadujiciZruseni")
    private String trU_UrednikPozadujiciZruseni;

    @JsonProperty("TrU_VerifUrednikZruseniTransp")
    private String trU_VerifUrednikZruseniTransp;

    @JsonProperty("TrU_VerifikovatUrednikem")
    private String trU_VerifikovatUrednikem;

    @JsonProperty("TrU_VytvorilUrednik")
    private String trU_VytvorilUrednik;

    @JsonProperty("TrU_ZkraceneJmeno")
    private String trU_ZkraceneJmeno;

    @JsonProperty("TransakceNavic")
    private String transakceNavic;

    @JsonProperty("UrokZaCerpaniKontokorentu")
    private Double urokZaCerpaniKontokorentu;

    @JsonProperty("UrokovaSazba")
    private Double urokovaSazba;

    @JsonProperty("VypisNaKonciMesice")
    private Boolean vypisNaKonciMesice;

    @JsonProperty("VypisyFrekvence")
    private String vypisyFrekvence;

    @JsonProperty("VypisySpecifickeDatum")
    private Long vypisySpecifickeDatum;

    @JsonProperty("VysePoslednihoVkladu")
    private Double vysePoslednihoVkladu;

    @JsonProperty("ZpracovaneDatumZustatku")
    private String zpracovaneDatumZustatku;

    @JsonProperty("ZpusobPripisu")
    private String zpusobPripisu;

    @JsonProperty("JeSrazkovaDan")
    private Long jeSrazkovaDan;

    @JsonProperty("VyseSrazkovaDan")
    private Double vyseSrazkovaDan;

    @JsonProperty("Data")
    private List<Data> data;

    @JsonProperty("REGISTRATION_IDP")
    private String registrationIdp;

    @JsonProperty("REGISTRATION_CIF")
    private String registrationCif;

    @JsonProperty("REGISTRATION_PHONE_NUMBER")
    private String registrationPhoneNumber;

    @JsonProperty("REGISTRATION_ACCOUNT_NUMBER")
    private String registrationAccountNumber;

    @JsonProperty("REGISTRATION_ACCOUNT_NAME")
    private String registrationAccountName;

    @JsonProperty("REGISTRATION_STATE")
    private String registrationState;

    @JsonProperty("REGISTRATION_IS_ACTIVE")
    private Boolean registrationIsActive;

    @JsonProperty("REGISTRATION_CREATED")
    private String registrationCreated;

    @JsonProperty("REGISTRATION_UPDATED")
    private String registrationUpdated;

    @JsonProperty("REGISTRATION_CANCELLATION")
    private Boolean registrationCancellation;

    @JsonProperty("REGISTRATION_CANCELLATION_CREATED")
    private String registrationCancellationCreated;

    @JsonProperty("REGISTRATION_CANCELLATION_DATE")
    private String registrationCancellationDate;

    @AllArgsConstructor
    @NoArgsConstructor
    @Builder
    @lombok.Data
    @EqualsAndHashCode(callSuper = false)
    @ToString
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class Data {
        @JsonProperty("CisloUctu")
        private String cisloUctu;
    }
}
