29 lines
896 B
Python
29 lines
896 B
Python
from pydantic import BaseModel
|
|
from typing import Optional
|
|
|
|
|
|
class ETAResponse(BaseModel):
|
|
status: str # PROGRAMADO | EN_CAMINO | LLEGANDO | PASO | NO_SERVICIO
|
|
message: str
|
|
eta_minutes: Optional[int] = None
|
|
window_start: Optional[str] = None # "07:20"
|
|
window_end: Optional[str] = None # "07:35"
|
|
progress: float = 0.0 # 0-100 route completion %
|
|
route_name: Optional[str] = None
|
|
passes_today: bool = True
|
|
next_service: Optional[str] = None # ISO date when it passes next
|
|
|
|
|
|
class RouteScheduleResponse(BaseModel):
|
|
route_id: str
|
|
route_name: str
|
|
days_of_week: list[str] # ["Lunes", "Miércoles", "Viernes"]
|
|
approximate_time: str # "6:00 - 8:00 AM"
|
|
truck_id: int
|
|
|
|
|
|
class ServiceRatingCreate(BaseModel):
|
|
address_id: int
|
|
rating: int # 1-5
|
|
comment: Optional[str] = None
|