gendesign/tradein-mvp/backend/app/schemas
Light1YT 8591efc42f feat(tradein): estimator deals tier classification (PR M / #564 Phase 3)
Remove stale NOTE 2026-05-24 + add tier field на AnalogLot.

- schemas/trade_in.py: AnalogLot добавлено поле `tier: str | None`
  ('T0_per_house' / 'T1_per_street' — для rosreestr deals)
- services/estimator.py:
  * _deal_to_analog: compute tier via kadastr_num heuristic
    ('66:41:0204016:10' → T0; '66:41:...:0' OR NULL → T1)
  * estimate_quality docstring: replaced устаревший NOTE с corrected
    explanation что importer (PR-A 2026-05-24) уже фильтрует doc_type='ДКП'
    и deals идут в actual_deals output
  * _fetch_deals SQL: include kadastr_num в SELECT (для tier classify)

Observation: open dataset Росреестра (current state) имеет
kadastr_num=NULL для всех 49,791 ДКП-сделок → все классифицируются
как T1_per_street. Поле зарезервировано на случай будущего ЕГРН
direct feed.

Tests: ruff clean, services/ pytest 19/19 pass.

Closes #564 Phase 3.
2026-05-27 17:36:46 +05:00
..
__init__.py feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
search.py feat(tradein): Phase 3.2 — /api/v1/search endpoint + Redis cache (#479) 2026-05-23 14:44:22 +00:00
search_response.py feat(tradein): Phase 3.2 — /api/v1/search endpoint + Redis cache (#479) 2026-05-23 14:44:22 +00:00
trade_in.py feat(tradein): estimator deals tier classification (PR M / #564 Phase 3) 2026-05-27 17:36:46 +05:00