diff --git a/app/routers/stock.py b/app/routers/stock.py new file mode 100644 index 0000000..5e1e657 --- /dev/null +++ b/app/routers/stock.py @@ -0,0 +1,25 @@ +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy.orm import Session +from app.database import get_db +from app.schemas.stock_movement import StockMoveRequest, StockMovementResponse, StockSummary +from app.services import stock_service + +router = APIRouter() + + +@router.post("/move", response_model=StockMovementResponse, status_code=201) +def move(data: StockMoveRequest, db: Session = Depends(get_db)): + movement, error = stock_service.register_movement(db, data) + if error: + raise HTTPException(status_code=400, detail=error) + return movement + + +@router.get("/history/{product_id}", response_model=list[StockMovementResponse]) +def history(product_id: str, db: Session = Depends(get_db)): + return stock_service.get_product_history(db, product_id) + + +@router.get("/summary", response_model=list[StockSummary]) +def summary(db: Session = Depends(get_db)): + return stock_service.get_stock_summary(db)