Files
Erick Cesar Mondragon Palacios 7da903a0ab Agrega backend FastAPI al proyecto
2026-05-22 23:15:56 -06:00

43 lines
1.6 KiB
Python

"""
Simulador sencillo de avance de rutas.
Uso:
python -m app.simulator RUTA-01
Avanza positionId 1..8 y genera alertas en 2, 4 y 8.
Ideal para demo si quieren enseñar backend actualizando estados sin GPS real.
"""
import sys
import time
from datetime import datetime
from app.database import SessionLocal
from app.models import Alert, Route
def main(route_id: str):
with SessionLocal() as db:
route = db.get(Route, route_id)
if not route:
print(f"Ruta {route_id} no encontrada")
return
for position_id in range(1, 9):
route.current_position_id = position_id
route.status = "EN_RUTA" if position_id < 8 else "FINALIZADA"
route.updated_at = datetime.utcnow()
if position_id == 2:
db.add(Alert(type="ROUTE_START", title="Ruta iniciada", message=f"El camión {route.truck_id} salió a ruta.", route_id=route.route_id, truck_id=route.truck_id, priority=1))
if position_id == 4:
db.add(Alert(type="TRUCK_PROXIMITY", title="Camión cercano", message="El camión está a menos de 15 minutos de tu zona.", route_id=route.route_id, truck_id=route.truck_id, priority=2))
if position_id == 8:
db.add(Alert(type="ROUTE_COMPLETED", title="Servicio finalizado", message=f"La ruta {route.route_id} concluyó la jornada.", route_id=route.route_id, truck_id=route.truck_id, priority=1))
db.commit()
print(f"{route.route_id}: positionId {position_id} actualizado")
time.sleep(3)
if __name__ == "__main__":
main(sys.argv[1] if len(sys.argv) > 1 else "RUTA-01")