feat: вфыв

This commit is contained in:
2024-07-20 09:32:22 +03:00
parent e7235021f9
commit 6b09251141
27 changed files with 536 additions and 119 deletions

View File

@@ -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