File size: 1,360 Bytes
80feb1b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from typing import List
from datetime import datetime

from ..database import get_db, Dish, Order, OrderItem
from ..models.dish import Dish as DishModel
from ..models.order import Order as OrderModel

router = APIRouter(
    prefix="/chef",
    tags=["chef"],
    responses={404: {"description": "Not found"}},
)

# Add an API endpoint to get completed orders count
@router.get("/api/completed-orders-count")
def get_completed_orders_count(db: Session = Depends(get_db)):
    completed_orders = db.query(Order).filter(Order.status == "completed").count()
    return {"count": completed_orders}

# Get pending orders
@router.get("/orders/pending", response_model=List[OrderModel])
def get_pending_orders(db: Session = Depends(get_db)):
    orders = db.query(Order).filter(Order.status == "pending").all()
    return orders

# Mark order as completed
@router.put("/orders/{order_id}/complete")
def complete_order(order_id: int, db: Session = Depends(get_db)):
    db_order = db.query(Order).filter(Order.id == order_id).first()
    if db_order is None:
        raise HTTPException(status_code=404, detail="Order not found")

    db_order.status = "completed"
    db_order.updated_at = datetime.utcnow()

    db.commit()

    return {"message": "Order marked as completed"}