from typing import Optional from schemas.base import BaseSchema, BaseResponse # region Entities class ClientDetailsSchema(BaseSchema): telegram: str phone_number: str inn: str email: str class CreateClientSchema(BaseSchema): name: str company_name: str comment: Optional[str] = "" details: ClientDetailsSchema class ClientSchema(CreateClientSchema): id: int class UpdateClientSchema(BaseSchema): name: Optional[str] = None company_name: Optional[str] = None comment: Optional[str] = None details: Optional[ClientDetailsSchema] = None # endregion # region Requests class ClientUpdateDetailsRequest(BaseSchema): client_id: int details: ClientDetailsSchema class CreateClientRequest(BaseSchema): entity: CreateClientSchema class UpdateClientRequest(BaseSchema): entity: UpdateClientSchema # endregion # region Responses class GetClientsResponse(BaseSchema): items: list[ClientSchema] class UpdateClientResponse(BaseResponse): pass class CreateClientResponse(BaseResponse): pass class DeleteClientResponse(BaseResponse): pass # endregion