Files
Fulfillment-Backend/schemas/service.py
2024-10-07 23:42:37 +03:00

187 lines
3.2 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
# 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
# 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
# endregion