70 lines
1.1 KiB
Python
70 lines
1.1 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
|
|
price: float
|
|
service_type: int
|
|
price_ranges: list[ServicePriceRangeSchema]
|
|
cost: Optional[float]
|
|
lexorank: str
|
|
|
|
|
|
class ServiceSchema(CreateServiceSchema):
|
|
id: int
|
|
|
|
|
|
class UpdateServiceSchema(ServiceSchema):
|
|
pass
|
|
|
|
|
|
# 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
|