feat: 220 colonias reales de Celaya mapeadas a 15 rutas con Haversine

This commit is contained in:
2026-05-23 04:48:52 -06:00
parent e69fb36c49
commit 6af2c85f0d
7 changed files with 4896 additions and 0 deletions

View File

@@ -128,6 +128,20 @@ def get_eta(domicilio_id: int,
raise HTTPException(status_code=404, detail="Ruta no encontrada") raise HTTPException(status_code=404, detail="Ruta no encontrada")
return {**eta, "route_id": dom.route_id, "colonia": dom.colonia} return {**eta, "route_id": dom.route_id, "colonia": dom.colonia}
@app.get("/colonias-por-cp")
def colonias_por_cp(
codigo_postal: str,
current_user=Depends(auth.get_current_user)
):
colonias = [
v["colonia"] for v in simulator.COLONIAS_COMPLETAS.values()
if v.get("cp") == codigo_postal
]
return {
"colonias": sorted(set(colonias)),
"encontrado": len(colonias) > 0
}
@app.post("/reportes") @app.post("/reportes")
def crear_reporte( def crear_reporte(
domicilio_id: int, domicilio_id: int,

View File

@@ -16,6 +16,14 @@ with open(os.path.join(BASE_DIR, "data", "colonias-rutas.json")) as f:
for item in json.load(f): for item in json.load(f):
COLONIAS[item["colonia"].lower()] = item COLONIAS[item["colonia"].lower()] = item
COLONIAS_COMPLETAS = {}
try:
with open(os.path.join(BASE_DIR, "data", "colonias-rutas-completo.json")) as f:
for item in json.load(f):
COLONIAS_COMPLETAS[item["colonia"].lower()] = item
except:
pass
def init_rutas(db: Session): def init_rutas(db: Session):
for ruta in RUTAS: for ruta in RUTAS:
existe = db.query(models.EstadoRuta).filter_by(route_id=ruta["routeId"]).first() existe = db.query(models.EstadoRuta).filter_by(route_id=ruta["routeId"]).first()

File diff suppressed because it is too large Load Diff

1790
data/colonias_celaya.json Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff