From 590042521d49282dc41b37f1d0dcc2273439bb97 Mon Sep 17 00:00:00 2001 From: admin Date: Mon, 30 Sep 2024 08:49:19 +0300 Subject: [PATCH] fix: new deal statuses, delivery date, receiving slot date --- models/deal.py | 26 +++++++++++++++++++++----- schemas/deal.py | 8 ++++++++ services/deal.py | 6 +++++- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/models/deal.py b/models/deal.py index f3a1dfe..a3e29bf 100644 --- a/models/deal.py +++ b/models/deal.py @@ -1,3 +1,4 @@ +from datetime import datetime from enum import IntEnum, unique from typing import Optional, TYPE_CHECKING @@ -12,15 +13,27 @@ if TYPE_CHECKING: from . import DealBillRequest, ServicePriceCategory +# @unique +# class DealStatus(IntEnum): +# CREATED = 0 +# AWAITING_ACCEPTANCE = 1 +# PACKAGING = 2 +# AWAITING_SHIPMENT = 3 +# AWAITING_PAYMENT = 4 +# COMPLETED = 5 +# CANCELLED = 6 + @unique class DealStatus(IntEnum): CREATED = 0 AWAITING_ACCEPTANCE = 1 - PACKAGING = 2 - AWAITING_SHIPMENT = 3 - AWAITING_PAYMENT = 4 - COMPLETED = 5 - CANCELLED = 6 + READY_FOR_WORK = 2 + PACKAGING = 3 + AWAITING_SHIPMENT = 4 + IN_DELIVERY = 5 + AWAITING_PAYMENT = 6 + COMPLETED = 7 + CANCELLED = 8 class DealPriceCategory(BaseModel): @@ -51,6 +64,9 @@ class Deal(BaseModel): base_marketplace_key: Mapped[str] = mapped_column(ForeignKey("base_marketplaces.key"), nullable=True) base_marketplace: Mapped["BaseMarketplace"] = relationship(lazy="joined") + delivery_date: Mapped[Optional[datetime]] = mapped_column(nullable=True) + receiving_slot_date: Mapped[Optional[datetime]] = mapped_column(nullable=True) + services = relationship( 'DealService', back_populates='deal', diff --git a/schemas/deal.py b/schemas/deal.py index f09b845..dc32e22 100644 --- a/schemas/deal.py +++ b/schemas/deal.py @@ -38,6 +38,9 @@ class DealSummary(BaseSchema): shipment_warehouse_id: Optional[int] shipment_warehouse_name: Optional[str] + delivery_date: Optional[datetime.datetime] = None + receiving_slot_date: Optional[datetime.datetime] = None + class DealServiceSchema(BaseSchema): service: ServiceSchema @@ -85,6 +88,9 @@ class DealSchema(BaseSchema): bill_request: Optional[DealBillRequestSchema] = None category: Optional[ServicePriceCategorySchema] = None + delivery_date: Optional[datetime.datetime] = None + receiving_slot_date: Optional[datetime.datetime] = None + class DealGeneralInfoSchema(BaseSchema): name: str @@ -92,6 +98,8 @@ class DealGeneralInfoSchema(BaseSchema): is_completed: bool comment: str shipping_warehouse: Optional[str] = None + delivery_date: Optional[datetime.datetime] = None + receiving_slot_date: Optional[datetime.datetime] = None # endregion Entities diff --git a/services/deal.py b/services/deal.py index cbacbf6..c22f74a 100644 --- a/services/deal.py +++ b/services/deal.py @@ -250,7 +250,9 @@ class DealService(BaseService): created_at=deal.created_at, shipment_warehouse_id=deal.shipping_warehouse_id, shipment_warehouse_name=shipment_warehouse_name, - total_products=products_count + total_products=products_count, + delivery_date=deal.delivery_date, + receiving_slot_date=deal.receiving_slot_date ) ) return DealSummaryResponse(summaries=summaries) @@ -346,6 +348,8 @@ class DealService(BaseService): deal.comment = request.data.comment deal.is_deleted = request.data.is_deleted deal.is_completed = request.data.is_completed + deal.delivery_date = request.data.delivery_date + deal.receiving_slot_date = request.data.receiving_slot_date # Updating shipping warehouse shipping_warehouse_service = ShippingWarehouseService(self.session)