diff --git a/app/core/entities/delivery_order.py b/app/core/entities/delivery_order.py index 672465d..c4fed53 100644 --- a/app/core/entities/delivery_order.py +++ b/app/core/entities/delivery_order.py @@ -6,7 +6,7 @@ from datetime import datetime class DeliveryOrderEntity(BaseModel): id: Optional[int] = None order_datetime: datetime - count_robots: int + count_trucks: int deadline: datetime price: float truck_id: Optional[int] = None diff --git a/app/core/usecases/delivery_order_service.py b/app/core/usecases/delivery_order_service.py index df933c3..0292a1d 100644 --- a/app/core/usecases/delivery_order_service.py +++ b/app/core/usecases/delivery_order_service.py @@ -17,7 +17,22 @@ class DeliveryOrdersService: DeliveryOrderEntity( id=o.id, order_datetime=o.order_datetime, - count_robots=o.count_robots, + count_trucks=o.count_trucks, + deadline=o.deadline, + price=o.price, + truck_id=o.truck_id, + total_order_id=o.total_order_id + ) + for o in delivery_orders + ] + + def get_delivery_order_by_total_order_id(self, total_order_id): + delivery_orders = self.repository.get_all_by_total_order_id(total_order_id) + return [ + DeliveryOrderEntity( + id=o.id, + order_datetime=o.order_datetime, + count_trucks=o.count_trucks, deadline=o.deadline, price=o.price, truck_id=o.truck_id, @@ -32,7 +47,7 @@ class DeliveryOrdersService: return DeliveryOrderEntity( id=delivery_order.id, order_datetime=delivery_order.order_datetime, - count_robots=delivery_order.count_robots, + count_trucks=delivery_order.count_trucks, deadline=delivery_order.deadline, price=delivery_order.price, truck_id=delivery_order.truck_id, @@ -43,7 +58,7 @@ class DeliveryOrdersService: def create_delivery_order(self, entity: DeliveryOrderEntity) -> DeliveryOrderEntity: delivery_order_model = DeliveryOrder( order_datetime=entity.order_datetime, - count_robots=entity.count_robots, + count_trucks=entity.count_trucks, deadline=entity.deadline, price=entity.price, truck_id=entity.truck_id, @@ -53,7 +68,7 @@ class DeliveryOrdersService: return DeliveryOrderEntity( id=created_delivery_order.id, order_datetime=created_delivery_order.order_datetime, - count_robots=created_delivery_order.count_robots, + count_trucks=created_delivery_order.count_trucks, deadline=created_delivery_order.deadline, price=created_delivery_order.price, truck_id=created_delivery_order.truck_id, @@ -65,7 +80,7 @@ class DeliveryOrdersService: delivery_order_model = self.repository.get_by_id(delivery_order_id) if delivery_order_model: delivery_order_model.order_datetime = entity.order_datetime - delivery_order_model.count_robots = entity.count_robots + delivery_order_model.count_trucks = entity.count_trucks delivery_order_model.deadline = entity.deadline delivery_order_model.price = entity.price delivery_order_model.truck_id = entity.truck_id @@ -74,7 +89,7 @@ class DeliveryOrdersService: return DeliveryOrderEntity( id=delivery_order_model.id, order_datetime=delivery_order_model.order_datetime, - count_robots=delivery_order_model.count_robots, + count_trucks=delivery_order_model.count_trucks, deadline=delivery_order_model.deadline, price=delivery_order_model.price, truck_id=delivery_order_model.truck_id, diff --git a/app/infrastructure/database/models/delivery_orders.py b/app/infrastructure/database/models/delivery_orders.py index 7172cb6..db6853d 100644 --- a/app/infrastructure/database/models/delivery_orders.py +++ b/app/infrastructure/database/models/delivery_orders.py @@ -9,7 +9,7 @@ class DeliveryOrder(Base): id = Column(Integer, primary_key=True, autoincrement=True) order_datetime = Column(DateTime, nullable=False) - count_robots = Column(Integer, nullable=False) + count_trucks = Column(Integer, nullable=False) deadline = Column(DateTime, nullable=False) price = Column(Float, nullable=False) diff --git a/app/infrastructure/database/repository/delivery_order_repository.py b/app/infrastructure/database/repository/delivery_order_repository.py index dce571a..6e1a4f6 100644 --- a/app/infrastructure/database/repository/delivery_order_repository.py +++ b/app/infrastructure/database/repository/delivery_order_repository.py @@ -9,6 +9,9 @@ class DeliveryOrdersRepository: def get_all(self): return self.db.query(DeliveryOrder).all() + def get_all_by_total_order_id(self, total_order_id): + return self.db.query(DeliveryOrder).filter(DeliveryOrder.total_order_id == total_order_id).all() + def get_by_id(self, delivery_order_id: int): return self.db.query(DeliveryOrder).filter(DeliveryOrder.id == delivery_order_id).first() diff --git a/app/infrastructure/fastapi/delivery_order_routes.py b/app/infrastructure/fastapi/delivery_order_routes.py index 51a8546..7aa10f9 100644 --- a/app/infrastructure/fastapi/delivery_order_routes.py +++ b/app/infrastructure/fastapi/delivery_order_routes.py @@ -29,6 +29,16 @@ def read_delivery_order(delivery_order_id: int, db: Session = Depends(get_db), return delivery_order +@router.get("/delivery-orders/total/{total_order_id}", response_model=List[DeliveryOrderEntity]) +def read_delivery_order_by_total(total_order_id: int, db: Session = Depends(get_db), + current_user: User = Depends(verify_token)): + service = DeliveryOrdersService(db) + delivery_order = service.get_delivery_order_by_total_order_id(total_order_id) + if delivery_order is None: + raise HTTPException(status_code=404, detail="Delivery order not found") + return delivery_order + + @router.post("/delivery-orders", response_model=DeliveryOrderEntity) def create_delivery_order(delivery_order: DeliveryOrderEntity, db: Session = Depends(get_db), current_user: User = Depends(verify_token)):