from fastapi import APIRouter, Depends, Query from sqlalchemy.orm import Session from app.core.database import get_db from app.schemas.box import ( BoxDeleteResponse, BoxInfoResponse, BoxSaveRequest, BoxSaveResponse, BoxUpdateRequest, BoxUpdateResponse, ) from app.services.box_service import ( delete_box_item, get_box_info, save_box_record, update_box_item, ) router = APIRouter(tags=["boxing"]) @router.get("/box/info", response_model=BoxInfoResponse) def box_info( zongpai_no: str = Query(..., description="总排号"), db: Session = Depends(get_db), ): """查询装箱信息:根据总排号查询排产号、数量和已有箱号明细。""" return get_box_info(db, zongpai_no) @router.post("/box", response_model=BoxSaveResponse) def create_box(req: BoxSaveRequest, db: Session = Depends(get_db)): """保存装箱记录:将总排号记录到指定箱号中。""" return save_box_record(db, req) @router.patch("/box/{box_item_id}", response_model=BoxUpdateResponse) def update_box(box_item_id: int, req: BoxUpdateRequest, db: Session = Depends(get_db)): """更新已分配装箱明细。""" return update_box_item(db, box_item_id, req) @router.delete("/box/{box_item_id}", response_model=BoxDeleteResponse) def delete_box(box_item_id: int, db: Session = Depends(get_db)): """删除误录的装箱明细。""" return delete_box_item(db, box_item_id)