updated the tracker to have more features

This commit is contained in:
2025-09-30 12:53:11 -07:00
parent e001b9427c
commit 6e22eb6b0e
3 changed files with 149 additions and 135 deletions

View File

@@ -113,11 +113,10 @@ async def bulk_upload_meals(file: UploadFile = File(...), db: Session = Depends(
@router.post("/meals/add")
async def add_meal(request: Request, db: Session = Depends(get_db),
name: str = Form(...), meal_type: str = Form(...),
meal_time: str = Form(...)):
name: str = Form(...)):
try:
meal = Meal(name=name, meal_type=meal_type, meal_time=meal_time)
meal = Meal(name=name, meal_type="custom", meal_time="Custom")
db.add(meal)
db.commit()
db.refresh(meal)
@@ -128,8 +127,7 @@ async def add_meal(request: Request, db: Session = Depends(get_db),
@router.post("/meals/edit")
async def edit_meal(request: Request, db: Session = Depends(get_db),
meal_id: int = Form(...), name: str = Form(...),
meal_type: str = Form(...), meal_time: str = Form(...)):
meal_id: int = Form(...), name: str = Form(...)):
try:
meal = db.query(Meal).filter(Meal.id == meal_id).first()
@@ -137,8 +135,6 @@ async def edit_meal(request: Request, db: Session = Depends(get_db),
return {"status": "error", "message": "Meal not found"}
meal.name = name
meal.meal_type = meal_type
meal.meal_time = meal_time # Update meal_time
db.commit()
return {"status": "success", "message": "Meal updated successfully"}
@@ -209,6 +205,38 @@ async def remove_food_from_meal(meal_food_id: int, db: Session = Depends(get_db)
db.rollback()
return {"status": "error", "message": str(e)}
@router.post("/meals/clone/{meal_id}")
async def clone_meal(meal_id: int, db: Session = Depends(get_db)):
"""Clone an existing meal"""
try:
original_meal = db.query(Meal).filter(Meal.id == meal_id).first()
if not original_meal:
return {"status": "error", "message": "Original meal not found"}
# Create new meal
new_meal = Meal(
name=f"{original_meal.name} - Copy",
meal_type=original_meal.meal_type,
meal_time=original_meal.meal_time
)
db.add(new_meal)
db.flush()
# Copy meal foods
for meal_food in original_meal.meal_foods:
new_meal_food = MealFood(
meal_id=new_meal.id,
food_id=meal_food.food_id,
quantity=meal_food.quantity
)
db.add(new_meal_food)
db.commit()
return {"status": "success", "new_meal_id": new_meal.id}
except Exception as e:
db.rollback()
return {"status": "error", "message": str(e)}
@router.post("/meals/delete")
async def delete_meals(meal_ids: dict = Body(...), db: Session = Depends(get_db)):
try: