major claude changes

This commit is contained in:
2026-01-28 21:54:58 -05:00
parent 6316309184
commit ac4354716b
15 changed files with 269 additions and 95 deletions

View File

@@ -1,5 +1,8 @@
import logging
from fastapi import APIRouter, Request, HTTPException
from datetime import date
logger = logging.getLogger(__name__)
from database import session
from decimal import Decimal
@@ -52,7 +55,7 @@ async def update_auto(autoid: int, request: Request):
return {"ok": True, "message": "Delivery confirmed and customer factor refined successfully."}
except Exception as e:
print(str(e))
logger.error(str(e))
session.rollback()
raise HTTPException(status_code=500, detail=f"An internal error occurred: {str(e)}")

View File

@@ -1,10 +1,15 @@
from fastapi import APIRouter
import logging
from fastapi import APIRouter, Depends
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
from app.models.auth import Auth_User
from app.auth import get_current_user
logger = logging.getLogger(__name__)
@@ -17,8 +22,8 @@ router = APIRouter(
@router.get("/all/customers", status_code=200)
def get_delivery_customers():
def get_delivery_customers(current_user: Auth_User = Depends(get_current_user)):
logger.info(f"GET /delivery/all/customers - User: {current_user.username}")
automatics = (
session.query(Auto_Delivery)
.filter(Auto_Delivery.auto_status.in_([1, 3]))
@@ -27,10 +32,11 @@ def get_delivery_customers():
)
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):
def get_delivery_for_specific_driver(driver_employee_id: int, current_user: Auth_User = Depends(get_current_user)):
logger.info(f"GET /delivery/driver/{driver_employee_id} - User: {current_user.username}")
automatics = (
session.query(Delivery)
.filter(Delivery.driver_employee_id == driver_employee_id)
@@ -40,9 +46,10 @@ def get_delivery_for_specific_driver(driver_employee_id: int):
)
return JSONResponse(content=jsonable_encoder(automatics), status_code=200)
@router.get("/delivery/{ticket_id}", status_code=200)
def get_delivery_by_openticket(ticket_id):
def get_delivery_by_openticket(ticket_id, current_user: Auth_User = Depends(get_current_user)):
logger.info(f"GET /delivery/delivery/{ticket_id} - User: {current_user.username}")
get_delivery = (
session.query(Auto_Delivery)
.filter(Auto_Delivery.id == ticket_id)
@@ -50,10 +57,11 @@ def get_delivery_by_openticket(ticket_id):
)
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):
def get_delivery_by_findticket(ticket_id, current_user: Auth_User = Depends(get_current_user)):
logger.info(f"GET /delivery/finddelivery/{ticket_id} - User: {current_user.username}")
get_delivery = (
session.query(Auto_Delivery)
.filter(Auto_Delivery.open_ticket_id == ticket_id)
@@ -61,11 +69,12 @@ def get_delivery_by_openticket(ticket_id):
)
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):
def get_auto_by_ticket(delivery_id_order, current_user: Auth_User = Depends(get_current_user)):
logger.info(f"GET /delivery/autoticket/{delivery_id_order} - User: {current_user.username}")
get_delivery = (
session.query(Tickets_Auto_Delivery)
.filter(Tickets_Auto_Delivery.id == delivery_id_order)
@@ -73,11 +82,11 @@ def get_auto_by_ticket(delivery_id_order):
)
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):
def get_autos_customers(customer_id, current_user: Auth_User = Depends(get_current_user)):
logger.info(f"GET /delivery/all/profile/{customer_id} - User: {current_user.username}")
get_delivery = (
session.query(Tickets_Auto_Delivery)
.filter(Tickets_Auto_Delivery.customer_id == customer_id)
@@ -89,8 +98,8 @@ def get_autos_customers(customer_id):
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):
def get_autos_customers_extended(customer_id, current_user: Auth_User = Depends(get_current_user)):
logger.info(f"GET /delivery/all/profile/profile/{customer_id} - User: {current_user.username}")
get_delivery = (
session.query(Tickets_Auto_Delivery)
.filter(Tickets_Auto_Delivery.customer_id == customer_id)
@@ -103,8 +112,8 @@ def get_autos_customers(customer_id):
@router.get("/auto/customer/{customer_id}", status_code=200)
def get_auto_delivery_by_customer(customer_id):
def get_auto_delivery_by_customer(customer_id, current_user: Auth_User = Depends(get_current_user)):
logger.info(f"GET /delivery/auto/customer/{customer_id} - User: {current_user.username}")
get_auto_delivery = (
session.query(Auto_Delivery)
.filter(Auto_Delivery.customer_id == customer_id)
@@ -115,7 +124,8 @@ def get_auto_delivery_by_customer(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, current_user: Auth_User = Depends(get_current_user)):
logger.info(f"PUT /delivery/update_status/{auto_id} - User: {current_user.username}")
update_status = (
session.query(Auto_Delivery)
.filter(Auto_Delivery.id == auto_id)

View File

@@ -1,3 +1,4 @@
import logging
from fastapi import APIRouter
from fastapi.responses import JSONResponse
from fastapi.encoders import jsonable_encoder
@@ -9,6 +10,8 @@ from decimal import Decimal
from app.models.auto import Auto_Delivery, Tickets_Auto_Delivery, Auto_Temp
from app.models.delivery import Delivery
logger = logging.getLogger(__name__)
# Constants from fuel_estimator
HOT_WATER_DAILY_USAGE = Decimal('1.0')
K_FACTOR_SMOOTHING_WEIGHT = Decimal('0.7')
@@ -33,6 +36,7 @@ def fix_customer_last_delivered():
Returns statistics and a list of changes made.
"""
logger.info("GET /fixstuff/lastdelivered - Fixing customer last delivered dates")
auto_deliveries = session.query(Auto_Delivery).all()
changes = []
total_customers = len(auto_deliveries)
@@ -76,6 +80,7 @@ def estimate_customer_gallons(update_db: int):
Multiple deliveries: use historical average. Includes address and scaling factor.
When update_db=1, updates estimated_gallons_left and house_factor in database.
"""
logger.info(f"GET /fixstuff/estimate_gallons/{update_db} - Estimating customer gallons (update_db={update_db})")
auto_deliveries = session.query(Auto_Delivery).all()
estimates = []
for ad in auto_deliveries:

View File

@@ -1,3 +1,4 @@
import logging
from fastapi import APIRouter
from fastapi.responses import JSONResponse
from fastapi.encoders import jsonable_encoder
@@ -10,6 +11,8 @@ from app.models.customer import Customer_Customer, Customer_estimate_gallons
from app.models.delivery import Delivery
from app.models.auto import Auto_Temp
logger = logging.getLogger(__name__)
# Constants from fuel_estimator
HOT_WATER_DAILY_USAGE = Decimal('1.0')
K_FACTOR_SMOOTHING_WEIGHT = Decimal('0.7')
@@ -42,6 +45,7 @@ def fix_customer_last_delivered():
Returns statistics and a list of changes made.
"""
logger.info("GET /fixstuff_customer/lastdelivered - Fixing customer last delivered dates")
session.rollback() # Reset any aborted transaction state
customer_estimates = session.query(Customer_estimate_gallons).all()
changes = []
@@ -87,6 +91,7 @@ def estimate_customer_gallons(update_db: int):
Multiple deliveries: use historical average. Includes address and scaling factor.
When update_db=1, updates estimated_gallons_left and house_factor in database.
"""
logger.info(f"GET /fixstuff_customer/estimate_gallons/{update_db} - Estimating customer gallons (update_db={update_db})")
session.rollback() # Reset any aborted transaction state
# Check if weather data is available
@@ -235,6 +240,7 @@ def estimate_customer_gallons_specific(customer_id: int):
Estimates current gallons for a specific regular customer based on delivery history and weather.
Returns estimation data for the specified customer only.
"""
logger.info(f"GET /fixstuff_customer/estimate_gallons/customer/{customer_id} - Estimating gallons for specific customer")
session.rollback() # Reset any aborted transaction state
# Check if weather data is available
@@ -386,6 +392,7 @@ def populate_customer_estimates():
Returns statistics on records created.
"""
logger.info("GET /fixstuff_customer/populate_estimates - Populating customer estimates")
session.rollback() # Reset any aborted transaction state
# Get all regular customers (customer_automatic == 0)

View File

@@ -1,6 +1,9 @@
import logging
from fastapi import APIRouter, HTTPException
from database import session
logger = logging.getLogger(__name__)
from app.script.fuel_estimator import FuelEstimator
from app.script.temp_getter import fetch_and_store_daily_temp
from app.script.fuel_estimator_customer import FuelEstimatorCustomer
@@ -45,7 +48,7 @@ def update_all_customer_fuel_levels_auto():
except Exception as e:
session.rollback()
# Log the exception e
print(str(e))
logger.error(str(e))
return {"ok": False, "message": "An internal error occurred."}
@@ -63,5 +66,5 @@ def update_all_customer_fuel_levels_normal():
except Exception as e:
session.rollback()
# Log the exception e
print(str(e))
logger.error(str(e))
return {"ok": False, "message": "An internal error occurred."}