feat(pl): expose photoUrls on vehicle and personnel APIs
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
56b94e1c5b
commit
479851ba4c
3 files changed
+53
No files matched your search
@@ -414,6 +414,7 @@ def create_vehicle(
|
||||
trailer_no=payload.trailer_no,
|
||||
load_capacity=payload.load_capacity,
|
||||
vehicle_status=payload.vehicle_status,
|
||||
photo_urls=payload.photo_urls,
|
||||
remark=payload.remark,
|
||||
create_by=user.id,
|
||||
create_dept_id=user.dept_id,
|
||||
@@ -680,6 +681,7 @@ def create_personnel(
|
||||
personnel_type=payload.personnel_type,
|
||||
personnel_affiliation=payload.personnel_affiliation,
|
||||
status=payload.status,
|
||||
photo_urls=payload.photo_urls,
|
||||
remark=payload.remark,
|
||||
create_by=user.id,
|
||||
create_dept_id=user.dept_id,
|
||||
|
||||
@@ -181,6 +181,9 @@ class VehicleBase(BaseModel):
|
||||
default_driver_name: Optional[str] = Field(default=None, max_length=100, alias="defaultDriverName", description="默认司机姓名(只读兼容)")
|
||||
load_capacity: Optional[Decimal] = Field(default=None, alias="loadCapacity", description="载重(吨)")
|
||||
vehicle_status: str = Field(default="available", max_length=20, alias="vehicleStatus", description="车辆状态")
|
||||
photo_urls: Optional[str] = Field(
|
||||
default=None, max_length=2000, alias="photoUrls", description="车辆照片URL,逗号分隔(默认1张)"
|
||||
)
|
||||
remark: Optional[str] = None
|
||||
|
||||
|
||||
@@ -198,6 +201,9 @@ class VehicleUpdate(BaseModel):
|
||||
trailer_no: Optional[str] = Field(default=None, max_length=20, alias="trailerNo")
|
||||
load_capacity: Optional[Decimal] = Field(default=None, alias="loadCapacity")
|
||||
vehicle_status: Optional[str] = Field(default=None, max_length=20, alias="vehicleStatus")
|
||||
photo_urls: Optional[str] = Field(
|
||||
default=None, max_length=2000, alias="photoUrls", description="车辆照片URL,逗号分隔(默认1张)"
|
||||
)
|
||||
remark: Optional[str] = None
|
||||
personnel_list: Optional[list[VehiclePersonnelRow]] = Field(default=None, alias="personnelList")
|
||||
cert_list: Optional[list[CertRow]] = Field(default=None, alias="certList")
|
||||
@@ -248,6 +254,9 @@ class PersonnelBase(BaseModel):
|
||||
description="人员归属 self-山峡 carrier-非山峡",
|
||||
)
|
||||
status: str = Field(default="1", max_length=1, description="状态 1-在职 0-停用")
|
||||
photo_urls: Optional[str] = Field(
|
||||
default=None, max_length=2000, alias="photoUrls", description="人员照片URL,逗号分隔(默认1张)"
|
||||
)
|
||||
remark: Optional[str] = None
|
||||
|
||||
|
||||
@@ -266,6 +275,9 @@ class PersonnelUpdate(BaseModel):
|
||||
default=None, max_length=20, alias="personnelAffiliation"
|
||||
)
|
||||
status: Optional[str] = Field(default=None, max_length=1)
|
||||
photo_urls: Optional[str] = Field(
|
||||
default=None, max_length=2000, alias="photoUrls", description="人员照片URL,逗号分隔(默认1张)"
|
||||
)
|
||||
remark: Optional[str] = None
|
||||
cert_list: Optional[list[CertRow]] = Field(default=None, alias="certList")
|
||||
model_config = {"populate_by_name": True}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
"""车辆/人员 Schema 接受 photoUrls。"""
|
||||
from __future__ import annotations
|
||||
|
||||
from app.schemas.pl.base_data import PersonnelCreate, PersonnelUpdate, VehicleCreate, VehicleUpdate
|
||||
|
||||
|
||||
def test_vehicle_create_accepts_photo_urls():
|
||||
body = VehicleCreate.model_validate(
|
||||
{
|
||||
"vehicleType": "carrier",
|
||||
"licensePlate": "皖A12345",
|
||||
"vehicleStatus": "available",
|
||||
"photoUrls": "pl/vehicle-photo/a.jpg",
|
||||
}
|
||||
)
|
||||
assert body.photo_urls == "pl/vehicle-photo/a.jpg"
|
||||
|
||||
|
||||
def test_vehicle_update_accepts_photo_urls():
|
||||
body = VehicleUpdate.model_validate({"photoUrls": "pl/vehicle-photo/b.jpg"})
|
||||
assert body.photo_urls == "pl/vehicle-photo/b.jpg"
|
||||
|
||||
|
||||
def test_personnel_create_accepts_photo_urls():
|
||||
body = PersonnelCreate.model_validate(
|
||||
{
|
||||
"personnelName": "张三",
|
||||
"personnelType": "driver",
|
||||
"personnelAffiliation": "self",
|
||||
"status": "1",
|
||||
"photoUrls": "pl/personnel-photo/c.jpg",
|
||||
}
|
||||
)
|
||||
assert body.photo_urls == "pl/personnel-photo/c.jpg"
|
||||
|
||||
|
||||
def test_personnel_update_accepts_photo_urls():
|
||||
body = PersonnelUpdate.model_validate({"photoUrls": ""})
|
||||
assert body.photo_urls == ""
|
||||
Reference in new issue
Block a user