34 lines
998 B
Python
34 lines
998 B
Python
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.core.database import get_db
|
|
from app.schemas.common import ErrorResponse
|
|
from app.schemas.location import LocationRequest, LocationResponse
|
|
from app.services.location_service import register_location
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.post(
|
|
"/location",
|
|
response_model=LocationResponse,
|
|
responses={
|
|
400: {
|
|
"description": "总排号或货位号格式不合法",
|
|
"model": ErrorResponse,
|
|
},
|
|
409: {
|
|
"description": "重复上架或已下架",
|
|
"model": ErrorResponse,
|
|
},
|
|
},
|
|
)
|
|
def create_location(req: LocationRequest, db: Session = Depends(get_db)):
|
|
record = register_location(db, req)
|
|
return LocationResponse(
|
|
zongpai_no=record.zongpai_no,
|
|
location_code=record.location_code,
|
|
created_at=record.created_at.isoformat(),
|
|
previous_location=getattr(record, "previous_location", None),
|
|
)
|