from typing import Optional from pydantic import BaseModel, Field class Collaborateur(BaseModel): """Modèle pour un collaborateur/commercial""" numero: Optional[int] = Field(None, description="Numéro du collaborateur (CO_No)") nom: Optional[str] = Field(None, description="Nom (CO_Nom)") prenom: Optional[str] = Field(None, description="Prénom (CO_Prenom)") fonction: Optional[str] = Field(None, description="Fonction (CO_Fonction)") adresse: Optional[str] = Field(None, description="Adresse (CO_Adresse)") complement: Optional[str] = Field( None, description="Complément adresse (CO_Complement)" ) code_postal: Optional[str] = Field(None, description="Code postal (CO_CodePostal)") ville: Optional[str] = Field(None, description="Ville (CO_Ville)") region: Optional[str] = Field(None, description="Région (CO_CodeRegion)") pays: Optional[str] = Field(None, description="Pays (CO_Pays)") service: Optional[str] = Field(None, description="Service (CO_Service)") est_vendeur: Optional[bool] = Field(None, description="Est vendeur (CO_Vendeur)") est_caissier: Optional[bool] = Field(None, description="Est caissier (CO_Caissier)") est_acheteur: Optional[bool] = Field(None, description="Est acheteur (CO_Acheteur)") telephone: Optional[str] = Field(None, description="Téléphone (CO_Telephone)") telecopie: Optional[str] = Field(None, description="Fax (CO_Telecopie)") email: Optional[str] = Field(None, description="Email (CO_EMail)") tel_portable: Optional[str] = Field(None, description="Portable (CO_TelPortable)") matricule: Optional[str] = Field(None, description="Matricule (CO_Matricule)") facebook: Optional[str] = Field(None, description="Facebook (CO_Facebook)") linkedin: Optional[str] = Field(None, description="LinkedIn (CO_LinkedIn)") skype: Optional[str] = Field(None, description="Skype (CO_Skype)") est_actif: Optional[bool] = Field(None, description="Est actif (CO_Sommeil=0)") est_chef_ventes: Optional[bool] = Field( None, description="Est chef des ventes (CO_ChefVentes)" ) chef_ventes_numero: Optional[int] = Field( None, description="N° chef des ventes (CO_NoChefVentes)" ) class Config: json_schema_extra = { "example": { "numero": 1, "nom": "DUPONT", "prenom": "Jean", "fonction": "Commercial", "service": "Ventes", "est_vendeur": True, "telephone": "0123456789", "email": "j.dupont@entreprise.fr", "tel_portable": "0612345678", "est_actif": True, } }