Files
Crm-Backend/schemas/status.py

74 lines
1.1 KiB
Python

from datetime import datetime
from typing import Optional
from schemas.base import BaseSchema, BaseResponse
# region Entities
class StatusSchema(BaseSchema):
id: int
name: str
lexorank: str
class CreateStatusSchema(BaseSchema):
name: str
board_id: int
lexorank: str
class UpdateStatusSchema(BaseSchema):
name: Optional[str] = None
lexorank: Optional[str] = None
class StatusHistorySchema(BaseSchema):
id: int
created_at: datetime
from_status: StatusSchema
to_status: StatusSchema
deal_id: int
# endregion
# region Requests
class CreateStatusRequest(BaseSchema):
entity: CreateStatusSchema
class UpdateStatusRequest(BaseSchema):
entity: UpdateStatusSchema
# endregion
# region Responses
class GetStatusesResponse(BaseSchema):
items: list[StatusSchema]
class CreateStatusResponse(BaseResponse):
entity: StatusSchema
class UpdateStatusResponse(BaseResponse):
pass
class DeleteStatusResponse(BaseResponse):
pass
class GetStatusHistoryResponse(BaseSchema):
items: list[StatusHistorySchema]
# endregion