68 lines
1.0 KiB
Python
68 lines
1.0 KiB
Python
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
from schemas.base import BaseSchema, BaseResponse, PaginationInfoSchema
|
|
|
|
|
|
# region Entities
|
|
|
|
|
|
class DealSchema(BaseSchema):
|
|
id: int
|
|
name: str
|
|
lexorank: str
|
|
status_id: int
|
|
board_id: int
|
|
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
|
|
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
|