| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- """运输计划 - 三方粘贴识别提交 Schema"""
- from typing import Literal, Optional
- from pydantic import BaseModel, Field
- class ConflictAction(BaseModel):
- key: Literal["vehicle", "driver", "escort"]
- existing_id: str = Field(alias="existingId")
- action: Literal["reuse", "overwrite", "cancel"]
- model_config = {"populate_by_name": True}
- class PastePersonnelIn(BaseModel):
- personnel_name: str = Field(alias="personnelName")
- phone_no: Optional[str] = Field(default=None, alias="phoneNo")
- id_card_no: Optional[str] = Field(default=None, alias="idCardNo")
- personnel_type: Literal["driver", "escort"] = Field(alias="personnelType")
- model_config = {"populate_by_name": True}
- class PasteVehicleIn(BaseModel):
- license_plate: str = Field(alias="licensePlate")
- trailer_no: Optional[str] = Field(default=None, alias="trailerNo")
- load_capacity: Optional[float] = Field(default=None, alias="loadCapacity")
- carrier_id: Optional[str] = Field(default=None, alias="carrierId")
- carrier_name: Optional[str] = Field(default=None, alias="carrierName")
- model_config = {"populate_by_name": True}
- class PasteCommitBody(BaseModel):
- mode: Literal["vehicle_bundle", "personnel_first"]
- create_vehicle: bool = Field(default=True, alias="createVehicle")
- vehicle: Optional[PasteVehicleIn] = None
- driver: Optional[PastePersonnelIn] = None
- escort: Optional[PastePersonnelIn] = None
- conflicts: list[ConflictAction] = Field(default_factory=list)
- model_config = {"populate_by_name": True}
- class PasteCommitResult(BaseModel):
- vehicle_id: Optional[str] = Field(default=None, alias="vehicleId")
- driver_id: Optional[str] = Field(default=None, alias="driverId")
- escort_id: Optional[str] = Field(default=None, alias="escortId")
- model_config = {"populate_by_name": True, "by_alias": True}
|