feat: auth

This commit is contained in:
2026-04-15 14:05:33 +08:00
parent 321c550a66
commit 6f263e365f
15 changed files with 833 additions and 17 deletions

View File

@@ -149,3 +149,82 @@ class RoutePlanResult(BaseModel):
deep_links: DeepLinks | None = None
summary: str
warnings: list[str]
class LoadPlanRequest(BaseModel):
merchant_id: int
area: str
license_plate: str
class LoadPlanResult(BaseModel):
success: bool
license_plate: str
selected_shipment_ids: list[int] = Field(default_factory=list)
summary: str
warnings: list[str] = Field(default_factory=list)
# ---------------------------------------------------------------------------
# Load planning API integration
# ---------------------------------------------------------------------------
class TransportVehicleMaterialCapacity(BaseModel):
id: int
material_name: str
capacity: int
class TransportVehicle(BaseModel):
id: int
merchant_id: int
name: str
license_plate: str
material_capacities: list[TransportVehicleMaterialCapacity] = Field(default_factory=list)
created_at: str
updated_at: str
class ShipmentGeoCoordinates(BaseModel):
lat: float
lng: float
class ShipmentSalesItem(BaseModel):
id: int
name: str
quantity: str
unit: int | None = None
unit_display: str | None = None
position: str | None = None
remark: str | None = None
printing_job_id: int | None = None
printing_job_width: str | None = None
class Shipment(BaseModel):
id: int
merchant_id: int
customer: int | None = None
customer_name: str | None = None
shipment_date: str
address: str
contact_name: str | None = None
contact_phone: str | None = None
area: str | None = None
remark: str | None = None
status: int | str
status_display: str | None = None
external_id: str | None = None
geo_coordinates: ShipmentGeoCoordinates | None = None
delivery: int | None = None
sales_items: list[ShipmentSalesItem] = Field(default_factory=list)
created_at: str
updated_at: str
class ShipmentPage(BaseModel):
count: int | None = None
next: str | None = None
previous: str | None = None
results: list[Shipment] = Field(default_factory=list)