Spaces:
Sleeping
Sleeping
File size: 4,850 Bytes
9796e1e a194bc8 f67b60a a194bc8 f67b60a a194bc8 f67b60a a194bc8 f67b60a a194bc8 f67b60a a194bc8 9796e1e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | from sqlalchemy import Column, Integer, SmallInteger, String, Boolean, Float, DateTime, ForeignKey
from sqlalchemy.sql import func
from sqlalchemy.orm import DeclarativeBase
class Base(DeclarativeBase):
pass
class Employee(Base):
__tablename__ = "employees"
id = Column(Integer, primary_key=True, autoincrement=True)
created_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False)
# Identité
age = Column(Integer, nullable=False)
genre = Column(String, nullable=False)
statut_marital = Column(String, nullable=False)
revenu_mensuel = Column(Integer, nullable=False)
# Poste
departement = Column(String, nullable=False)
poste = Column(String, nullable=False)
niveau_hierarchique_poste = Column(SmallInteger, nullable=False)
domaine_etude = Column(String, nullable=False)
niveau_education = Column(SmallInteger, nullable=False)
# Expérience
nombre_experiences_precedentes = Column(Integer, nullable=False)
annee_experience_totale = Column(Integer, nullable=False)
annees_dans_l_entreprise = Column(Integer, nullable=False)
annees_dans_le_poste_actuel = Column(Integer, nullable=False)
annees_sous_responsable_actuel = Column(Integer, nullable=False)
annees_depuis_la_derniere_promotion = Column(Integer, nullable=False)
# Performance
note_evaluation_actuelle = Column(SmallInteger, nullable=False)
note_evaluation_precedente = Column(SmallInteger, nullable=False)
augmentation_salaire_precedente = Column(Integer, nullable=False)
nb_formations_suivies = Column(Integer, nullable=False)
nombre_participation_pee = Column(Integer, nullable=False)
# Satisfaction
satisfaction_employee_environnement = Column(SmallInteger, nullable=False)
satisfaction_employee_nature_travail = Column(SmallInteger, nullable=False)
satisfaction_employee_equipe = Column(SmallInteger, nullable=False)
satisfaction_employee_equilibre_pro_perso = Column(SmallInteger, nullable=False)
# Conditions
heure_supplementaires = Column(String, nullable=False)
frequence_deplacement = Column(String, nullable=False)
distance_domicile_travail = Column(Integer, nullable=False)
# Cible
a_quitte_l_entreprise = Column(Boolean, nullable=False)
class Prediction(Base):
__tablename__ = "predictions"
id = Column(Integer, primary_key=True, autoincrement=True)
created_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False)
# Inputs — miroir exact de PredictionInput
age = Column(Integer, nullable=False)
genre = Column(String, nullable=False)
statut_marital = Column(String, nullable=False)
poste = Column(String, nullable=False)
domaine_etude = Column(String, nullable=False)
niveau_education = Column(SmallInteger, nullable=False)
departement = Column(String, nullable=False)
niveau_hierarchique_poste = Column(SmallInteger, nullable=False)
nombre_experiences_precedentes = Column(Integer, nullable=False)
annee_experience_totale = Column(Integer, nullable=False)
annees_dans_l_entreprise = Column(Integer, nullable=False)
annees_dans_le_poste_actuel = Column(Integer, nullable=False)
annees_sous_responsable_actuel = Column(Integer, nullable=False)
annees_depuis_la_derniere_promotion = Column(Integer, nullable=False)
note_evaluation_actuelle = Column(SmallInteger, nullable=False)
note_evaluation_precedente = Column(SmallInteger, nullable=False)
augmentation_salaire_precedente = Column(Integer, nullable=False)
nb_formations_suivies = Column(Integer, nullable=False)
nombre_participation_pee = Column(Integer, nullable=False)
satisfaction_employee_environnement = Column(SmallInteger, nullable=False)
satisfaction_employee_nature_travail = Column(SmallInteger, nullable=False)
satisfaction_employee_equipe = Column(SmallInteger, nullable=False)
satisfaction_employee_equilibre_pro_perso = Column(SmallInteger, nullable=False)
heure_supplementaires = Column(String, nullable=False)
frequence_deplacement = Column(String, nullable=False)
distance_domicile_travail = Column(Integer, nullable=False)
revenu_mensuel = Column(Integer, nullable=False)
# Outputs
prediction = Column(SmallInteger, nullable=False)
probabilite = Column(Float, nullable=False)
class Log(Base):
__tablename__ = "logs"
id = Column(Integer, primary_key=True, autoincrement=True)
timestamp = Column(DateTime(timezone=True), server_default=func.now(), nullable=False)
endpoint = Column(String, nullable=False)
method = Column(String, nullable=False)
status_code = Column(Integer, nullable=False)
response_time_ms = Column(Float, nullable=False)
prediction_id = Column(Integer, ForeignKey("predictions.id"), nullable=True) |