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: Optional[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
 |