This commit is contained in:
2024-03-19 09:01:46 +03:00
parent aafa1050a7
commit 6ba041a839
23 changed files with 369 additions and 39 deletions

View File

@@ -10,3 +10,7 @@ class CustomModel(BaseModel):
class Config:
from_attributes = True
class OkMessageSchema(BaseModel):
ok: bool
message: str

View File

@@ -3,18 +3,17 @@ from typing import List
from schemas.base import CustomModel
class ClientSchema(CustomModel):
id: int
name: str
class ClientDetailsSchema(CustomModel):
address: str | None = None
phone_number: str | None = None
inn: int | None = None
email: str | None = None
# TODO add email validation
class ClientSchema(CustomModel):
id: int
name: str
details: ClientDetailsSchema | None = None
class ClientSearchRequest(CustomModel):

View File

@@ -1,18 +1,34 @@
import datetime
from typing import List
from schemas.base import CustomModel
from schemas.client import ClientSchema
# region Entities
class FastDeal(CustomModel):
name: str
client: ClientSchema
comment: str
acceptance_date: datetime.datetime
class DealSummary(CustomModel):
id: int
name: str
client_name: str
changed_at: datetime.datetime
status: int
# endregion Entities
# region Requests
class DealChangeStatusRequest(CustomModel):
deal_id: int
new_status: int
class DealChangeStatusResponse(CustomModel):
ok: bool
class DealCreateRequest(CustomModel):
name: str
@@ -25,16 +41,27 @@ class DealQuickCreateRequest(CustomModel):
acceptance_date: datetime.datetime
class DealQuickCreateResponse(CustomModel):
deal_id: int
class DealSummaryRequest(CustomModel):
pass
# endregion Requests
# region Responses
class DealChangeStatusResponse(CustomModel):
ok: bool
class DealCreateResponse(CustomModel):
ok: bool
class FastDeal(CustomModel):
name: str
client: ClientSchema
comment: str
acceptance_date: datetime.datetime
class DealQuickCreateResponse(CustomModel):
deal_id: int
class DealSummaryResponse(CustomModel):
summaries: List[DealSummary]
# endregion Responses

49
schemas/services.py Normal file
View File

@@ -0,0 +1,49 @@
from typing import List
from schemas.base import CustomModel, OkMessageSchema
# region Entities
class ServiceCategorySchema(CustomModel):
id: int
name: str
class ServiceSchema(CustomModel):
id: int
name: str
category: ServiceCategorySchema
price: float
# endregion
# region Requests
class ServiceCreateRequest(CustomModel):
service: ServiceSchema
class ServiceCreateCategoryRequest(CustomModel):
category: ServiceCategorySchema
# endregion
# region Responses
class ServiceGetAllResponse(CustomModel):
services: List[ServiceSchema]
class ServiceGetAllCategoriesResponse(CustomModel):
categories: List[ServiceCategorySchema]
class ServiceCreateResponse(OkMessageSchema):
pass
class ServiceCreateCategoryResponse(OkMessageSchema):
pass
# endregion