FlotillasGPS - Sistema completo de monitoreo de flotillas GPS

Sistema completo para monitoreo y gestion de flotas de vehiculos con:
- Backend FastAPI con PostgreSQL/TimescaleDB
- Frontend React con TypeScript y TailwindCSS
- App movil React Native con Expo
- Soporte para dispositivos GPS, Meshtastic y celulares
- Video streaming en vivo con MediaMTX
- Geocercas, alertas, viajes y reportes
- Autenticacion JWT y WebSockets en tiempo real

Documentacion completa y guias de usuario incluidas.
This commit is contained in:
FlotillasGPS Developer
2026-01-21 08:18:00 +00:00
commit 51d78bacf4
248 changed files with 50171 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
"""
Modelo de Grupo de Vehículos para organizar la flota.
"""
from sqlalchemy import String, Text
from sqlalchemy.orm import Mapped, mapped_column, relationship
from app.core.database import Base
from app.models.base import TimestampMixin
class GrupoVehiculos(Base, TimestampMixin):
"""Modelo para agrupar vehículos (ej: Reparto Norte, Ejecutivos, etc.)."""
__tablename__ = "grupos_vehiculos"
id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True)
nombre: Mapped[str] = mapped_column(String(100), nullable=False, unique=True)
descripcion: Mapped[str | None] = mapped_column(Text, nullable=True)
color: Mapped[str] = mapped_column(String(7), default="#3B82F6", nullable=False) # Hex color
icono: Mapped[str | None] = mapped_column(String(50), nullable=True) # Nombre del icono
# Relaciones
vehiculos: Mapped[list["Vehiculo"]] = relationship(
"Vehiculo",
back_populates="grupo",
lazy="selectin",
)
def __repr__(self) -> str:
return f"<GrupoVehiculos(id={self.id}, nombre='{self.nombre}')>"