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