diff --git a/app/models/auto.py b/app/models/auto.py index 12a7aa7..6a41890 100644 --- a/app/models/auto.py +++ b/app/models/auto.py @@ -60,6 +60,7 @@ class Auto_Delivery(Base): house_factor = Column(DECIMAL(5, 2)) auto_status = Column(INTEGER()) open_ticket_id = Column(Integer, nullable=True) + hot_water_summer = Column(INTEGER()) class Tickets_Auto_Delivery(Base): diff --git a/app/routers/delivery.py b/app/routers/delivery.py index 8fd7235..5cee953 100644 --- a/app/routers/delivery.py +++ b/app/routers/delivery.py @@ -1,7 +1,8 @@ from fastapi import APIRouter, Request, Depends from fastapi.responses import JSONResponse from fastapi.encoders import jsonable_encoder -from database import session +from database import session, get_db +from sqlalchemy.orm import Session from app.models.auto import Auto_Delivery, Tickets_Auto_Delivery from app.models.delivery import Delivery @@ -23,7 +24,7 @@ def get_delivery_customers(): session.query(Auto_Delivery) .filter(Auto_Delivery.auto_status.in_([1, 3])) .order_by(Auto_Delivery.estimated_gallons_left.asc()) - .all() + .limit(1) ) return JSONResponse(content=jsonable_encoder(automatics), status_code=200) @@ -44,7 +45,6 @@ def get_delivery_for_specific_driver(driver_employee_id: int): @router.get("/delivery/{ticket_id}", status_code=200) def get_delivery_by_openticket(ticket_id): - print("here") get_delivery = ( session.query(Auto_Delivery) .filter(Auto_Delivery.id == ticket_id) @@ -56,7 +56,6 @@ def get_delivery_by_openticket(ticket_id): @router.get("/finddelivery/{ticket_id}", status_code=200) def get_delivery_by_openticket(ticket_id): - print("here") get_delivery = ( session.query(Auto_Delivery) .filter(Auto_Delivery.open_ticket_id == ticket_id) @@ -69,11 +68,6 @@ def get_delivery_by_openticket(ticket_id): @router.get("/autoticket/{delivery_id_order}", status_code=200) def get_auto_by_ticket(delivery_id_order): - print("here1") - print(delivery_id_order) - print(delivery_id_order) - print(delivery_id_order) - print(delivery_id_order) get_delivery = ( session.query(Tickets_Auto_Delivery) .filter(Tickets_Auto_Delivery.id == delivery_id_order) @@ -84,12 +78,13 @@ def get_auto_by_ticket(delivery_id_order): @router.get("/all/profile/{customer_id}", status_code=200) -def get_autos_customers(customer_id): +def get_autos_customers(customer_id, db: Session = Depends(get_db)): get_delivery = ( - session.query(Tickets_Auto_Delivery) + db.query(Tickets_Auto_Delivery) .filter(Tickets_Auto_Delivery.customer_id == customer_id) .order_by(Tickets_Auto_Delivery.id.desc()) + .limit(5) .all() ) @@ -97,15 +92,15 @@ def get_autos_customers(customer_id): @router.put("/update_status/{auto_id}", status_code=200) -def update_auto_status(auto_id: int): +def update_auto_status(auto_id: int, db: Session = Depends(get_db)): update_status = ( - session.query(Auto_Delivery) + db.query(Auto_Delivery) .filter(Auto_Delivery.id == auto_id) .first() ) if update_status: update_status.auto_status = 3 - session.commit() + db.commit() return {"message": "Auto status updated to 3"} return {"error": "Auto delivery not found"} diff --git a/database.py b/database.py index 1d2ab9b..ce18e61 100644 --- a/database.py +++ b/database.py @@ -22,7 +22,17 @@ url = URL.create( engine = create_engine(url) Session = sessionmaker(autocommit=False, autoflush=False, bind=engine) + +# Keep the global session for backwards compatibility session = Session() Base = declarative_base() -Base.metadata.create_all(engine) \ No newline at end of file +Base.metadata.create_all(engine) + +# Add per-request session dependency for FastAPI +def get_db(): + db = Session() + try: + yield db + finally: + db.close()