feat(tradein): бейдж точности адреса (qc_geo) на карточке оценки (accuracy #1) #617

Merged
Light1YT merged 1 commit from feat/tradein-address-precision into main 2026-05-28 10:37:55 +00:00
Owner

Summary

Честность к пользователю: бейдж «адрес: до дома / до улицы / приблизительно» из DaData qc_geo (0→house, 1→street, ≥2→approximate) рядом с confidence на карточке оценки.

Changes (7 файлов)

  • schemas/trade_in.pyaddress_precision: Literal[...]|None на AggregatedEstimate
  • estimator.py_qc_geo_to_precision helper, set в return + _empty_estimate
  • api/v1/trade_in.pyget_estimate + estimate_pdf rehydrate DaData-поля (canonical/cadnum/fias/precision/metro) из row. code-reviewer поймал: на ?id= reopen и в PDF вся Q1-обогащёнка пропадала (SELECT их опускал). Колонки уже persisted → read-path fix.
  • frontend: AddressPrecision type + .precision-badge в HeroSummary (токены --success/--accent-2/--bg-card-alt, без новых)

Workflow (канон с gendesign-агентами)

tech-analyst (план) → backend-engineer + frontend-engineer → code-reviewer ( APPROVE, нашёл reopen-gap) → fold-in fix.

Tests

7 passed (qc_geo→precision mapping вкл. None), tsc clean, ruff clean. match_house_readonly wiring отложен (fast-follow). 6 pre-existing unrelated fails — не затронуты.

Closes accuracy-roadmap #1.

## Summary Честность к пользователю: бейдж «адрес: до дома / до улицы / приблизительно» из DaData qc_geo (0→house, 1→street, ≥2→approximate) рядом с confidence на карточке оценки. ## Changes (7 файлов) - `schemas/trade_in.py` — `address_precision: Literal[...]|None` на AggregatedEstimate - `estimator.py` — `_qc_geo_to_precision` helper, set в return + `_empty_estimate` - `api/v1/trade_in.py` — **get_estimate + estimate_pdf rehydrate DaData-поля** (canonical/cadnum/fias/precision/metro) из row. code-reviewer поймал: на `?id=` reopen и в PDF вся Q1-обогащёнка пропадала (SELECT их опускал). Колонки уже persisted → read-path fix. - frontend: `AddressPrecision` type + `.precision-badge` в HeroSummary (токены --success/--accent-2/--bg-card-alt, без новых) ## Workflow (канон с gendesign-агентами) tech-analyst (план) → backend-engineer + frontend-engineer → code-reviewer (✅ APPROVE, нашёл reopen-gap) → fold-in fix. ## Tests 7 passed (qc_geo→precision mapping вкл. None), tsc clean, ruff clean. match_house_readonly wiring отложен (fast-follow). 6 pre-existing unrelated fails — не затронуты. Closes accuracy-roadmap #1.
Light1YT added 1 commit 2026-05-28 10:37:53 +00:00
Честность к пользователю: показываем насколько точно определён адрес —
«до дома» / «до улицы» / «приблизительно» — рядом с confidence.

- schemas/trade_in.py: address_precision: Literal["house","street","approximate"]|None
- estimator.py: _qc_geo_to_precision (qc_geo 0→house, 1→street, ≥2→approximate,
  None→None), set в основном return + _empty_estimate
- api/v1/trade_in.py: get_estimate + estimate_pdf теперь rehydrate'ят DaData-поля
  (canonical_address, house_cadnum, house_fias_id, address_precision, metro_nearest)
  из row — раньше на ?id= reopen / в PDF вся Q1-обогащёнка пропадала (поймал
  code-reviewer). Колонки уже persisted, фикс read-path.
- frontend: AddressPrecision type + precision-badge в HeroSummary (.card-meta),
  токены --success/--accent-2/--bg-card-alt, без новых токенов.

Канон: tech-analyst (план) → backend-engineer + frontend-engineer → code-reviewer
( APPROVE, поймал reopen-path gap) → fold-in fix. Tests: 7 passed, tsc clean, ruff clean.
match_house_readonly wiring отложен (fast-follow).
Light1YT merged commit 7c715c9249 into main 2026-05-28 10:37:55 +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#617
No description provided.