fix(tradein/v2): подключить реальные данные location-coef в LocationDrawer + HeroBar (#2317) #2341

Merged
lekss361 merged 1 commit from fix/tradein-location-coef-fe-wiring into main 2026-07-03 22:47:41 +00:00
Owner

Closes #2317

Backend endpoint GET /trade-in/location-coef готов и задеплоен с #2045 (follow-up к нему).

  • useLocationCoef(estimateId, radiusM?) — TanStack Query hook, паттерн как у соседних useEstimateHouseAnalytics/useStreetDeals.
  • mappers.ts (mapObject/новый mapLocation): честная деградация — null/geo_source==="unavailable" дают явное "недоступно" состояние, никогда не фабрикуют коэффициент/цену/фактор-лист.
  • LocationDrawer.tsx: рендерит реальный ranked POI-список + строку base→result ₽.
  • HeroBar.tsx: КОЭФ. ЛОКАЦИИ tile — реальная дельта, либо честный "нет данных" вместо устаревшего "скоро" (фича больше не «скоро», а живая — старая копия читалась бы как ложная).

Отклонение от буквальной формулировки issue: issue предполагал форму ответа label/delta/poi_type (по старой fixture-заглушке, осиротевшей после #2057). Реальная backend-схема LocationCoefFactorOutpoi_type/name/distance_m/weight, без per-фактора price-дельты и без positive/negative split (у trade-in CATEGORY_WEIGHTS нет отрицательных весов, в отличие от Site Finder). Отрендерил единый ranked POI-список вместо того чтобы фабриковать per-POI дельты, которых API не отдаёт — это повторило бы ту самую честность-проблему, из-за которой старый drawer был заглушкой.

Проверено: tsc --noEmit чисто, next build — 13/13 страниц, только pre-existing unrelated ESLint warnings. code-reviewer APPROVE (типы сверены byte-for-byte с backend/app/schemas/trade_in.py, честная деградация подтверждена чтением кода).

Рекомендация для post-merge QA: живой smoke на /trade-in/v2 с гео-кодированным EKB-адресом — открыть LocationDrawer, подтвердить реальный коэффициент+факторы при geo_source="osm_poi_ekb" и честный "недоступны" при unavailable.

Closes #2317 Backend endpoint `GET /trade-in/location-coef` готов и задеплоен с #2045 (follow-up к нему). - `useLocationCoef(estimateId, radiusM?)` — TanStack Query hook, паттерн как у соседних `useEstimateHouseAnalytics`/`useStreetDeals`. - `mappers.ts` (`mapObject`/новый `mapLocation`): честная деградация — `null`/`geo_source==="unavailable"` дают явное "недоступно" состояние, никогда не фабрикуют коэффициент/цену/фактор-лист. - `LocationDrawer.tsx`: рендерит реальный ranked POI-список + строку base→result ₽. - `HeroBar.tsx`: КОЭФ. ЛОКАЦИИ tile — реальная дельта, либо честный "нет данных" вместо устаревшего "скоро" (фича больше не «скоро», а живая — старая копия читалась бы как ложная). **Отклонение от буквальной формулировки issue:** issue предполагал форму ответа `label/delta/poi_type` (по старой fixture-заглушке, осиротевшей после #2057). Реальная backend-схема `LocationCoefFactorOut` — `poi_type/name/distance_m/weight`, без per-фактора price-дельты и без positive/negative split (у trade-in `CATEGORY_WEIGHTS` нет отрицательных весов, в отличие от Site Finder). Отрендерил единый ranked POI-список вместо того чтобы фабриковать per-POI дельты, которых API не отдаёт — это повторило бы ту самую честность-проблему, из-за которой старый drawer был заглушкой. Проверено: `tsc --noEmit` чисто, `next build` — 13/13 страниц, только pre-existing unrelated ESLint warnings. code-reviewer APPROVE (типы сверены byte-for-byte с `backend/app/schemas/trade_in.py`, честная деградация подтверждена чтением кода). **Рекомендация для post-merge QA:** живой smoke на `/trade-in/v2` с гео-кодированным EKB-адресом — открыть LocationDrawer, подтвердить реальный коэффициент+факторы при `geo_source="osm_poi_ekb"` и честный "недоступны" при `unavailable`.
lekss361 added 1 commit 2026-07-03 22:46:02 +00:00
fix(tradein/v2): подключить реальные данные location-coef в LocationDrawer + HeroBar (#2317)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 10s
CI / changes (pull_request) Successful in 10s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Successful in 1m7s
7eb73f0d7f
Backend endpoint GET /trade-in/location-coef готов и задеплоен с #2045.
useLocationCoef хук (TanStack Query, паттерн как у соседних house-analytics
хуков) + честная деградация в mappers.ts (mapObject/mapLocation): null и
geo_source="unavailable" дают явное "недоступно", никогда не фабрикуют
коэффициент/цену/факторы. LocationDrawer рендерит реальный ranked POI-список
(backend отдаёт poi_type/name/distance_m/weight, без per-фактора дельты —
issue предполагал другую форму ответа, устаревшую по #2057). HeroBar
КОЭФ. ЛОКАЦИИ: реальная дельта либо честный "нет данных" вместо устаревшего
"скоро" (фича уже не «скоро», а живая).
lekss361 merged commit 1d9e25ce07 into main 2026-07-03 22:47:41 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#2341
No description provided.