diff --git a/api.py b/api.py index 182eac1..22a2136 100644 --- a/api.py +++ b/api.py @@ -150,6 +150,25 @@ class Contact(BaseModel): linkedin: Optional[str] = Field(None, description="Profil LinkedIn (CT_LinkedIn)") 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: json_schema_extra = { "example": {