78 lines
1.4 KiB
Python
78 lines
1.4 KiB
Python
from typing import Optional
|
|
|
|
from modules.fulfillment_base.schemas.service_category import ServiceCategorySchema
|
|
from schemas.base import BaseSchema, BaseResponse
|
|
|
|
|
|
# region Entity
|
|
|
|
|
|
class ServicePriceRangeSchema(BaseSchema):
|
|
id: int | None
|
|
from_quantity: int
|
|
to_quantity: int
|
|
price: float
|
|
|
|
|
|
class CreateServiceSchema(BaseSchema):
|
|
name: str
|
|
category: ServiceCategorySchema
|
|
category_id: Optional[int] = None
|
|
price: float
|
|
service_type: int
|
|
price_ranges: list[ServicePriceRangeSchema]
|
|
cost: Optional[float]
|
|
lexorank: str
|
|
|
|
|
|
class ServiceSchema(CreateServiceSchema):
|
|
id: int
|
|
|
|
|
|
class UpdateServiceSchema(BaseSchema):
|
|
name: Optional[str] = None
|
|
category: Optional[ServiceCategorySchema] = None
|
|
category_id: Optional[int] = None
|
|
price: Optional[float] = None
|
|
service_type: Optional[int] = None
|
|
price_ranges: Optional[list[ServicePriceRangeSchema]] = None
|
|
cost: Optional[float] = None
|
|
lexorank: Optional[str] = None
|
|
|
|
|
|
# endregion
|
|
|
|
# region Request
|
|
|
|
|
|
class CreateServiceRequest(BaseSchema):
|
|
entity: CreateServiceSchema
|
|
|
|
|
|
class UpdateServiceRequest(BaseSchema):
|
|
entity: UpdateServiceSchema
|
|
|
|
|
|
# endregion
|
|
|
|
# region Response
|
|
|
|
|
|
class GetServicesResponse(BaseSchema):
|
|
items: list[ServiceSchema]
|
|
|
|
|
|
class CreateServiceResponse(BaseResponse):
|
|
entity: ServiceSchema
|
|
|
|
|
|
class UpdateServiceResponse(BaseResponse):
|
|
pass
|
|
|
|
|
|
class DeleteServiceResponse(BaseResponse):
|
|
pass
|
|
|
|
|
|
# endregion
|