Initial commit

This commit is contained in:
marianesaldana
2026-05-23 08:59:34 -06:00
commit 80dbd947e5
36446 changed files with 3729147 additions and 0 deletions

View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,34 @@
from pydantic import BaseModel
from typing import Optional
class AddressCreate(BaseModel):
label: str = "Casa"
street: str
colony: Optional[str] = None
city: str = "Celaya"
lat: Optional[float] = None
lng: Optional[float] = None
is_default: bool = False
class AddressUpdate(BaseModel):
label: Optional[str] = None
street: Optional[str] = None
colony: Optional[str] = None
is_default: Optional[bool] = None
class AddressOut(BaseModel):
id: int
label: str
street: str
colony: Optional[str] = None
city: str
lat: Optional[float] = None
lng: Optional[float] = None
route_id: Optional[str] = None
is_default: bool
class Config:
from_attributes = True

View File

@@ -0,0 +1,45 @@
from pydantic import BaseModel, EmailStr
from typing import Optional
class UserRegister(BaseModel):
full_name: str
email: Optional[EmailStr] = None
phone: Optional[str] = None
password: str
class UserLogin(BaseModel):
email: Optional[str] = None
phone: Optional[str] = None
password: str
class OAuthLogin(BaseModel):
provider: str # google | facebook | apple
oauth_id: str
email: Optional[str] = None
full_name: Optional[str] = None
push_token: Optional[str] = None
class Token(BaseModel):
access_token: str
token_type: str = "bearer"
role: str = "CIUDADANO"
class UserOut(BaseModel):
id: int
full_name: str
email: Optional[str] = None
phone: Optional[str] = None
oauth_provider: Optional[str] = None
role: str = "CIUDADANO"
class Config:
from_attributes = True
class TokenData(BaseModel):
user_id: Optional[int] = None

View File

@@ -0,0 +1,28 @@
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

View File

@@ -0,0 +1,33 @@
from pydantic import BaseModel
from typing import Optional
from datetime import datetime
class ReportCreate(BaseModel):
address_id: int
report_type: str # NO_PASO | RETRASO | ACUMULACION | OTRO
description: Optional[str] = None
class ReportOut(BaseModel):
id: int
folio: str
report_type: str
description: Optional[str] = None
status: str
created_at: datetime
address_label: Optional[str] = None
class Config:
from_attributes = True
class ReportListItem(BaseModel):
id: int
folio: str
report_type: str
status: str
created_at: datetime
class Config:
from_attributes = True