Files
Crm-Backend/schemas/project.py

62 lines
959 B
Python

from typing import Optional
from schemas.base import BaseSchema, BaseResponse
from schemas.deal_tag import DealTagSchema
from schemas.module import ModuleSchema
# region Entity
class ProjectSchema(BaseSchema):
id: int
name: str
modules: list[ModuleSchema]
tags: list[DealTagSchema]
class CreateProjectSchema(BaseSchema):
name: str
class UpdateProjectSchema(BaseSchema):
name: Optional[str] = None
modules: list[ModuleSchema] = None
# endregion
# region Requests
class CreateProjectRequest(BaseSchema):
entity: CreateProjectSchema
class UpdateProjectRequest(BaseSchema):
entity: UpdateProjectSchema
# endregion
# region Responses
class GetProjectsResponse(BaseSchema):
items: list[ProjectSchema]
class CreateProjectResponse(BaseResponse):
entity: ProjectSchema
class UpdateProjectResponse(BaseResponse):
pass
class DeleteProjectResponse(BaseResponse):
pass
# endregion Responses