Files
Fulfillment-Backend/schemas/service.py
2024-08-06 04:53:50 +03:00

115 lines
2.0 KiB
Python

from typing import List, Optional
from schemas.base import BaseSchema, OkMessageSchema, BaseEnumSchema
# region Entities
class ServicePriceRangeSchema(BaseSchema):
id: int | None
from_quantity: int
to_quantity: int
price: float
class ServiceCategorySchema(BaseSchema):
id: int
name: str
class ServiceSchema(BaseSchema):
id: int
name: str
category: ServiceCategorySchema
price: float
service_type: int
price_ranges: List[ServicePriceRangeSchema]
cost: Optional[int]
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 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
# 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]
# endregion