feat: вфыв
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from schemas.base import CustomModelCamel, CustomModelSnake
|
||||
from schemas.base import BaseSchema, CustomModelSnake
|
||||
|
||||
|
||||
class AuthLoginRequest(CustomModelSnake):
|
||||
@@ -9,5 +9,5 @@ class AuthLoginRequest(CustomModelSnake):
|
||||
photo_url: str
|
||||
|
||||
|
||||
class AuthLoginResponse(CustomModelCamel):
|
||||
class AuthLoginResponse(BaseSchema):
|
||||
access_token: str
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
from typing import List
|
||||
|
||||
from schemas.base import CustomModelCamel, OkMessageSchema
|
||||
from schemas.base import BaseSchema, OkMessageSchema
|
||||
|
||||
|
||||
# region Entities
|
||||
class BarcodeTemplateAttributeSchema(CustomModelCamel):
|
||||
class BarcodeTemplateAttributeSchema(BaseSchema):
|
||||
id: int
|
||||
key: str
|
||||
name: str
|
||||
|
||||
|
||||
class BarcodeTemplateSizeSchema(CustomModelCamel):
|
||||
class BarcodeTemplateSizeSchema(BaseSchema):
|
||||
id: int
|
||||
name: str
|
||||
key: str
|
||||
@@ -18,12 +18,12 @@ class BarcodeTemplateSizeSchema(CustomModelCamel):
|
||||
height: int
|
||||
|
||||
|
||||
class BarcodeTemplateAdditionalAttributeSchema(CustomModelCamel):
|
||||
class BarcodeTemplateAdditionalAttributeSchema(BaseSchema):
|
||||
name: str
|
||||
value: str
|
||||
|
||||
|
||||
class BaseBarcodeTemplateSchema(CustomModelCamel):
|
||||
class BaseBarcodeTemplateSchema(BaseSchema):
|
||||
name: str
|
||||
is_default: bool
|
||||
size: BarcodeTemplateSizeSchema
|
||||
@@ -36,12 +36,12 @@ class BarcodeTemplateSchema(BaseBarcodeTemplateSchema):
|
||||
attributes: list[BarcodeTemplateAttributeSchema]
|
||||
|
||||
|
||||
class BarcodeAttributeSchema(CustomModelCamel):
|
||||
class BarcodeAttributeSchema(BaseSchema):
|
||||
name: str
|
||||
value: str
|
||||
|
||||
|
||||
class BarcodeSchema(CustomModelCamel):
|
||||
class BarcodeSchema(BaseSchema):
|
||||
barcode: str
|
||||
attributes: List[BarcodeAttributeSchema]
|
||||
additional_field: str | None = None
|
||||
@@ -50,7 +50,7 @@ class BarcodeSchema(CustomModelCamel):
|
||||
# endregion
|
||||
|
||||
# region Requests
|
||||
class GetBarcodeTemplateByIdRequest(CustomModelCamel):
|
||||
class GetBarcodeTemplateByIdRequest(BaseSchema):
|
||||
id: int
|
||||
|
||||
|
||||
@@ -62,16 +62,16 @@ class BarcodeTemplateUpdateResponse(OkMessageSchema):
|
||||
pass
|
||||
|
||||
|
||||
class CreateBarcodeTemplateAttributeRequest(CustomModelCamel):
|
||||
class CreateBarcodeTemplateAttributeRequest(BaseSchema):
|
||||
name: str
|
||||
label: str
|
||||
|
||||
|
||||
class BarcodeTemplateDeleteRequest(CustomModelCamel):
|
||||
class BarcodeTemplateDeleteRequest(BaseSchema):
|
||||
id: int
|
||||
|
||||
|
||||
class GetProductBarcodeRequest(CustomModelCamel):
|
||||
class GetProductBarcodeRequest(BaseSchema):
|
||||
product_id: int
|
||||
barcode: str
|
||||
barcode_template_id: int | None = None
|
||||
@@ -84,7 +84,7 @@ class GetProductBarcodePdfRequest(GetProductBarcodeRequest):
|
||||
# endregion
|
||||
|
||||
# region Responses
|
||||
class GetBarcodeTemplateByIdResponse(CustomModelCamel):
|
||||
class GetBarcodeTemplateByIdResponse(BaseSchema):
|
||||
barcode_template: BarcodeTemplateSchema
|
||||
|
||||
|
||||
@@ -101,11 +101,11 @@ class CreateBarcodeTemplateAttributeResponse(OkMessageSchema):
|
||||
id: int
|
||||
|
||||
|
||||
class GetAllBarcodeTemplatesResponse(CustomModelCamel):
|
||||
class GetAllBarcodeTemplatesResponse(BaseSchema):
|
||||
templates: list[BarcodeTemplateSchema]
|
||||
|
||||
|
||||
class GetAllBarcodeTemplateAttributesResponse(CustomModelCamel):
|
||||
class GetAllBarcodeTemplateAttributesResponse(BaseSchema):
|
||||
attributes: list[BarcodeTemplateAttributeSchema]
|
||||
|
||||
|
||||
@@ -113,15 +113,15 @@ class BarcodeTemplateDeleteResponse(OkMessageSchema):
|
||||
pass
|
||||
|
||||
|
||||
class GetProductBarcodeResponse(CustomModelCamel):
|
||||
class GetProductBarcodeResponse(BaseSchema):
|
||||
barcode: BarcodeSchema
|
||||
|
||||
|
||||
class GetAllBarcodeTemplateSizesResponse(CustomModelCamel):
|
||||
class GetAllBarcodeTemplateSizesResponse(BaseSchema):
|
||||
sizes: list[BarcodeTemplateSizeSchema]
|
||||
|
||||
|
||||
class GetProductBarcodePdfResponse(CustomModelCamel):
|
||||
class GetProductBarcodePdfResponse(BaseSchema):
|
||||
base64_string: str
|
||||
filename: str
|
||||
mime_type: str
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
from typing import Self
|
||||
|
||||
from pydantic import BaseModel
|
||||
from pydantic.alias_generators import to_camel
|
||||
|
||||
@@ -7,44 +9,52 @@ class CustomConfig:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class CustomModelCamel(BaseModel):
|
||||
class BaseSchema(BaseModel):
|
||||
class Config:
|
||||
from_attributes = True
|
||||
alias_generator = to_camel
|
||||
populate_by_name = True
|
||||
|
||||
|
||||
@classmethod
|
||||
def from_sql_model(cls, model, fields: dict):
|
||||
model_dict = {c.name: getattr(model, c.name) for c in model.__table__.columns}
|
||||
model_dict.update(fields)
|
||||
return cls(**model_dict)
|
||||
|
||||
def model_dump_parent(self):
|
||||
parent_class: BaseModel = self.__class__.__bases__[0]
|
||||
parent_fields = set(parent_class.model_fields.keys())
|
||||
return self.model_dump(include=parent_fields)
|
||||
|
||||
@classmethod
|
||||
def from_orm_list(cls, sql_models) -> list[Self]:
|
||||
return [cls.model_validate(model) for model in sql_models]
|
||||
|
||||
|
||||
class CustomModelSnake(BaseModel):
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class OkMessageSchema(CustomModelCamel):
|
||||
class OkMessageSchema(BaseSchema):
|
||||
ok: bool
|
||||
message: str
|
||||
|
||||
|
||||
class PaginationSchema(CustomModelCamel):
|
||||
class PaginationSchema(BaseSchema):
|
||||
page: int | None = None
|
||||
items_per_page: int | None = None
|
||||
|
||||
|
||||
class PaginationInfoSchema(CustomModelCamel):
|
||||
class PaginationInfoSchema(BaseSchema):
|
||||
total_pages: int
|
||||
total_items: int
|
||||
|
||||
|
||||
class BaseEnumSchema(CustomModelCamel):
|
||||
class BaseEnumSchema(BaseSchema):
|
||||
id: int
|
||||
name: str
|
||||
|
||||
|
||||
class BaseEnumListSchema(CustomModelCamel):
|
||||
class BaseEnumListSchema(BaseSchema):
|
||||
items: list[BaseEnumSchema]
|
||||
|
||||
@@ -3,11 +3,11 @@ from typing import List
|
||||
from pydantic import field_validator
|
||||
|
||||
from schemas.barcode import BarcodeTemplateSchema
|
||||
from schemas.base import CustomModelCamel, OkMessageSchema
|
||||
from schemas.base import BaseSchema, OkMessageSchema
|
||||
|
||||
|
||||
# region Entities
|
||||
class ClientDetailsSchema(CustomModelCamel):
|
||||
class ClientDetailsSchema(BaseSchema):
|
||||
telegram: str | None = None
|
||||
phone_number: str | None = None
|
||||
inn: str | None = None
|
||||
@@ -18,7 +18,7 @@ class ClientDetailsSchema(CustomModelCamel):
|
||||
return '' if v is None else v
|
||||
|
||||
|
||||
class ClientSchema(CustomModelCamel):
|
||||
class ClientSchema(BaseSchema):
|
||||
id: int
|
||||
name: str
|
||||
company_name: str
|
||||
@@ -29,39 +29,39 @@ class ClientSchema(CustomModelCamel):
|
||||
# endregion
|
||||
|
||||
# region Requests
|
||||
class ClientSearchRequest(CustomModelCamel):
|
||||
class ClientSearchRequest(BaseSchema):
|
||||
name: str
|
||||
|
||||
|
||||
class ClientUpdateDetailsRequest(CustomModelCamel):
|
||||
class ClientUpdateDetailsRequest(BaseSchema):
|
||||
client_id: int
|
||||
details: ClientDetailsSchema
|
||||
|
||||
|
||||
class ClientCreateRequest(CustomModelCamel):
|
||||
class ClientCreateRequest(BaseSchema):
|
||||
data: ClientSchema
|
||||
|
||||
|
||||
class ClientUpdateRequest(CustomModelCamel):
|
||||
class ClientUpdateRequest(BaseSchema):
|
||||
data: ClientSchema
|
||||
|
||||
|
||||
class ClientDeleteRequest(CustomModelCamel):
|
||||
class ClientDeleteRequest(BaseSchema):
|
||||
client_id: int
|
||||
|
||||
|
||||
# endregion
|
||||
|
||||
# region Responses
|
||||
class ClientSearchResponse(CustomModelCamel):
|
||||
class ClientSearchResponse(BaseSchema):
|
||||
clients: List[ClientSchema]
|
||||
|
||||
|
||||
class ClientUpdateDetailsResponse(CustomModelCamel):
|
||||
class ClientUpdateDetailsResponse(BaseSchema):
|
||||
ok: bool
|
||||
|
||||
|
||||
class ClientGetAllResponse(CustomModelCamel):
|
||||
class ClientGetAllResponse(BaseSchema):
|
||||
clients: List[ClientSchema]
|
||||
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import datetime
|
||||
from typing import List, Optional
|
||||
from typing import List, Optional, Union
|
||||
|
||||
from pydantic import constr
|
||||
from pydantic import constr, field_validator
|
||||
|
||||
from schemas.base import CustomModelCamel, OkMessageSchema
|
||||
from schemas.base import BaseSchema, OkMessageSchema
|
||||
from schemas.client import ClientSchema
|
||||
from schemas.product import ProductSchema
|
||||
from schemas.service import ServiceSchema
|
||||
@@ -12,14 +12,14 @@ from schemas.user import UserSchema
|
||||
|
||||
|
||||
# region Entities
|
||||
class FastDeal(CustomModelCamel):
|
||||
class FastDeal(BaseSchema):
|
||||
name: str
|
||||
client: ClientSchema
|
||||
comment: str
|
||||
acceptance_date: datetime.datetime
|
||||
|
||||
|
||||
class DealSummary(CustomModelCamel):
|
||||
class DealSummary(BaseSchema):
|
||||
id: int
|
||||
name: str
|
||||
client_name: str
|
||||
@@ -30,24 +30,24 @@ class DealSummary(CustomModelCamel):
|
||||
rank: int
|
||||
|
||||
|
||||
class DealServiceSchema(CustomModelCamel):
|
||||
class DealServiceSchema(BaseSchema):
|
||||
service: ServiceSchema
|
||||
quantity: int
|
||||
price: int
|
||||
|
||||
|
||||
class DealProductServiceSchema(CustomModelCamel):
|
||||
class DealProductServiceSchema(BaseSchema):
|
||||
service: ServiceSchema
|
||||
price: int
|
||||
|
||||
|
||||
class DealProductSchema(CustomModelCamel):
|
||||
class DealProductSchema(BaseSchema):
|
||||
product: ProductSchema
|
||||
services: List[DealProductServiceSchema]
|
||||
quantity: int
|
||||
|
||||
|
||||
class DealStatusHistorySchema(CustomModelCamel):
|
||||
class DealStatusHistorySchema(BaseSchema):
|
||||
user: UserSchema
|
||||
changed_at: datetime.datetime
|
||||
from_status: int
|
||||
@@ -56,7 +56,7 @@ class DealStatusHistorySchema(CustomModelCamel):
|
||||
comment: str | None = None
|
||||
|
||||
|
||||
class DealSchema(CustomModelCamel):
|
||||
class DealSchema(BaseSchema):
|
||||
id: int
|
||||
name: str
|
||||
client_id: int
|
||||
@@ -69,29 +69,30 @@ class DealSchema(CustomModelCamel):
|
||||
is_completed: bool
|
||||
client: ClientSchema
|
||||
comment: str
|
||||
shipping_warehouse: Optional[ShippingWarehouseSchema] = None
|
||||
shipping_warehouse: Optional[Union[ShippingWarehouseSchema, str]] = None
|
||||
|
||||
|
||||
class DealGeneralInfoSchema(CustomModelCamel):
|
||||
class DealGeneralInfoSchema(BaseSchema):
|
||||
name: str
|
||||
is_deleted: bool
|
||||
is_completed: bool
|
||||
comment: str
|
||||
shipping_warehouse: Optional[str] = None
|
||||
|
||||
|
||||
# endregion Entities
|
||||
|
||||
# region Requests
|
||||
class DealChangeStatusRequest(CustomModelCamel):
|
||||
class DealChangeStatusRequest(BaseSchema):
|
||||
deal_id: int
|
||||
new_status: int
|
||||
|
||||
|
||||
class DealCreateRequest(CustomModelCamel):
|
||||
class DealCreateRequest(BaseSchema):
|
||||
name: str
|
||||
|
||||
|
||||
class DealQuickCreateRequest(CustomModelCamel):
|
||||
class DealQuickCreateRequest(BaseSchema):
|
||||
name: constr(strip_whitespace=True)
|
||||
client_name: constr(strip_whitespace=True)
|
||||
comment: str
|
||||
@@ -99,70 +100,70 @@ class DealQuickCreateRequest(CustomModelCamel):
|
||||
shipping_warehouse: constr(strip_whitespace=True)
|
||||
|
||||
|
||||
class DealSummaryRequest(CustomModelCamel):
|
||||
class DealSummaryRequest(BaseSchema):
|
||||
pass
|
||||
|
||||
|
||||
class DealAddServicesRequest(CustomModelCamel):
|
||||
class DealAddServicesRequest(BaseSchema):
|
||||
deal_id: int
|
||||
services: list[DealServiceSchema]
|
||||
|
||||
|
||||
class DealUpdateServiceQuantityRequest(CustomModelCamel):
|
||||
class DealUpdateServiceQuantityRequest(BaseSchema):
|
||||
deal_id: int
|
||||
service_id: int
|
||||
quantity: int
|
||||
|
||||
|
||||
class DealUpdateServiceRequest(CustomModelCamel):
|
||||
class DealUpdateServiceRequest(BaseSchema):
|
||||
deal_id: int
|
||||
service: DealServiceSchema
|
||||
|
||||
|
||||
class DealAddServiceRequest(CustomModelCamel):
|
||||
class DealAddServiceRequest(BaseSchema):
|
||||
deal_id: int
|
||||
service_id: int
|
||||
quantity: int
|
||||
price: int
|
||||
|
||||
|
||||
class DealDeleteServiceRequest(CustomModelCamel):
|
||||
class DealDeleteServiceRequest(BaseSchema):
|
||||
deal_id: int
|
||||
service_id: int
|
||||
|
||||
|
||||
class DealDeleteServicesRequest(CustomModelCamel):
|
||||
class DealDeleteServicesRequest(BaseSchema):
|
||||
deal_id: int
|
||||
service_ids: List[int]
|
||||
|
||||
|
||||
class DealUpdateProductQuantityRequest(CustomModelCamel):
|
||||
class DealUpdateProductQuantityRequest(BaseSchema):
|
||||
deal_id: int
|
||||
product_id: int
|
||||
quantity: int
|
||||
|
||||
|
||||
class DealAddProductRequest(CustomModelCamel):
|
||||
class DealAddProductRequest(BaseSchema):
|
||||
deal_id: int
|
||||
product: DealProductSchema
|
||||
|
||||
|
||||
class DealDeleteProductRequest(CustomModelCamel):
|
||||
class DealDeleteProductRequest(BaseSchema):
|
||||
deal_id: int
|
||||
product_id: int
|
||||
|
||||
|
||||
class DealDeleteProductsRequest(CustomModelCamel):
|
||||
class DealDeleteProductsRequest(BaseSchema):
|
||||
deal_id: int
|
||||
product_ids: List[int]
|
||||
|
||||
|
||||
class DealUpdateGeneralInfoRequest(CustomModelCamel):
|
||||
class DealUpdateGeneralInfoRequest(BaseSchema):
|
||||
deal_id: int
|
||||
data: DealGeneralInfoSchema
|
||||
|
||||
|
||||
class DealSummaryReorderRequest(CustomModelCamel):
|
||||
class DealSummaryReorderRequest(BaseSchema):
|
||||
deal_id: int
|
||||
status: int
|
||||
index: int
|
||||
@@ -170,11 +171,11 @@ class DealSummaryReorderRequest(CustomModelCamel):
|
||||
comment: str | None = None
|
||||
|
||||
|
||||
class DealDeleteRequest(CustomModelCamel):
|
||||
class DealDeleteRequest(BaseSchema):
|
||||
deal_id: int
|
||||
|
||||
|
||||
class DealUpdateProductRequest(CustomModelCamel):
|
||||
class DealUpdateProductRequest(BaseSchema):
|
||||
deal_id: int
|
||||
product: DealProductSchema
|
||||
|
||||
@@ -190,32 +191,32 @@ class DealDeleteServicesResponse(OkMessageSchema):
|
||||
pass
|
||||
|
||||
|
||||
class DealGetAllResponse(CustomModelCamel):
|
||||
class DealGetAllResponse(BaseSchema):
|
||||
deals: List[DealSchema]
|
||||
|
||||
|
||||
class DealChangeStatusResponse(CustomModelCamel):
|
||||
class DealChangeStatusResponse(BaseSchema):
|
||||
ok: bool
|
||||
|
||||
|
||||
class DealCreateResponse(CustomModelCamel):
|
||||
class DealCreateResponse(BaseSchema):
|
||||
ok: bool
|
||||
|
||||
|
||||
class DealQuickCreateResponse(CustomModelCamel):
|
||||
class DealQuickCreateResponse(BaseSchema):
|
||||
deal_id: int
|
||||
|
||||
|
||||
class DealSummaryResponse(CustomModelCamel):
|
||||
class DealSummaryResponse(BaseSchema):
|
||||
summaries: List[DealSummary]
|
||||
|
||||
|
||||
class DealAddServicesResponse(CustomModelCamel):
|
||||
class DealAddServicesResponse(BaseSchema):
|
||||
ok: bool
|
||||
message: str
|
||||
|
||||
|
||||
class DealUpdateServiceQuantityResponse(CustomModelCamel):
|
||||
class DealUpdateServiceQuantityResponse(BaseSchema):
|
||||
ok: bool
|
||||
message: str
|
||||
|
||||
|
||||
20
schemas/position.py
Normal file
20
schemas/position.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from typing import List
|
||||
|
||||
from schemas.base import BaseSchema, OkMessageSchema
|
||||
|
||||
|
||||
class PositionSchema(BaseSchema):
|
||||
name: str
|
||||
key: str
|
||||
|
||||
|
||||
class CreatePositionRequest(BaseSchema):
|
||||
data: PositionSchema
|
||||
|
||||
|
||||
class GetAllPositionsResponse(BaseSchema):
|
||||
positions: List[PositionSchema]
|
||||
|
||||
|
||||
class CreatePositionResponse(OkMessageSchema):
|
||||
pass
|
||||
@@ -1,18 +1,18 @@
|
||||
from typing import List
|
||||
from schemas.barcode import BarcodeTemplateSchema
|
||||
from schemas.base import CustomModelCamel, PaginationInfoSchema, OkMessageSchema
|
||||
from schemas.base import BaseSchema, PaginationInfoSchema, OkMessageSchema
|
||||
from pydantic import field_validator, model_validator
|
||||
from models import ProductBarcode
|
||||
|
||||
|
||||
# region Entities
|
||||
class ProductImageSchema(CustomModelCamel):
|
||||
class ProductImageSchema(BaseSchema):
|
||||
id: int
|
||||
product_id: int
|
||||
image_url: str
|
||||
|
||||
|
||||
class BaseProductSchema(CustomModelCamel):
|
||||
class BaseProductSchema(BaseSchema):
|
||||
name: str
|
||||
article: str | None = ''
|
||||
client_id: int
|
||||
@@ -55,25 +55,25 @@ class ProductCreateRequest(BaseProductSchema):
|
||||
pass
|
||||
|
||||
|
||||
class ProductDeleteRequest(CustomModelCamel):
|
||||
class ProductDeleteRequest(BaseSchema):
|
||||
product_id: int
|
||||
|
||||
|
||||
class ProductUpdateRequest(CustomModelCamel):
|
||||
class ProductUpdateRequest(BaseSchema):
|
||||
product: ProductSchema
|
||||
|
||||
|
||||
class ProductAddBarcodeRequest(CustomModelCamel):
|
||||
class ProductAddBarcodeRequest(BaseSchema):
|
||||
product_id: int
|
||||
barcode: str
|
||||
|
||||
|
||||
class ProductDeleteBarcodeRequest(CustomModelCamel):
|
||||
class ProductDeleteBarcodeRequest(BaseSchema):
|
||||
product_id: int
|
||||
barcode: str
|
||||
|
||||
|
||||
class ProductGenerateBarcodeRequest(CustomModelCamel):
|
||||
class ProductGenerateBarcodeRequest(BaseSchema):
|
||||
product_id: int
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ class ProductCreateResponse(OkMessageSchema):
|
||||
product_id: int | None = None
|
||||
|
||||
|
||||
class ProductGetResponse(CustomModelCamel):
|
||||
class ProductGetResponse(BaseSchema):
|
||||
products: List[ProductSchema]
|
||||
pagination_info: PaginationInfoSchema
|
||||
|
||||
@@ -109,7 +109,7 @@ class ProductGenerateBarcodeResponse(OkMessageSchema):
|
||||
barcode: str
|
||||
|
||||
|
||||
class ProductExistsBarcodeResponse(CustomModelCamel):
|
||||
class ProductExistsBarcodeResponse(BaseSchema):
|
||||
exists: bool
|
||||
|
||||
|
||||
|
||||
26
schemas/role.py
Normal file
26
schemas/role.py
Normal file
@@ -0,0 +1,26 @@
|
||||
from typing import List
|
||||
|
||||
from schemas.base import BaseSchema
|
||||
|
||||
|
||||
# region Entities
|
||||
class PermissionSchema(BaseSchema):
|
||||
key: str
|
||||
name: str
|
||||
|
||||
|
||||
class RoleSchema(BaseSchema):
|
||||
key: str
|
||||
name: str
|
||||
permissions: List[PermissionSchema]
|
||||
|
||||
|
||||
# endregion
|
||||
|
||||
# region Requests
|
||||
# endregion
|
||||
|
||||
# region Responses
|
||||
class GetAllRolesResponse(BaseSchema):
|
||||
roles: List[RoleSchema]
|
||||
# endregion
|
||||
@@ -1,22 +1,22 @@
|
||||
from typing import List, Optional
|
||||
|
||||
from schemas.base import CustomModelCamel, OkMessageSchema, BaseEnumSchema
|
||||
from schemas.base import BaseSchema, OkMessageSchema, BaseEnumSchema
|
||||
|
||||
|
||||
# region Entities
|
||||
class ServicePriceRangeSchema(CustomModelCamel):
|
||||
class ServicePriceRangeSchema(BaseSchema):
|
||||
id: int | None
|
||||
from_quantity: int
|
||||
to_quantity: int
|
||||
price: float
|
||||
|
||||
|
||||
class ServiceCategorySchema(CustomModelCamel):
|
||||
class ServiceCategorySchema(BaseSchema):
|
||||
id: int
|
||||
name: str
|
||||
|
||||
|
||||
class ServiceSchema(CustomModelCamel):
|
||||
class ServiceSchema(BaseSchema):
|
||||
id: int
|
||||
name: str
|
||||
category: ServiceCategorySchema
|
||||
@@ -30,19 +30,19 @@ class ServiceSchema(CustomModelCamel):
|
||||
|
||||
|
||||
# region Requests
|
||||
class ServiceCreateRequest(CustomModelCamel):
|
||||
class ServiceCreateRequest(BaseSchema):
|
||||
service: ServiceSchema
|
||||
|
||||
|
||||
class ServiceCreateCategoryRequest(CustomModelCamel):
|
||||
class ServiceCreateCategoryRequest(BaseSchema):
|
||||
category: ServiceCategorySchema
|
||||
|
||||
|
||||
class ServiceUpdateRequest(CustomModelCamel):
|
||||
class ServiceUpdateRequest(BaseSchema):
|
||||
data: ServiceSchema
|
||||
|
||||
|
||||
class ServiceDeleteRequest(CustomModelCamel):
|
||||
class ServiceDeleteRequest(BaseSchema):
|
||||
service_id: int
|
||||
|
||||
|
||||
@@ -50,11 +50,11 @@ class ServiceDeleteRequest(CustomModelCamel):
|
||||
|
||||
|
||||
# region Responses
|
||||
class ServiceGetAllResponse(CustomModelCamel):
|
||||
class ServiceGetAllResponse(BaseSchema):
|
||||
services: List[ServiceSchema]
|
||||
|
||||
|
||||
class ServiceGetAllCategoriesResponse(CustomModelCamel):
|
||||
class ServiceGetAllCategoriesResponse(BaseSchema):
|
||||
categories: List[ServiceCategorySchema]
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
from typing import List
|
||||
|
||||
from schemas.base import CustomModelCamel
|
||||
from schemas.base import BaseSchema
|
||||
|
||||
|
||||
class ShippingWarehouseSchema(CustomModelCamel):
|
||||
class ShippingWarehouseSchema(BaseSchema):
|
||||
id: int
|
||||
name: str
|
||||
|
||||
|
||||
class GetAllShippingWarehousesResponse(CustomModelCamel):
|
||||
class GetAllShippingWarehousesResponse(BaseSchema):
|
||||
shipping_warehouses: List[ShippingWarehouseSchema]
|
||||
|
||||
@@ -1,8 +1,50 @@
|
||||
from schemas.base import CustomModelCamel
|
||||
from typing import List, Optional
|
||||
|
||||
from schemas.base import BaseSchema, OkMessageSchema
|
||||
from schemas.position import PositionSchema
|
||||
from schemas.role import RoleSchema
|
||||
|
||||
|
||||
class UserSchema(CustomModelCamel):
|
||||
# region Entities
|
||||
|
||||
|
||||
class BaseUser(BaseSchema):
|
||||
id: int
|
||||
telegram_id: int
|
||||
phone_number: str | None = None
|
||||
first_name: str
|
||||
second_name: str
|
||||
comment: str
|
||||
|
||||
is_admin: bool
|
||||
is_blocked: bool
|
||||
is_deleted: bool
|
||||
|
||||
|
||||
class UserSchema(BaseUser):
|
||||
role_key: str
|
||||
role: RoleSchema
|
||||
position: Optional[PositionSchema] = None
|
||||
|
||||
|
||||
class UserUpdate(BaseUser):
|
||||
position_key: Optional[str] = None
|
||||
|
||||
|
||||
# endregion
|
||||
|
||||
# region Requests
|
||||
class UpdateUserRequest(BaseSchema):
|
||||
data: UserUpdate
|
||||
|
||||
|
||||
# endregion
|
||||
|
||||
# region Responses
|
||||
class GetAllUsersResponse(BaseSchema):
|
||||
users: List[UserSchema]
|
||||
|
||||
|
||||
class UpdateUserResponse(OkMessageSchema):
|
||||
pass
|
||||
# endregion
|
||||
|
||||
Reference in New Issue
Block a user