feat: geolocalización GPS para detectar zona de recolección automáticamente
This commit is contained in:
@@ -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)):
|
||||
|
||||
Reference in New Issue
Block a user