trade-in/v2: подключить LocationDrawer к GET /location-coef (frontend wiring, follow-up #2045) #2317

Closed
opened 2026-07-03 21:07:41 +00:00 by lekss361 · 1 comment
Owner

Follow-up к #2045 (закрыт, backend-only). Backend готов и задеплоен: GET /api/v1/trade-in/location-coef?estimate_id=&radius_m= возвращает {coef, factors:[{label,delta,poi_type}], geo_source} (geo_source: "unavailable" пока честный фолбэк, если локальное зеркало POI ещё не отрефрешено на окружении).

Сейчас: tradein-mvp/frontend/src/components/trade-in/v2/mappers.ts — TODO BE-3, object.locationCoef захардкожен "—"; LocationDrawer.tsx — намеренно честный placeholder-текст вместо реальных factors.

Нужно:

  • Хук useLocationCoef(estimateId, radiusMm?) (TanStack Query, паттерн как у соседних useEstimateHouseAnalytics/useStreetDeals).
  • mappers.ts: заменить хардкод на реальный coef/factors из ответа; честно обработать geo_source: "unavailable" (скрыть/задизейблить блок, не показывать фейковые нули).
  • LocationDrawer.tsx: рендер factors[] (label/delta/poi_type) вместо placeholder-текста.
  • HeroBar.tsx КОЭФ. ЛОКАЦИИ tile — заменить "—" на реальное значение с fallback.

Acceptance: LocationDrawer открывается и показывает реальные factors (или честное "недоступно" состояние, если зеркало ещё не отрефрешено); next build зелёный.

Замечание из code-review #2045 PR-B: score→coef — MVP-эвристика (0.95-1.05), не откалиброванная на реальных ценовых дельтах — донести это на фронте не нужно текстом (drawer не должен выглядеть менее уверенно чем остальные честные разделы), но не подавать coef как точную науку в копирайтинге.

Follow-up к #2045 (закрыт, backend-only). Backend готов и задеплоен: `GET /api/v1/trade-in/location-coef?estimate_id=&radius_m=` возвращает `{coef, factors:[{label,delta,poi_type}], geo_source}` (`geo_source: "unavailable"` пока честный фолбэк, если локальное зеркало POI ещё не отрефрешено на окружении). Сейчас: `tradein-mvp/frontend/src/components/trade-in/v2/mappers.ts` — TODO BE-3, `object.locationCoef` захардкожен `"—"`; `LocationDrawer.tsx` — намеренно честный placeholder-текст вместо реальных factors. Нужно: - Хук `useLocationCoef(estimateId, radiusMm?)` (TanStack Query, паттерн как у соседних `useEstimateHouseAnalytics`/`useStreetDeals`). - `mappers.ts`: заменить хардкод на реальный `coef`/`factors` из ответа; честно обработать `geo_source: "unavailable"` (скрыть/задизейблить блок, не показывать фейковые нули). - `LocationDrawer.tsx`: рендер `factors[]` (label/delta/poi_type) вместо placeholder-текста. - `HeroBar.tsx` КОЭФ. ЛОКАЦИИ tile — заменить `"—"` на реальное значение с fallback. Acceptance: LocationDrawer открывается и показывает реальные factors (или честное "недоступно" состояние, если зеркало ещё не отрефрешено); `next build` зелёный. Замечание из code-review #2045 PR-B: score→coef — MVP-эвристика (0.95-1.05), не откалиброванная на реальных ценовых дельтах — донести это на фронте не нужно текстом (drawer не должен выглядеть менее уверенно чем остальные честные разделы), но не подавать coef как точную науку в копирайтинге.
lekss361 added the
enhancement
scope/frontend
tradein
labels 2026-07-03 21:07:49 +00:00
Author
Owner

Working on this (автономный проход по backlog) — ветка fix/tradein-v2-location-coef-wiring. Чисто FE wiring, backend endpoint уже задеплоен.

Working on this (автономный проход по backlog) — ветка `fix/tradein-v2-location-coef-wiring`. Чисто FE wiring, backend endpoint уже задеплоен.
Sign in to join this conversation.
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#2317
No description provided.