fix: crear_domicilio ahora busca en COLONIAS_COMPLETAS con 220 colonias reales
This commit is contained in:
Binary file not shown.
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user