feat: вфыв
This commit is contained in:
		@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user