VIPC/ghost-kitchen-backend
0
1from fastapi import APIRouter, Depends, HTTPException2from typing import List3from sqlalchemy.orm import Session4from app.core.database import get_db5from app.services import order_service6from app.schemas.order import OrderCreate, OrderResponse, OrderHistory, OrderFullDetail7from app.models.user import User8from app.core.security import get_current_user # ๐ IMPORTANTE9 10router = APIRouter(prefix="/pedidos", tags=["Pedidos"])11 12# 1. CREAR PEDIDO13@router.post("/", response_model=OrderResponse)14def registrar_pedido(15 pedido: OrderCreate, 16 db: Session = Depends(get_db),17 current_user: User = Depends(get_current_user) # ๐ Token Requerido18):19 # Pasamos el ID real20 return order_service.crear_pedido(db, pedido, current_user.id)21 22# 2. VER HISTORIAL23@router.get("/historial", response_model=List[OrderHistory])24def ver_historial(25 db: Session = Depends(get_db),26 current_user: User = Depends(get_current_user) # ๐ Token Requerido27):28 return order_service.obtener_historial_cliente(db, current_user.id)29 30# 3. ULTIMO ACTIVO31@router.get("/ultimo-activo")32def ver_ultimo_pedido_activo(33 db: Session = Depends(get_db),34 current_user: User = Depends(get_current_user) # ๐ Token Requerido35):36 return order_service.obtener_ultimo_pedido_activo(db, current_user.id)37 38# 4. DETALLE39@router.get("/{id_pedido}", response_model=OrderFullDetail)40def ver_detalle_pedido(41 id_pedido: int, 42 db: Session = Depends(get_db),43 current_user: User = Depends(get_current_user) # ๐ Token Requerido44):45 detalle = order_service.obtener_detalle_pedido(db, id_pedido, current_user.id)46 if not detalle:47 raise HTTPException(status_code=404, detail="Pedido no encontrado")48 return detalle49 50# 5. CANCELAR51@router.post("/{id_pedido}/cancel")52def cancelar_pedido_endpoint(53 id_pedido: int, 54 db: Session = Depends(get_db),55 current_user: User = Depends(get_current_user) # ๐ Token Requerido56):57 return order_service.cancelar_pedido(db, id_pedido, current_user.id)