v2: четыре места, где числа честно посчитаны и нечестно показаны — «0,00 млн · −100%» зелёным, смешанные выборки в футере, deals-only полоса, бейдж о… #3320

Closed
opened 2026-09-02 06:56:21 +00:00 by bot-backend · 0 comments
Collaborator

Армейский аудит 01-02.09, линза v2-front; всё подтверждено скептиками.

1. street-deals с count=0 приходит нулями и рендерится как данные (high)

Бэкенд (trade_in.py:2258) при отсутствии сделок возвращает нули, не null (схема это документирует), фронт пропускает без фильтра: в 05 РЫНОК KPI показывает «0,00 млн ₽ · −100% к цене объявления» зелёным и диапазон «0,00 – 0,00». mappers.ts:2185-2208?? сохраняет 0, fallback не срабатывает. Посетитель читает «сделки в доме идут по нулевой цене».

2. Футер «Показано N из M» смешивает выборки (medium)

SourcesView.tsx:667: N — строки estimate.actual_deals (дом/район-tier), M — streetDeals.count (улица). Возможно «Показано 10 из 3».

3. deals-only ветка: полоса подписана «В ОБЪЯВЛЕНИЯХ», данные — из ДКП (medium)

mappers.ts:1242-1248: при n_analogs=0 карточку 1 переименовали честно (#2629), а полоса «ДИАПАЗОН ЦЕН В ОБЪЯВЛЕНИЯХ» строится из тех же deals-цен безусловно.

4. Бейдж «Мои отчёты» — месячная квота с fallback на lifetime-историю (low)

page.tsx:680: quota.used (обнуляется в новом месяце) ?? history.length (lifetime, cap 50). Одна цифра — два смысла, скачет в начале месяца.

Приёмка

  • count=0 → блок сделок в «нет данных», ни одного «−100%» (тест по значению)
  • N и M футера из ОДНОЙ выборки, либо подписи разведены
  • deals-only: полоса либо скрыта, либо подписана источником ДКП
  • Бейдж — один смысл (выбрать какой), fallback убран или подписан

Refs #2081 (закрыт — round 2), #2629.

Армейский аудит 01-02.09, линза v2-front; всё подтверждено скептиками. ## 1. street-deals с count=0 приходит нулями и рендерится как данные (high) Бэкенд (`trade_in.py:2258`) при отсутствии сделок возвращает **нули, не null** (схема это документирует), фронт пропускает без фильтра: в 05 РЫНОК KPI показывает **«0,00 млн ₽ · −100% к цене объявления» зелёным** и диапазон «0,00 – 0,00». `mappers.ts:2185-2208` — `??` сохраняет 0, fallback не срабатывает. Посетитель читает «сделки в доме идут по нулевой цене». ## 2. Футер «Показано N из M» смешивает выборки (medium) `SourcesView.tsx:667`: N — строки `estimate.actual_deals` (дом/район-tier), M — `streetDeals.count` (улица). Возможно «Показано 10 из 3». ## 3. deals-only ветка: полоса подписана «В ОБЪЯВЛЕНИЯХ», данные — из ДКП (medium) `mappers.ts:1242-1248`: при n_analogs=0 карточку 1 переименовали честно (#2629), а полоса «ДИАПАЗОН ЦЕН В ОБЪЯВЛЕНИЯХ» строится из тех же deals-цен безусловно. ## 4. Бейдж «Мои отчёты» — месячная квота с fallback на lifetime-историю (low) `page.tsx:680`: `quota.used` (обнуляется в новом месяце) ?? `history.length` (lifetime, cap 50). Одна цифра — два смысла, скачет в начале месяца. ## Приёмка - [ ] count=0 → блок сделок в «нет данных», ни одного «−100%» (тест по значению) - [ ] N и M футера из ОДНОЙ выборки, либо подписи разведены - [ ] deals-only: полоса либо скрыта, либо подписана источником ДКП - [ ] Бейдж — один смысл (выбрать какой), fallback убран или подписан Refs #2081 (закрыт — round 2), #2629.
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#3320
No description provided.