Files
Fulfillment-Backend/schemas/user.py

74 lines
1.2 KiB
Python

from typing import List, Optional
from schemas.base import BaseSchema, OkMessageSchema
from schemas.payrate import PayRateSchema
from schemas.position import PositionSchema
from schemas.role import RoleSchema
# region Entities
class BasicUser(BaseSchema):
telegram_id: int
phone_number: str | None = None
first_name: str
second_name: str
patronymic: str
comment: str
passport_data: str | None = None
is_admin: bool
is_blocked: bool
is_deleted: bool
role_key: str
pay_rate: Optional[PayRateSchema] = None
class BaseUser(BasicUser):
id: int
class UserSchema(BaseUser):
role: RoleSchema
position: Optional[PositionSchema] = None
class UserUpdate(BaseUser):
position_key: Optional[str] = None
class UserCreate(BasicUser):
position_key: Optional[str] = None
# endregion
# region Requests
class UpdateUserRequest(BaseSchema):
data: UserUpdate
class CreateUserRequest(BaseSchema):
data: UserCreate
# endregion
# region Responses
class GetAllUsersResponse(BaseSchema):
users: List[UserSchema]
class UpdateUserResponse(OkMessageSchema):
pass
class CreateUserResponse(OkMessageSchema):
pass
class GetManagersResponse(BaseSchema):
managers: List[UserSchema]
# endregion