Files
plantillas-proyectos/backend/api/v1/modules/a76/manifests/driver/dtos.py
2026-02-09 08:42:02 -06:00

43 lines
1.5 KiB
Python

from typing import List, Optional
from pydantic import BaseModel, Field
class ManifestDriverBaseDTO(BaseModel):
manifest_number: str = Field(..., max_length=15, description="Manifest number")
driver_name: str = Field(..., max_length=80, description="Driver name")
driver_type: Optional[str] = Field(None, max_length=1, description="Driver type")
address_1: Optional[str] = Field(None, max_length=100, description="Address line 1")
address_2: Optional[str] = Field(None, max_length=100, description="Address line 2")
city: Optional[str] = Field(None, max_length=30, description="City")
state: Optional[str] = Field(None, max_length=30, description="State")
postal_code: Optional[str] = Field(None, max_length=15, description="Postal code")
country: Optional[str] = Field(None, max_length=3, description="Country")
class ManifestDriverCreateDTO(ManifestDriverBaseDTO):
pass
class ManifestDriverUpdateDTO(ManifestDriverBaseDTO):
# Overriding to make PKs optional for update if needed, but usually PKs are in URL
manifest_number: Optional[str] = Field(None, max_length=15)
driver_name: Optional[str] = Field(None, max_length=80)
class ManifestDriverResponseDTO(ManifestDriverBaseDTO):
tenant_id: int
company_id: int
class Config:
from_attributes = True
class ManifestDriverListDTO(BaseModel):
items: List[ManifestDriverResponseDTO]
total: int
page: int
page_size: int
class Config:
from_attributes = True