fix: case_id-анализ терял координаты ТНП → fallback-зоны N/E (корень «вверх-вправо»)

При анализе по case_id координаты карточки (tnp_lat/tnp_lon) не попадали
в SearchInput (читались только payload-lat/lon) → rules_analyze не видел
lat/lon и отдавал базовые fallback-зоны «Ближняя N / Средняя E» —
постоянные направления вверх-вправо на карте независимо от местности.

Фикс: case_id-режим подтягивает lat/lon из tnp_* (gps_* как алиас).
198 passed.
This commit is contained in:
2026-09-09 20:04:40 +03:00
parent b636389ee1
commit c1bb7d5249
3 changed files with 26 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
# Проверка: какие зоны отдаёт /analyze для кейса с координатами
TOKEN=$(curl -s -m 8 -X POST localhost:8000/api/v1/auth/login \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data 'username=admin&password=pass123' \
| python3 -c 'import sys,json; print(json.load(sys.stdin)["access_token"])')
curl -s -m 60 -X POST localhost:8000/api/v1/analyze \
-H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
-d '{"case_id": "554d23b3-3f8e-41ce-9040-56712f747f9f"}' > /tmp/az.json
python3 /tmp/check_zones.py
+8
View File
@@ -0,0 +1,8 @@
import json
d = json.load(open('/tmp/az.json'))
z = d.get('primary_zones', [])
print('zones:', len(z))
for x in z[:5]:
print(' ', x.get('direction'), x.get('distance'), (x.get('name') or '')[:35], '|', (x.get('reason') or '')[:40])
print('lat/lon в коэффициентах не видно; fallback_used:', d.get('fallback_used'))
print('max_distance_km:', d.get('max_distance_km'))