from pydantic import BaseModel, Field class LogisticsTaskListQuery(BaseModel): order_id: int | None = None task_no: str | None = None status: str | None = None driver_id: int | None = None factory_id: int | None = None page_no: int = 1 page_size: int = 20 class CreateLogisticsTaskRequest(BaseModel): order_id: int driver_id: int = Field(gt=0) pickup_address: str delivery_address: str pickup_content: str quantity: float = Field(gt=0) factory_id: int | None = None remark: str | None = None class LogisticsFilePayload(BaseModel): file_url: str file_name: str class DriverTaskOperateRequest(BaseModel): photo_files: list[LogisticsFilePayload] = Field(default_factory=list) video_files: list[LogisticsFilePayload] = Field(default_factory=list) remark: str | None = None class CreateLogisticsTraceRequest(BaseModel): task_id: int = Field(gt=0) node_time: str node_desc: str node_type: str source_platform: str