feat: geolocalización GPS para detectar zona de recolección automáticamente

This commit is contained in:
2026-05-23 02:17:53 -06:00
parent ca3fa5f7bf
commit 147b4ecb20
4 changed files with 47 additions and 1 deletions

View File

@@ -174,6 +174,27 @@ def get_alerta_activa(
return alerta
return {"activa": False, "mensaje": None}
@app.get("/domicilios/ruta-por-coordenadas")
def ruta_por_coordenadas(
lat: float,
lng: float,
current_user=Depends(auth.get_current_user)
):
ruta, distancia = simulator.encontrar_ruta_por_coordenadas(lat, lng)
if not ruta:
raise HTTPException(status_code=404, detail="No hay cobertura en esta ubicación")
colonia_info = next(
(c for c in simulator.COLONIAS.values() if c["routeId"] == ruta["routeId"]),
None
)
return {
"route_id": ruta["routeId"],
"nombre_ruta": ruta["name"],
"colonia_sugerida": colonia_info["colonia"] if colonia_info else ruta["name"],
"distancia_metros": round(distancia),
"cobertura": True
}
@app.websocket("/ws/eta/{domicilio_id}")
async def websocket_eta(websocket: WebSocket, domicilio_id: int,
token: str, db: Session = Depends(get_db)):