Modelos de la API
Modelo Base de Datos
Ubicacion
El modelo principal de la aplicación es Ubicacion
, que representa una ubicación física de COPEC.
class Ubicacion(Base):
__tablename__ = "ubicacion"
id = Column(UUID, primary_key=True, index=True)
name = Column(String, nullable=False)
description = Column(Text, nullable=True)
type = Column(String, nullable=False)
latitude = Column(Float, nullable=False)
longitude = Column(Float, nullable=False)
Campos
id
: Identificador único UUIDname
: Nombre de la ubicacióndescription
: Descripción detallada (opcional)type
: Tipo de ubicación (PRONTO, BENCINERA, SERVICIO, OTRO)latitude
: Latitud geográficalongitude
: Longitud geográfica
Schemas Pydantic
UbicacionBase
Schema base que define los campos comunes:
class UbicacionBase(BaseModel):
name: str
description: Optional[str] = None
type: str
latitude: float
longitude: float
UbicacionCreate
Schema usado para crear nuevas ubicaciones:
Ubicacion
Schema completo que incluye el ID:
Enumeraciones
UbicacionType
Define los tipos válidos de ubicaciones:
class UbicacionType(str, Enum):
PRONTO = "pronto"
BENCINERA = "bencinera"
SERVICIO = "servicio"
OTRO = "otro"
Validaciones
Los modelos incluyen las siguientes validaciones:
- Coordenadas Geográficas
- Latitud: entre -90 y 90
-
Longitud: entre -180 y 180
-
Tipos de Ubicación
-
Solo se permiten los valores definidos en
UbicacionType
-
Campos Requeridos
name
type
latitude
longitude
Ejemplos de Uso
Crear una Nueva Ubicación
nueva_ubicacion = Ubicacion(
id=uuid.uuid4(),
name="Pronto Las Condes",
description="Estación con servicios 24/7",
type=UbicacionType.PRONTO,
latitude=-33.4122,
longitude=-70.5823
)