118 lines
3.3 KiB
Python
118 lines
3.3 KiB
Python
from fastapi import APIRouter
|
|
from fastapi.responses import JSONResponse
|
|
from fastapi.encoders import jsonable_encoder
|
|
from database import session
|
|
|
|
from app.models.auto import Auto_Delivery, Tickets_Auto_Delivery
|
|
from app.models.delivery import Delivery
|
|
|
|
|
|
|
|
router = APIRouter(
|
|
prefix="/delivery",
|
|
tags=["delivery"],
|
|
responses={404: {"description": "Not found"}},
|
|
)
|
|
|
|
|
|
|
|
@router.get("/all/customers", status_code=200)
|
|
def get_delivery_customers():
|
|
|
|
automatics = (
|
|
session.query(Auto_Delivery)
|
|
.filter(Auto_Delivery.auto_status.in_([1, 3]))
|
|
.order_by(Auto_Delivery.estimated_gallons_left.asc())
|
|
.all()
|
|
)
|
|
|
|
return JSONResponse(content=jsonable_encoder(automatics), status_code=200)
|
|
|
|
|
|
@router.get("/driver/{driver_employee_id}", status_code=200)
|
|
def get_delivery_for_specific_driver(driver_employee_id: int):
|
|
automatics = (
|
|
session.query(Delivery)
|
|
.filter(Delivery.driver_employee_id == driver_employee_id)
|
|
.filter(Delivery.automatic == 1)
|
|
.filter(Delivery.delivery_status == 0)
|
|
.all()
|
|
)
|
|
|
|
return JSONResponse(content=jsonable_encoder(automatics), status_code=200)
|
|
|
|
@router.get("/delivery/{ticket_id}", status_code=200)
|
|
def get_delivery_by_openticket(ticket_id):
|
|
get_delivery = (
|
|
session.query(Auto_Delivery)
|
|
.filter(Auto_Delivery.id == ticket_id)
|
|
.first()
|
|
)
|
|
|
|
return JSONResponse(content=jsonable_encoder(get_delivery), status_code=200)
|
|
|
|
|
|
@router.get("/finddelivery/{ticket_id}", status_code=200)
|
|
def get_delivery_by_openticket(ticket_id):
|
|
get_delivery = (
|
|
session.query(Auto_Delivery)
|
|
.filter(Auto_Delivery.open_ticket_id == ticket_id)
|
|
.first()
|
|
)
|
|
|
|
return JSONResponse(content=jsonable_encoder(get_delivery), status_code=200)
|
|
|
|
|
|
|
|
@router.get("/autoticket/{delivery_id_order}", status_code=200)
|
|
def get_auto_by_ticket(delivery_id_order):
|
|
get_delivery = (
|
|
session.query(Tickets_Auto_Delivery)
|
|
.filter(Tickets_Auto_Delivery.id == delivery_id_order)
|
|
.first()
|
|
)
|
|
|
|
return JSONResponse(content=jsonable_encoder(get_delivery), status_code=200)
|
|
|
|
|
|
@router.get("/all/profile/{customer_id}", status_code=200)
|
|
def get_autos_customers(customer_id):
|
|
|
|
get_delivery = (
|
|
session.query(Tickets_Auto_Delivery)
|
|
.filter(Tickets_Auto_Delivery.customer_id == customer_id)
|
|
.order_by(Tickets_Auto_Delivery.id.desc())
|
|
.limit(5)
|
|
.all()
|
|
)
|
|
|
|
return JSONResponse(content=jsonable_encoder(get_delivery), status_code=200)
|
|
|
|
@router.get("/all/profile/profile/{customer_id}", status_code=200)
|
|
def get_autos_customers(customer_id):
|
|
|
|
get_delivery = (
|
|
session.query(Tickets_Auto_Delivery)
|
|
.filter(Tickets_Auto_Delivery.customer_id == customer_id)
|
|
.order_by(Tickets_Auto_Delivery.id.desc())
|
|
.limit(25)
|
|
.all()
|
|
)
|
|
|
|
return JSONResponse(content=jsonable_encoder(get_delivery), status_code=200)
|
|
|
|
|
|
@router.put("/update_status/{auto_id}", status_code=200)
|
|
def update_auto_status(auto_id: int):
|
|
update_status = (
|
|
session.query(Auto_Delivery)
|
|
.filter(Auto_Delivery.id == auto_id)
|
|
.first()
|
|
)
|
|
|
|
if update_status:
|
|
update_status.auto_status = 3
|
|
session.commit()
|
|
return {"message": "Auto status updated to 3"}
|
|
return {"error": "Auto delivery not found"}
|