Files
shanxia2.0/backend/app/api/pl/customer_stop_pref.py
T
2026-08-27 14:23:18 +08:00

34 lines
1.3 KiB
Python

"""客户装/送货物流默认记忆 API"""
from typing import Optional
from fastapi import APIRouter, Depends, HTTPException, Query
from sqlalchemy.orm import Session
from app.core.database import get_db
from app.core.db_auth import DbUserContext, get_db_current_user
from app.core.tenant_context import get_tenant_no
from app.schemas.pl.customer_stop_pref import CustomerStopPrefRead
from app.services.pl_customer_stop_pref_service import (
STOP_DELIVERY,
STOP_LOAD,
get_customer_stop_pref,
)
router = APIRouter(tags=["客户装卸货默认记忆"])
@router.get("/customer-stop-pref", response_model=Optional[CustomerStopPrefRead])
def read_customer_stop_pref(
customer_id: str = Query(..., alias="customerId"),
stop_type: str = Query(..., alias="stopType", description="load | delivery"),
db: Session = Depends(get_db),
user: DbUserContext = Depends(get_db_current_user),
) -> Optional[CustomerStopPrefRead]:
if stop_type not in (STOP_LOAD, STOP_DELIVERY):
raise HTTPException(status_code=400, detail="stopType 须为 load 或 delivery")
tenant_no = get_tenant_no(db, user.to_tenant_user_dict())
row = get_customer_stop_pref(db, tenant_no, customer_id, stop_type)
if not row:
return None
return CustomerStopPrefRead.model_validate(row)