refactor(tradein): консолидировать corridor/street-deals city-scope на _resolve_target_city (п.3) #2501

Merged
bot-backend merged 1 commit from fix/tradein-corridor-dedup-scope into main 2026-07-12 20:31:06 +00:00
Collaborator

п.3 — консолидация corridor/street-deals city-scope (cleanup двойного #2488↔#2489)

Твой #2488 (_resolve_target_city + LOWER(d.city)=:target_city) смёржен НА ВЕРХ моего #2489 (substring) → в _fetch_dkp_corridor был двойной city-фильтр (benign, но избыточный + латентный ё/е edge).

  • _fetch_dkp_corridor: убран мой substring, оставлен твой _resolve_target_city (словарь ~30 городов обл.66 вкл. ЕКБ + все sweep-города; city=None → фильтр не применяется — прежнее #2488-поведение). Убран unused :address bind.
  • get_street_deals: substring заменён на тот же _resolve_target_city паттерн (консистентность; #2488 не трогал street-deals).

Live-verified: Ленина 2к ЕКБ → median 118052, 1 город (байт-в-байт как substring). Regression-гейт байт-зелёный (коридор заморожен в фикстуре), 53 теста, ruff clean.

## п.3 — консолидация corridor/street-deals city-scope (cleanup двойного #2488↔#2489) Твой #2488 (`_resolve_target_city` + `LOWER(d.city)=:target_city`) смёржен НА ВЕРХ моего #2489 (substring) → в `_fetch_dkp_corridor` был **двойной city-фильтр** (benign, но избыточный + латентный ё/е edge). - `_fetch_dkp_corridor`: убран мой substring, оставлен твой `_resolve_target_city` (словарь ~30 городов обл.66 вкл. ЕКБ + все sweep-города; `city=None` → фильтр не применяется — прежнее #2488-поведение). Убран unused `:address` bind. - `get_street_deals`: substring заменён на тот же `_resolve_target_city` паттерн (консистентность; #2488 не трогал street-deals). Live-verified: Ленина 2к ЕКБ → **median 118052, 1 город** (байт-в-байт как substring). Regression-гейт байт-зелёный (коридор заморожен в фикстуре), 53 теста, ruff clean.
bot-backend added 1 commit 2026-07-12 20:18:26 +00:00
refactor(tradein): консолидировать corridor/street-deals city-scope на _resolve_target_city (п.3)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI Trade-In / backend-tests (pull_request) Successful in 51s
CI / changes (pull_request) Successful in 7s
CI Trade-In / frontend-checks (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
d31b1e01ee
#2488 (_resolve_target_city + LOWER(d.city)=:target_city) смёржен НА ВЕРХ моего #2489
(substring :address ILIKE '%'||d.city||'%') → в _fetch_dkp_corridor образовался
двойной city-фильтр (benign, но избыточный + латентный ё/е edge в substring).

- estimator._fetch_dkp_corridor: убран мой substring-фильтр, оставлен #2488
  _resolve_target_city (словарь ~30 городов обл.66 вкл. ЕКБ + все sweep-города;
  city=None → фильтр не применяется — прежнее #2488-поведение). Убран unused :address bind.
- api/v1/trade_in.get_street_deals: substring заменён на тот же _resolve_target_city
  паттерн (консистентность; #2488 не трогал street-deals). city_filter — литерал,
  значение bind-параметром (не инъекция).

Live-verified: Ленина 2к ЕКБ → median 118052, 1 город (байт-в-байт как substring).
Regression-гейт байт-зелёный (коридор заморожен в фикстуре), 53 теста, ruff clean.
bot-backend merged commit e7c388dde7 into main 2026-07-12 20:31:06 +00:00
bot-backend deleted branch fix/tradein-corridor-dedup-scope 2026-07-12 20:31:06 +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#2501
No description provided.