From a7b1d5d1a8a825cd52619d5c2ddfe6a3d9726e3c Mon Sep 17 00:00:00 2001 From: Anaz Date: Sat, 11 Jan 2025 10:19:28 +0400 Subject: [PATCH] minors corrections users service --- models/schemas.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/models/schemas.py b/models/schemas.py index 84ef250..c556263 100644 --- a/models/schemas.py +++ b/models/schemas.py @@ -1,4 +1,4 @@ -from pydantic import BaseModel, EmailStr +from pydantic import BaseModel, EmailStr, model_validator from datetime import datetime from typing import List, Optional @@ -13,7 +13,7 @@ class RoleResponse(RoleBase): permissions: List[str] class Config: - orm_mode = True + from_attributes = True class UserBase(BaseModel): email: EmailStr @@ -30,12 +30,24 @@ class UserResponse(BaseModel): email: EmailStr full_name: str phone: str - date_of_birth: str + date_of_birth: datetime organization: Optional[str] = None role: RoleResponse is_banned: bool is_deleted: bool + # Validation au niveau du modèle + @model_validator(mode="before") + def convert_role_to_dict(cls, values): + role = values.get("role") + if isinstance(role, str): + values["role"] = {"id": 0, "name": role, "permissions": []} + return values + + + class Config: + from_attributes = True + class Role(BaseModel): id: int name: str @@ -58,7 +70,7 @@ class PermissionResponse(PermissionBase): id: int class Config: - orm_mode = True + from_attributes = True # Demande de besoin (NeedRequest) class NeedRequestBase(BaseModel):