._.
This commit is contained in:
parent
4d437e505b
commit
2a473f5d3a
@ -1,5 +1,5 @@
|
|||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from typing import Optional
|
from typing import Optional, List
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
|
|
||||||
@ -9,6 +9,8 @@ class DeliveryOrderEntity(BaseModel):
|
|||||||
count_trucks: int
|
count_trucks: int
|
||||||
deadline: datetime
|
deadline: datetime
|
||||||
price: float
|
price: float
|
||||||
|
estimated_route_time_in_minutes: Optional[int] = None
|
||||||
|
route: Optional[List[dict]] = None
|
||||||
truck_name: Optional[str] = None
|
truck_name: Optional[str] = None
|
||||||
truck_id: Optional[int] = None
|
truck_id: Optional[int] = None
|
||||||
total_order_id: Optional[int] = None
|
total_order_id: Optional[int] = None
|
||||||
|
|||||||
@ -22,7 +22,9 @@ class DeliveryOrdersService:
|
|||||||
price=round(o.price, 2),
|
price=round(o.price, 2),
|
||||||
truck_id=o.truck_id,
|
truck_id=o.truck_id,
|
||||||
truck_name=o.truck.name,
|
truck_name=o.truck.name,
|
||||||
total_order_id=o.total_order_id
|
total_order_id=o.total_order_id,
|
||||||
|
estimated_route_time_in_minutes=o.estimated_route_time_in_minutes,
|
||||||
|
route=o.route,
|
||||||
)
|
)
|
||||||
for o in delivery_orders
|
for o in delivery_orders
|
||||||
]
|
]
|
||||||
@ -38,7 +40,9 @@ class DeliveryOrdersService:
|
|||||||
price=o.price,
|
price=o.price,
|
||||||
truck_id=o.truck_id,
|
truck_id=o.truck_id,
|
||||||
truck_name=o.truck.name,
|
truck_name=o.truck.name,
|
||||||
total_order_id=o.total_order_id
|
total_order_id=o.total_order_id,
|
||||||
|
estimated_route_time_in_minutes=o.estimated_route_time_in_minutes,
|
||||||
|
route=o.route,
|
||||||
)
|
)
|
||||||
for o in delivery_orders
|
for o in delivery_orders
|
||||||
]
|
]
|
||||||
@ -54,7 +58,10 @@ class DeliveryOrdersService:
|
|||||||
price=delivery_order.price,
|
price=delivery_order.price,
|
||||||
truck_id=delivery_order.truck_id,
|
truck_id=delivery_order.truck_id,
|
||||||
truck_name=delivery_order.truck.name,
|
truck_name=delivery_order.truck.name,
|
||||||
total_order_id=delivery_order.total_order_id
|
total_order_id=delivery_order.total_order_id,
|
||||||
|
estimated_route_time_in_minutes=delivery_order.estimated_route_time_in_minutes,
|
||||||
|
route=delivery_order.route,
|
||||||
|
|
||||||
)
|
)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@ -65,7 +72,9 @@ class DeliveryOrdersService:
|
|||||||
deadline=entity.deadline,
|
deadline=entity.deadline,
|
||||||
price=entity.price,
|
price=entity.price,
|
||||||
truck_id=entity.truck_id,
|
truck_id=entity.truck_id,
|
||||||
total_order_id=entity.total_order_id
|
total_order_id=entity.total_order_id,
|
||||||
|
estimated_route_time_in_minutes=entity.estimated_route_time_in_minutes,
|
||||||
|
route=entity.route,
|
||||||
)
|
)
|
||||||
created_delivery_order = self.repository.create(delivery_order_model)
|
created_delivery_order = self.repository.create(delivery_order_model)
|
||||||
return DeliveryOrderEntity(
|
return DeliveryOrderEntity(
|
||||||
@ -75,11 +84,14 @@ class DeliveryOrdersService:
|
|||||||
deadline=created_delivery_order.deadline,
|
deadline=created_delivery_order.deadline,
|
||||||
price=created_delivery_order.price,
|
price=created_delivery_order.price,
|
||||||
truck_id=created_delivery_order.truck_id,
|
truck_id=created_delivery_order.truck_id,
|
||||||
total_order_id=created_delivery_order.total_order_id
|
total_order_id=created_delivery_order.total_order_id,
|
||||||
|
estimated_route_time_in_minutes=created_delivery_order.estimated_route_time_in_minutes,
|
||||||
|
route=created_delivery_order.route,
|
||||||
)
|
)
|
||||||
|
|
||||||
def update_delivery_order(self, delivery_order_id: int, entity: DeliveryOrderEntity) -> Optional[
|
def update_delivery_order(self, delivery_order_id: int, entity: DeliveryOrderEntity) -> Optional[
|
||||||
DeliveryOrderEntity]:
|
DeliveryOrderEntity
|
||||||
|
]:
|
||||||
delivery_order_model = self.repository.get_by_id(delivery_order_id)
|
delivery_order_model = self.repository.get_by_id(delivery_order_id)
|
||||||
if delivery_order_model:
|
if delivery_order_model:
|
||||||
delivery_order_model.order_datetime = entity.order_datetime
|
delivery_order_model.order_datetime = entity.order_datetime
|
||||||
@ -88,6 +100,8 @@ class DeliveryOrdersService:
|
|||||||
delivery_order_model.price = entity.price
|
delivery_order_model.price = entity.price
|
||||||
delivery_order_model.truck_id = entity.truck_id
|
delivery_order_model.truck_id = entity.truck_id
|
||||||
delivery_order_model.total_order_id = entity.total_order_id
|
delivery_order_model.total_order_id = entity.total_order_id
|
||||||
|
delivery_order_model.estimated_route_time_in_minutes = entity.estimated_route_time_in_minutes
|
||||||
|
delivery_order_model.route = entity.route
|
||||||
self.repository.update(delivery_order_model)
|
self.repository.update(delivery_order_model)
|
||||||
return DeliveryOrderEntity(
|
return DeliveryOrderEntity(
|
||||||
id=delivery_order_model.id,
|
id=delivery_order_model.id,
|
||||||
@ -96,7 +110,9 @@ class DeliveryOrdersService:
|
|||||||
deadline=delivery_order_model.deadline,
|
deadline=delivery_order_model.deadline,
|
||||||
price=delivery_order_model.price,
|
price=delivery_order_model.price,
|
||||||
truck_id=delivery_order_model.truck_id,
|
truck_id=delivery_order_model.truck_id,
|
||||||
total_order_id=delivery_order_model.total_order_id
|
total_order_id=delivery_order_model.total_order_id,
|
||||||
|
estimated_route_time_in_minutes=delivery_order_model.estimated_route_time_in_minutes,
|
||||||
|
route=delivery_order_model.route,
|
||||||
)
|
)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
from sqlalchemy import Column, Integer, DateTime, ForeignKey, Float
|
from sqlalchemy import Column, Integer, DateTime, ForeignKey, Float, JSON
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy.orm import relationship
|
||||||
|
|
||||||
from app.infrastructure.database.models import Base
|
from app.infrastructure.database.models import Base
|
||||||
@ -12,6 +12,8 @@ class DeliveryOrder(Base):
|
|||||||
count_trucks = Column(Integer, nullable=False)
|
count_trucks = Column(Integer, nullable=False)
|
||||||
deadline = Column(DateTime, nullable=False)
|
deadline = Column(DateTime, nullable=False)
|
||||||
price = Column(Float, nullable=False)
|
price = Column(Float, nullable=False)
|
||||||
|
estimated_route_time_in_minutes = Column(Integer)
|
||||||
|
route = Column(JSON)
|
||||||
|
|
||||||
truck_id = Column(Integer, ForeignKey('trucks.id'))
|
truck_id = Column(Integer, ForeignKey('trucks.id'))
|
||||||
total_order_id = Column(Integer, ForeignKey('total_orders.id'))
|
total_order_id = Column(Integer, ForeignKey('total_orders.id'))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user