from datetime import datetime from typing import Optional from schemas.base import BaseSchema, BaseResponse, PaginationInfoSchema from schemas.board import BoardSchema from schemas.status import StatusSchema # region Entities class DealSchema(BaseSchema): id: int name: str lexorank: str status: StatusSchema board: BoardSchema created_at: datetime class CreateDealSchema(BaseSchema): name: str board_id: int lexorank: str status_id: int class UpdateDealSchema(BaseSchema): name: Optional[str] = None lexorank: Optional[str] = None board_id: Optional[int] = None status_id: Optional[int] = None # endregion # region Requests class CreateDealRequest(BaseSchema): entity: CreateDealSchema class UpdateDealRequest(BaseSchema): entity: UpdateDealSchema # endregion # region Responses class GetDealsResponse(BaseSchema): items: list[DealSchema] pagination_info: PaginationInfoSchema class CreateDealResponse(BaseResponse): entity: DealSchema class UpdateDealResponse(BaseResponse): pass class DeleteDealResponse(BaseResponse): pass # endregion