fix: crear_domicilio ahora busca en COLONIAS_COMPLETAS con 220 colonias reales

This commit is contained in:
2026-05-23 08:03:14 -06:00
parent 043b2327fb
commit d9329e98df
2 changed files with 16 additions and 5 deletions

View File

@@ -80,23 +80,33 @@ def crear_domicilio(data: schemas.DomicilioCreate,
current_user=Depends(auth.get_current_user),
db: Session = Depends(get_db)):
colonia_key = data.colonia.lower()
colonia_info = simulator.COLONIAS.get(colonia_key)
# 1. Buscar en colonias completas (220 colonias reales)
colonia_info = simulator.COLONIAS_COMPLETAS.get(colonia_key)
# 2. Buscar en colonias originales del dataset
if not colonia_info:
# Buscar por similitud parcial
for key, value in simulator.COLONIAS.items():
colonia_info = simulator.COLONIAS.get(colonia_key)
# 3. Buscar por similitud parcial en colonias completas
if not colonia_info:
for key, value in simulator.COLONIAS_COMPLETAS.items():
if key in colonia_key or colonia_key in key:
colonia_info = value
break
# 4. Fallback por coordenadas GPS
if not colonia_info:
# Buscar por route_id si viene en el nombre
ruta, _ = simulator.encontrar_ruta_por_coordenadas(data.lat, data.lng)
if ruta:
colonia_info = next(
(v for v in simulator.COLONIAS.values() if v["routeId"] == ruta["routeId"]),
(v for v in simulator.COLONIAS_COMPLETAS.values() if v["routeId"] == ruta["routeId"]),
None
)
if not colonia_info:
raise HTTPException(status_code=404, detail="Colonia no encontrada en el sistema")
dom = models.Domicilio(direccion=data.direccion, colonia=data.colonia,
lat=data.lat, lng=data.lng,
route_id=colonia_info["routeId"],
@@ -105,6 +115,7 @@ def crear_domicilio(data: schemas.DomicilioCreate,
db.commit()
db.refresh(dom)
return dom
return dom
@app.get("/domicilios")
def listar_domicilios(