204 lines
3.5 KiB
Python
204 lines
3.5 KiB
Python
from typing import List, Optional
|
|
|
|
from schemas.base import BaseSchema, OkMessageSchema
|
|
|
|
|
|
# region Entities
|
|
|
|
# region Services
|
|
class ServicePriceRangeSchema(BaseSchema):
|
|
id: int | None
|
|
from_quantity: int
|
|
to_quantity: int
|
|
price: float
|
|
|
|
|
|
class ServiceCategorySchema(BaseSchema):
|
|
id: int
|
|
name: str
|
|
deal_service_rank: str
|
|
product_service_rank: str
|
|
|
|
|
|
class ServicePriceCategorySchema(BaseSchema):
|
|
id: int
|
|
name: str
|
|
|
|
|
|
class ServiceCategoryPriceSchema(BaseSchema):
|
|
category: ServicePriceCategorySchema
|
|
price: float
|
|
|
|
|
|
class ServiceSchema(BaseSchema):
|
|
id: int
|
|
name: str
|
|
category: ServiceCategorySchema
|
|
price: float
|
|
service_type: int
|
|
price_ranges: List[ServicePriceRangeSchema]
|
|
category_prices: List[ServiceCategoryPriceSchema]
|
|
cost: Optional[int]
|
|
rank: str
|
|
is_placeholder: bool = False
|
|
|
|
|
|
# endregion
|
|
|
|
# region Kits
|
|
class BaseServiceKitSchema(BaseSchema):
|
|
name: str
|
|
service_type: int
|
|
|
|
|
|
class GetServiceKitSchema(BaseServiceKitSchema):
|
|
id: int
|
|
services: List[ServiceSchema]
|
|
|
|
|
|
class CreateServiceKitSchema(BaseServiceKitSchema):
|
|
services_ids: List[int]
|
|
|
|
|
|
class UpdateServiceKitSchema(BaseServiceKitSchema):
|
|
id: int
|
|
services_ids: List[int]
|
|
|
|
|
|
# endregion
|
|
|
|
# region Category prices
|
|
|
|
# endregion
|
|
|
|
# endregion
|
|
|
|
# region Requests
|
|
class ServiceCreateRequest(BaseSchema):
|
|
service: ServiceSchema
|
|
|
|
|
|
class ServiceCreateCategoryRequest(BaseSchema):
|
|
category: ServiceCategorySchema
|
|
|
|
|
|
class ServiceUpdateRequest(BaseSchema):
|
|
data: ServiceSchema
|
|
|
|
|
|
class ServiceDeleteRequest(BaseSchema):
|
|
service_id: int
|
|
|
|
|
|
class CreateServicesKitRequest(BaseSchema):
|
|
data: CreateServiceKitSchema
|
|
|
|
|
|
class UpdateServicesKitRequest(BaseSchema):
|
|
data: UpdateServiceKitSchema
|
|
|
|
|
|
class CreatePriceCategoryRequest(BaseSchema):
|
|
name: str
|
|
|
|
|
|
class UpdatePriceCategoryRequest(BaseSchema):
|
|
id: int
|
|
name: str
|
|
|
|
|
|
class DeletePriceCategoryRequest(BaseSchema):
|
|
id: int
|
|
|
|
|
|
class ServiceReorderRequest(BaseSchema):
|
|
draining_service_id: int
|
|
hovered_service_id: int
|
|
|
|
|
|
class ServiceCategoryReorderRequest(BaseSchema):
|
|
move_down: bool
|
|
move_up: bool
|
|
category_id: int
|
|
service_type: int
|
|
|
|
|
|
class ServiceUpdateCategoryRequest(BaseSchema):
|
|
category: ServiceCategorySchema
|
|
|
|
|
|
class ServiceDeleteCategoryRequest(BaseSchema):
|
|
category_id: int
|
|
|
|
|
|
# endregion
|
|
|
|
# region Responses
|
|
class ServiceGetAllResponse(BaseSchema):
|
|
services: List[ServiceSchema]
|
|
|
|
|
|
class ServiceGetAllCategoriesResponse(BaseSchema):
|
|
categories: List[ServiceCategorySchema]
|
|
|
|
|
|
class ServiceCreateResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class ServiceCreateCategoryResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class ServiceUpdateResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class ServiceDeleteResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class CreateServicesKitResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class UpdateServicesKitResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class GetAllServicesKitsResponse(BaseSchema):
|
|
services_kits: List[GetServiceKitSchema]
|
|
|
|
|
|
class GetAllPriceCategoriesResponse(BaseSchema):
|
|
price_categories: List[ServicePriceCategorySchema]
|
|
|
|
|
|
class CreatePriceCategoryResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class UpdatePriceCategoryResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class DeletePriceCategoryResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class ServiceReorderResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class ServiceCategoryReorderResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class ServiceUpdateCategoryResponse(OkMessageSchema):
|
|
pass
|
|
|
|
|
|
class ServiceDeleteCategoryResponse(OkMessageSchema):
|
|
pass
|
|
# endregion
|