Agrega backend FastAPI al proyecto
This commit is contained in:
42
recolector_backend/app/simulator.py
Normal file
42
recolector_backend/app/simulator.py
Normal file
@@ -0,0 +1,42 @@
|
||||
"""
|
||||
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")
|
||||
Reference in New Issue
Block a user