feat(Contact): add civilite mapping and validator

This commit is contained in:
Fanilo-Nantenaina 2025-12-26 19:03:34 +03:00
parent f414a2889e
commit c101e45afd

19
api.py
View file

@ -150,6 +150,25 @@ class Contact(BaseModel):
linkedin: Optional[str] = Field(None, description="Profil LinkedIn (CT_LinkedIn)") linkedin: Optional[str] = Field(None, description="Profil LinkedIn (CT_LinkedIn)")
skype: Optional[str] = Field(None, description="Identifiant Skype (CT_Skype)") skype: Optional[str] = Field(None, description="Identifiant Skype (CT_Skype)")
_civilite_map = {
0: "M.",
1: "Mme",
2: "Mlle",
3: "Société",
}
@validator("civilite", pre=True, always=True)
def convert_civilite(cls, v):
"""
Si la civilité est fournie sous forme de code numérique,
on la transforme en chaîne de caractères.
"""
if v is None:
return v
if isinstance(v, int):
return cls._civilite_map.get(v, str(v)) # retourne le code en string si non mappé
return v
class Config: class Config:
json_schema_extra = { json_schema_extra = {
"example": { "example": {