From 2770625b3e24d2f108fe5a6cd8bfeb50e7fe7d3b Mon Sep 17 00:00:00 2001 From: openclaw Date: Sat, 11 Apr 2026 03:58:42 +0000 Subject: [PATCH] Add app/routers/stock.py --- app/routers/stock.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 app/routers/stock.py 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)