feat: passport images for user

This commit is contained in:
2024-12-04 20:20:03 +04:00
parent 9a6fc3fdd7
commit d56e292276
4 changed files with 88 additions and 2 deletions

View File

@@ -1,5 +1,7 @@
from typing import List, Optional
from pydantic import model_validator
from schemas.base import BaseSchema, OkMessageSchema
from schemas.payrate import PayRateSchema
from schemas.position import PositionSchema
@@ -8,6 +10,12 @@ from schemas.role import RoleSchema
# region Entities
class PassportImageSchema(BaseSchema):
id: int
user_id: int
image_url: str
class BasicUser(BaseSchema):
telegram_id: int
phone_number: str | None = None
@@ -23,6 +31,18 @@ class BasicUser(BaseSchema):
role_key: str
pay_rate: Optional[PayRateSchema] = None
passport_image_url: str | None = None
passport_images: list[PassportImageSchema] | None = []
@model_validator(mode="after")
def image_url_to_list(cls, values):
passport_images = values.passport_images
if not passport_images:
return values
latest_image = passport_images[-1]
values.passport_image_url = latest_image.image_url
return values
class BaseUser(BasicUser):
id: int
@@ -70,4 +90,8 @@ class CreateUserResponse(OkMessageSchema):
class GetManagersResponse(BaseSchema):
managers: List[UserSchema]
class UploadPassportImageResponse(OkMessageSchema):
image_url: str | None = None
# endregion