import enum from datetime import date from typing import List from sqlalchemy import Boolean, Date, Enum, ForeignKey, Integer, String from sqlalchemy.orm import mapped_column, Mapped, relationship from nupes.models import Base, Region, Departement, Commune, Circonscription class BlocLegislatives2022(Base): __tablename__ = "legislatives_2022_bloc" id: Mapped[int] = mapped_column(primary_key=True) nom: Mapped[str] = mapped_column(String(32), unique=True) couleur: Mapped[str] = mapped_column(String(7)) candidats: Mapped[List["CandidatLegislatives2022"]] = relationship("CandidatLegislatives2022", back_populates="bloc") nuances: Mapped[List["NuanceLegislatives2022"]] = relationship( "NuanceLegislatives2022", back_populates="bloc") class NuanceLegislatives2022(Base): __tablename__ = "legislatives_2022_nuance" code: Mapped[str] = mapped_column(String(8), primary_key=True) nom: Mapped[str] = mapped_column(String(64), unique=True) couleur: Mapped[str] = mapped_column(String(7)) bloc_id: Mapped[int] = mapped_column(ForeignKey("legislatives_2022_bloc.id")) bloc: Mapped[BlocLegislatives2022] = relationship(BlocLegislatives2022, back_populates="nuances") candidats: Mapped[List["CandidatLegislatives2022"]] = relationship( "CandidatLegislatives2022", back_populates="nuance") resultats_nationaux: Mapped[List["VoixFranceLegislatives2022"]] = relationship( "VoixFranceLegislatives2022", back_populates="nuance") resultats_par_region: Mapped[List["VoixRegionLegislatives2022"]] = relationship( "VoixRegionLegislatives2022", back_populates="nuance") resultats_par_departement: Mapped[List["VoixDepartementLegislatives2022"]] = relationship( "VoixDepartementLegislatives2022", back_populates="nuance") resultats_par_commune: Mapped[List["VoixCommuneLegislatives2022"]] = relationship( "VoixCommuneLegislatives2022", back_populates="nuance") class CandidatLegislatives2022(Base): class Genre(enum.Enum): MASCULIN = "M" FEMININ = "F" __tablename__ = "legislatives_2022_candidat" id: Mapped[int] = mapped_column(primary_key=True) circonscription_id: Mapped[str] = mapped_column(ForeignKey("circonscription.id")) numero: Mapped[int] = mapped_column(Integer()) nuance_id: Mapped[str] = mapped_column(ForeignKey("legislatives_2022_nuance.code")) bloc_id: Mapped[int] = mapped_column(ForeignKey("legislatives_2022_bloc.id")) nom: Mapped[str] = mapped_column(String(256)) prenom: Mapped[str] = mapped_column(String(256)) sexe: Mapped[str] = mapped_column(Enum(Genre)) date_naissance: Mapped[date] = mapped_column(Date()) profession: Mapped[str] = mapped_column(String(256)) sortant: Mapped[bool] = mapped_column(Boolean()) nom_suppleance: Mapped[str] = mapped_column(String(256)) prenom_suppleance: Mapped[str] = mapped_column(String(256)) sexe_suppleance: Mapped[str] = mapped_column(Enum(Genre)) date_naissance_suppleance: Mapped[date] = mapped_column(Date()) sortant_suppleance: Mapped[bool] = mapped_column(Boolean()) circonscription: Mapped[Circonscription] = relationship( "Circonscription", back_populates="candidats_legislatives_2022") nuance: Mapped[NuanceLegislatives2022] = relationship(NuanceLegislatives2022, back_populates="candidats") bloc: Mapped[BlocLegislatives2022] = relationship(BlocLegislatives2022, back_populates="candidats") resultats_par_circonscription: Mapped[List["VoixCirconscriptionLegislatives2022"]] = relationship( "VoixCirconscriptionLegislatives2022", back_populates="candidat") resultats_par_bureau_vote: Mapped[List["VoixBureauVoteLegislatives2022"]] = relationship( "VoixBureauVoteLegislatives2022", back_populates="candidat") class ResultatsFranceLegislatives2022(Base): __tablename__ = "legislatives_2022_resultats_france" id: Mapped[int] = mapped_column(primary_key=True) inscrits_t1: Mapped[int] = mapped_column(Integer(), default=0) votants_t1: Mapped[int] = mapped_column(Integer(), default=0) abstentions_t1: Mapped[int] = mapped_column(Integer(), default=0) exprimes_t1: Mapped[int] = mapped_column(Integer(), default=0) blancs_t1: Mapped[int] = mapped_column(Integer(), default=0) nuls_t1: Mapped[int] = mapped_column(Integer(), default=0) inscrits_t2: Mapped[int] = mapped_column(Integer(), default=0) votants_t2: Mapped[int] = mapped_column(Integer(), default=0) abstentions_t2: Mapped[int] = mapped_column(Integer(), default=0) exprimes_t2: Mapped[int] = mapped_column(Integer(), default=0) blancs_t2: Mapped[int] = mapped_column(Integer(), default=0) nuls_t2: Mapped[int] = mapped_column(Integer(), default=0) resultats_regions: Mapped[List["ResultatsRegionLegislatives2022"]] = relationship( "ResultatsRegionLegislatives2022", back_populates="resultats_france") voix: Mapped[List["VoixFranceLegislatives2022"]] = relationship( "VoixFranceLegislatives2022", back_populates="resultats_france") class ResultatsRegionLegislatives2022(Base): __tablename__ = "legislatives_2022_resultats_region" id: Mapped[int] = mapped_column(primary_key=True) region_id: Mapped[str] = mapped_column(ForeignKey("region.code_insee")) resultats_france_id: Mapped[int] = mapped_column(ForeignKey("legislatives_2022_resultats_france.id")) inscrits_t1: Mapped[int] = mapped_column(Integer(), default=0) votants_t1: Mapped[int] = mapped_column(Integer(), default=0) abstentions_t1: Mapped[int] = mapped_column(Integer(), default=0) exprimes_t1: Mapped[int] = mapped_column(Integer(), default=0) blancs_t1: Mapped[int] = mapped_column(Integer(), default=0) nuls_t1: Mapped[int] = mapped_column(Integer(), default=0) inscrits_t2: Mapped[int] = mapped_column(Integer(), default=0) votants_t2: Mapped[int] = mapped_column(Integer(), default=0) abstentions_t2: Mapped[int] = mapped_column(Integer(), default=0) exprimes_t2: Mapped[int] = mapped_column(Integer(), default=0) blancs_t2: Mapped[int] = mapped_column(Integer(), default=0) nuls_t2: Mapped[int] = mapped_column(Integer(), default=0) region = relationship(Region, back_populates="resultats_legislatives_2022") resultats_france = relationship(ResultatsFranceLegislatives2022, back_populates="resultats_regions") resultats_departements: Mapped[List["ResultatsDepartementLegislatives2022"]] = relationship( "ResultatsDepartementLegislatives2022", back_populates="resultats_region") voix: Mapped[List["VoixRegionLegislatives2022"]] = relationship( "VoixRegionLegislatives2022", back_populates="resultats_region") class ResultatsDepartementLegislatives2022(Base): __tablename__ = "legislatives_2022_resultats_departement" id: Mapped[int] = mapped_column(primary_key=True) dpt_id: Mapped[str] = mapped_column(ForeignKey("departement.code_insee")) resultats_region_id: Mapped[int] = mapped_column(ForeignKey("legislatives_2022_resultats_region.id"), nullable=True) inscrits_t1: Mapped[int] = mapped_column(Integer(), default=0) votants_t1: Mapped[int] = mapped_column(Integer(), default=0) abstentions_t1: Mapped[int] = mapped_column(Integer(), default=0) exprimes_t1: Mapped[int] = mapped_column(Integer(), default=0) blancs_t1: Mapped[int] = mapped_column(Integer(), default=0) nuls_t1: Mapped[int] = mapped_column(Integer(), default=0) inscrits_t2: Mapped[int] = mapped_column(Integer(), default=0) votants_t2: Mapped[int] = mapped_column(Integer(), default=0) abstentions_t2: Mapped[int] = mapped_column(Integer(), default=0) exprimes_t2: Mapped[int] = mapped_column(Integer(), default=0) blancs_t2: Mapped[int] = mapped_column(Integer(), default=0) nuls_t2: Mapped[int] = mapped_column(Integer(), default=0) departement = relationship(Departement, back_populates="resultats_legislatives_2022") resultats_region = relationship(ResultatsRegionLegislatives2022, back_populates="resultats_departements") resultats_communes: Mapped[List["ResultatsCommuneLegislatives2022"]] = relationship( "ResultatsCommuneLegislatives2022", back_populates="resultats_departement") resultats_circonscriptions: Mapped[List["ResultatsCirconscriptionLegislatives2022"]] = relationship( "ResultatsCirconscriptionLegislatives2022", back_populates="resultats_departement") voix: Mapped[List["VoixDepartementLegislatives2022"]] = relationship( "VoixDepartementLegislatives2022", back_populates="resultats_departement") class ResultatsCirconscriptionLegislatives2022(Base): __tablename__ = "legislatives_2022_resultats_circonscription" id: Mapped[int] = mapped_column(primary_key=True) circo_id: Mapped[str] = mapped_column(ForeignKey("circonscription.id")) resultats_departement_id: Mapped[int] = mapped_column(ForeignKey("legislatives_2022_resultats_departement.id")) inscrits_t1: Mapped[int] = mapped_column(Integer(), default=0) votants_t1: Mapped[int] = mapped_column(Integer(), default=0) abstentions_t1: Mapped[int] = mapped_column(Integer(), default=0) exprimes_t1: Mapped[int] = mapped_column(Integer(), default=0) blancs_t1: Mapped[int] = mapped_column(Integer(), default=0) nuls_t1: Mapped[int] = mapped_column(Integer(), default=0) inscrits_t2: Mapped[int] = mapped_column(Integer(), default=0) votants_t2: Mapped[int] = mapped_column(Integer(), default=0) abstentions_t2: Mapped[int] = mapped_column(Integer(), default=0) exprimes_t2: Mapped[int] = mapped_column(Integer(), default=0) blancs_t2: Mapped[int] = mapped_column(Integer(), default=0) nuls_t2: Mapped[int] = mapped_column(Integer(), default=0) circonscription = relationship("Circonscription", back_populates="resultats_legislatives_2022") resultats_departement = relationship(ResultatsDepartementLegislatives2022, back_populates="resultats_circonscriptions") resultats_bureaux_vote: Mapped[List["ResultatsBureauVoteLegislatives2022"]] = relationship( "ResultatsBureauVoteLegislatives2022", back_populates="resultats_circonscription") voix: Mapped[List["VoixCirconscriptionLegislatives2022"]] = relationship( "VoixCirconscriptionLegislatives2022", back_populates="resultats_circonscription") class ResultatsCommuneLegislatives2022(Base): __tablename__ = "legislatives_2022_resultats_commune" id: Mapped[int] = mapped_column(primary_key=True) commune_id: Mapped[str] = mapped_column(ForeignKey("commune.code_insee")) resultats_dpt_id: Mapped[int] = mapped_column(ForeignKey("legislatives_2022_resultats_departement.id")) inscrits_t1: Mapped[int] = mapped_column(Integer(), default=0) votants_t1: Mapped[int] = mapped_column(Integer(), default=0) abstentions_t1: Mapped[int] = mapped_column(Integer(), default=0) exprimes_t1: Mapped[int] = mapped_column(Integer(), default=0) blancs_t1: Mapped[int] = mapped_column(Integer(), default=0) nuls_t1: Mapped[int] = mapped_column(Integer(), default=0) inscrits_t2: Mapped[int] = mapped_column(Integer(), default=0) votants_t2: Mapped[int] = mapped_column(Integer(), default=0) abstentions_t2: Mapped[int] = mapped_column(Integer(), default=0) exprimes_t2: Mapped[int] = mapped_column(Integer(), default=0) blancs_t2: Mapped[int] = mapped_column(Integer(), default=0) nuls_t2: Mapped[int] = mapped_column(Integer(), default=0) commune = relationship(Commune, back_populates="resultats_legislatives_2022") resultats_departement = relationship(ResultatsDepartementLegislatives2022, back_populates="resultats_communes") resultats_bureaux_vote: Mapped[List["ResultatsBureauVoteLegislatives2022"]] = relationship( "ResultatsBureauVoteLegislatives2022", back_populates="resultats_commune") voix: Mapped[List["VoixCommuneLegislatives2022"]] = relationship( "VoixCommuneLegislatives2022", back_populates="resultats_commune") class ResultatsBureauVoteLegislatives2022(Base): __tablename__ = "legislatives_2022_resultats_bureau_vote" id: Mapped[int] = mapped_column(primary_key=True) bv_id: Mapped[str] = mapped_column(ForeignKey("bureau_vote.id")) resultats_commune_id: Mapped[int] = mapped_column(ForeignKey("legislatives_2022_resultats_commune.id")) resultats_circo_id: Mapped[int] = mapped_column(ForeignKey("legislatives_2022_resultats_circonscription.id"), nullable=True) inscrits_t1: Mapped[int] = mapped_column(Integer(), default=0) votants_t1: Mapped[int] = mapped_column(Integer(), default=0) abstentions_t1: Mapped[int] = mapped_column(Integer(), default=0) exprimes_t1: Mapped[int] = mapped_column(Integer(), default=0) blancs_t1: Mapped[int] = mapped_column(Integer(), default=0) nuls_t1: Mapped[int] = mapped_column(Integer(), default=0) inscrits_t2: Mapped[int] = mapped_column(Integer(), default=0) votants_t2: Mapped[int] = mapped_column(Integer(), default=0) abstentions_t2: Mapped[int] = mapped_column(Integer(), default=0) exprimes_t2: Mapped[int] = mapped_column(Integer(), default=0) blancs_t2: Mapped[int] = mapped_column(Integer(), default=0) nuls_t2: Mapped[int] = mapped_column(Integer(), default=0) bureau_vote = relationship("BureauVote", back_populates="resultats_legislatives_2022") resultats_commune = relationship(ResultatsCommuneLegislatives2022, back_populates="resultats_bureaux_vote") resultats_circonscription = relationship(ResultatsCirconscriptionLegislatives2022, back_populates="resultats_bureaux_vote") voix: Mapped[List["VoixBureauVoteLegislatives2022"]] = relationship( "VoixBureauVoteLegislatives2022", back_populates="resultats_bureau_vote") class VoixFranceLegislatives2022(Base): __tablename__ = "legislatives_2022_voix_france" id: Mapped[int] = mapped_column(primary_key=True) nuance_id: Mapped[str] = mapped_column(ForeignKey("legislatives_2022_nuance.code")) resultats_france_id: Mapped[int] = mapped_column(ForeignKey("legislatives_2022_resultats_france.id")) voix_t1: Mapped[int] = mapped_column(Integer(), default=0) voix_t2: Mapped[int] = mapped_column(Integer(), default=0) nuance: Mapped[NuanceLegislatives2022] = relationship( NuanceLegislatives2022, back_populates="resultats_nationaux") resultats_france: Mapped[ResultatsFranceLegislatives2022] = relationship( ResultatsFranceLegislatives2022, back_populates="voix") class VoixRegionLegislatives2022(Base): __tablename__ = "legislatives_2022_voix_region" id: Mapped[int] = mapped_column(primary_key=True) nuance_id: Mapped[str] = mapped_column(ForeignKey("legislatives_2022_nuance.code")) resultats_region_id: Mapped[int] = mapped_column(ForeignKey("legislatives_2022_resultats_region.id")) voix_t1: Mapped[int] = mapped_column(Integer(), default=0) voix_t2: Mapped[int] = mapped_column(Integer(), default=0) nuance: Mapped[NuanceLegislatives2022] = relationship( NuanceLegislatives2022, back_populates="resultats_par_region") resultats_region: Mapped[ResultatsRegionLegislatives2022] = relationship( ResultatsRegionLegislatives2022, back_populates="voix") class VoixDepartementLegislatives2022(Base): __tablename__ = "legislatives_2022_voix_departement" id: Mapped[int] = mapped_column(primary_key=True) nuance_id: Mapped[str] = mapped_column(ForeignKey("legislatives_2022_nuance.code")) resultats_departement_id: Mapped[int] = mapped_column(ForeignKey("legislatives_2022_resultats_departement.id")) voix_t1: Mapped[int] = mapped_column(Integer(), default=0) voix_t2: Mapped[int] = mapped_column(Integer(), default=0) nuance: Mapped[NuanceLegislatives2022] = relationship( NuanceLegislatives2022, back_populates="resultats_par_departement") resultats_departement: Mapped[ResultatsDepartementLegislatives2022] = relationship( ResultatsDepartementLegislatives2022, back_populates="voix") class VoixCirconscriptionLegislatives2022(Base): __tablename__ = "legislatives_2022_voix_circonscription" id: Mapped[int] = mapped_column(primary_key=True) candidat_id: Mapped[int] = mapped_column(ForeignKey("legislatives_2022_candidat.id")) resultats_circonscription_id: Mapped[int] = mapped_column( ForeignKey("legislatives_2022_resultats_circonscription.id")) voix_t1: Mapped[int] = mapped_column(Integer(), default=0) voix_t2: Mapped[int] = mapped_column(Integer(), default=0) candidat: Mapped[CandidatLegislatives2022] = relationship( CandidatLegislatives2022, back_populates="resultats_par_circonscription") resultats_circonscription: Mapped[ResultatsCirconscriptionLegislatives2022] = relationship( ResultatsCirconscriptionLegislatives2022, back_populates="voix") class VoixCommuneLegislatives2022(Base): __tablename__ = "legislatives_2022_voix_commune" id: Mapped[int] = mapped_column(primary_key=True) nuance_id: Mapped[str] = mapped_column(ForeignKey("legislatives_2022_nuance.code")) resultats_commune_id: Mapped[int] = mapped_column(ForeignKey("legislatives_2022_resultats_commune.id")) voix_t1: Mapped[int] = mapped_column(Integer(), default=0) voix_t2: Mapped[int] = mapped_column(Integer(), default=0) nuance: Mapped[NuanceLegislatives2022] = relationship( NuanceLegislatives2022, back_populates="resultats_par_commune") resultats_commune: Mapped[ResultatsCommuneLegislatives2022] = relationship( ResultatsCommuneLegislatives2022, back_populates="voix") class VoixBureauVoteLegislatives2022(Base): __tablename__ = "legislatives_2022_voix_bureau_vote" id: Mapped[int] = mapped_column(primary_key=True) candidat_id: Mapped[int] = mapped_column(ForeignKey("legislatives_2022_candidat.id")) resultats_bureau_vote_id: Mapped[int] = mapped_column(ForeignKey("legislatives_2022_resultats_bureau_vote.id")) voix_t1: Mapped[int] = mapped_column(Integer(), default=0) voix_t2: Mapped[int] = mapped_column(Integer(), default=0) candidat: Mapped[CandidatLegislatives2022] = relationship(CandidatLegislatives2022, back_populates="resultats_par_bureau_vote") resultats_bureau_vote: Mapped[ResultatsBureauVoteLegislatives2022] = relationship( ResultatsBureauVoteLegislatives2022, back_populates="voix")