Files
Fulfillment-Backend/schemas/warehouse_management.py

98 lines
1.6 KiB
Python

from typing import Optional
from schemas.base import BaseSchema, OkMessageSchema
# region Entities
class BasePlaceTypeSchema(BaseSchema):
name: str
parent_id: Optional[int]
class BasePlaceTypeWithCountSchema(BasePlaceTypeSchema):
child_count: int
class FlatPlaceTypeSchema(BasePlaceTypeSchema):
id: int
class PlaceTypeSchema(FlatPlaceTypeSchema):
children: list['PlaceTypeSchema'] = []
places_count: int
class BasePlaceSchema(BaseSchema):
parent_id: Optional[int]
place_type_id: int
class PlaceSchema(BasePlaceSchema):
id: int
number: int
children: list['PlaceSchema'] = []
place_type: BasePlaceTypeWithCountSchema
# endregion
# region Requests
class EditPlaceTypeRequest(BaseSchema):
place_type: FlatPlaceTypeSchema
class CreatePlaceTypeRequest(BaseSchema):
place_type: BasePlaceTypeSchema
class EditPlaceRequest(BaseSchema):
place: PlaceSchema
class CreatePlaceRequest(BaseSchema):
place: BasePlaceSchema
# endregion
# region Responses
class GetPlaceTypesResponse(BaseSchema):
place_types: list[PlaceTypeSchema]
class GetFlatPlaceTypesResponse(BaseSchema):
place_types: list[FlatPlaceTypeSchema]
class CreatePlaceTypeResponse(OkMessageSchema):
pass
class EditPlaceTypeResponse(OkMessageSchema):
pass
class DeletePlaceTypeResponse(OkMessageSchema):
pass
class GetPlacesResponse(BaseSchema):
places: list[PlaceSchema]
class CreatePlaceResponse(OkMessageSchema):
pass
class EditPlaceResponse(OkMessageSchema):
pass
class DeletePlaceResponse(OkMessageSchema):
pass
# endregion