package fr.titionfire.ffsaf.rest.data;

import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.Data;

import java.util.ArrayList;
import java.util.Date;

@Data
@RegisterForReflection
public class UniteLegaleRoot {
    public UniteLegale unite_legale;

    @Data
    @RegisterForReflection
    public static class UniteLegale {
        public String activite_principale;
        public Object annee_categorie_entreprise;
        public Object annee_effectifs;
        public Object caractere_employeur;
        public Object categorie_entreprise;
        public String categorie_juridique;
        public String date_creation;
        public String date_debut;
        public Date date_dernier_traitement;
        public String denomination;
        public Object denomination_usuelle_1;
        public Object denomination_usuelle_2;
        public Object denomination_usuelle_3;
        public String economie_sociale_solidaire;
        public Etablissement etablissement_siege;
        public ArrayList<Etablissement> etablissements;
        public String etat_administratif;
        public String identifiant_association;
        public String nic_siege;
        public String nom;
        public String nom_usage;
        public int nombre_periodes;
        public String nomenclature_activite_principale;
        public Object prenom_1;
        public Object prenom_2;
        public Object prenom_3;
        public Object prenom_4;
        public Object prenom_usuel;
        public Object pseudonyme;
        public Object sexe;
        public Object sigle;
        public String siren;
        public String societe_mission;
        public String statut_diffusion;
        public Object tranche_effectifs;
        public Object unite_purgee;
    }

    @Data
    @RegisterForReflection
    public static class Etablissement {
        private String activite_principale;
        private Object activite_principale_registre_metiers;
        private Object annee_effectifs;
        private String caractere_employeur;
        private Object code_cedex;
        private Object code_cedex_2;
        private String code_commune;
        private Object code_commune_2;
        private Object code_pays_etranger;
        private Object code_pays_etranger_2;
        private String code_postal;
        private Object code_postal_2;
        private String complement_adresse;
        private Object complement_adresse2;
        private String date_creation;
        private String date_debut;
        private Date date_dernier_traitement;
        private Object denomination_usuelle;
        private Object distribution_speciale;
        private Object distribution_speciale_2;
        private Object enseigne_1;
        private Object enseigne_2;
        private Object enseigne_3;
        private boolean etablissement_siege;
        private String etat_administratif;
        private Object indice_repetition;
        private Object indice_repetition_2;
        private Object libelle_cedex;
        private Object libelle_cedex_2;
        private String libelle_commune;
        private Object libelle_commune_2;
        private Object libelle_commune_etranger;
        private Object libelle_commune_etranger_2;
        private Object libelle_pays_etranger;
        private Object libelle_pays_etranger_2;
        private String libelle_voie;
        private Object libelle_voie_2;
        private String nic;
        private int nombre_periodes;
        private String nomenclature_activite_principale;
        private String numero_voie;
        private Object numero_voie_2;
        private String siren;
        private String siret;
        private String statut_diffusion;
        private Object tranche_effectifs;
        private String type_voie;
        private Object type_voie_2;
    }
}