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),
|
current_user=Depends(auth.get_current_user),
|
||||||
db: Session = Depends(get_db)):
|
db: Session = Depends(get_db)):
|
||||||
colonia_key = data.colonia.lower()
|
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:
|
if not colonia_info:
|
||||||
# Buscar por similitud parcial
|
colonia_info = simulator.COLONIAS.get(colonia_key)
|
||||||
for key, value in simulator.COLONIAS.items():
|
|
||||||
|
# 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:
|
if key in colonia_key or colonia_key in key:
|
||||||
colonia_info = value
|
colonia_info = value
|
||||||
break
|
break
|
||||||
|
|
||||||
|
# 4. Fallback por coordenadas GPS
|
||||||
if not colonia_info:
|
if not colonia_info:
|
||||||
# Buscar por route_id si viene en el nombre
|
|
||||||
ruta, _ = simulator.encontrar_ruta_por_coordenadas(data.lat, data.lng)
|
ruta, _ = simulator.encontrar_ruta_por_coordenadas(data.lat, data.lng)
|
||||||
if ruta:
|
if ruta:
|
||||||
colonia_info = next(
|
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
|
None
|
||||||
)
|
)
|
||||||
|
|
||||||
if not colonia_info:
|
if not colonia_info:
|
||||||
raise HTTPException(status_code=404, detail="Colonia no encontrada en el sistema")
|
raise HTTPException(status_code=404, detail="Colonia no encontrada en el sistema")
|
||||||
|
|
||||||
dom = models.Domicilio(direccion=data.direccion, colonia=data.colonia,
|
dom = models.Domicilio(direccion=data.direccion, colonia=data.colonia,
|
||||||
lat=data.lat, lng=data.lng,
|
lat=data.lat, lng=data.lng,
|
||||||
route_id=colonia_info["routeId"],
|
route_id=colonia_info["routeId"],
|
||||||
@@ -105,6 +115,7 @@ def crear_domicilio(data: schemas.DomicilioCreate,
|
|||||||
db.commit()
|
db.commit()
|
||||||
db.refresh(dom)
|
db.refresh(dom)
|
||||||
return dom
|
return dom
|
||||||
|
return dom
|
||||||
|
|
||||||
@app.get("/domicilios")
|
@app.get("/domicilios")
|
||||||
def listar_domicilios(
|
def listar_domicilios(
|
||||||
|
|||||||
Reference in New Issue
Block a user