fix(site-finder): попап конкурента — NUMERIC-поля приходят строкой (цена/площадь не рендерились) #2114

Merged
bot-backend merged 1 commit from fix/competitor-popup-numeric-strings into main 2026-06-30 14:01:01 +00:00

1 commit

Author SHA1 Message Date
9d75ca4874 fix(site-finder): попап конкурента — NUMERIC-поля приходят строкой, рендерим цену и площадь
All checks were successful
CI / changes (pull_request) Successful in 8s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 1m5s
CI / openapi-codegen-check (pull_request) Successful in 2m3s
Прод-verify #2113 вскрыл: avg_price_per_m2_rub и avg_area_pd приходят с бэкенда
СТРОКОЙ («160345», «47.5») — Pydantic v2 сериализует Decimal (ROUND(::numeric))
в строку. Гварды `typeof === "number"` / `Number.isFinite(str)` молча роняли поля:
цена конкурента вообще не показывалась, а добавленная в #2113 «Ср. площадь кв.»
не рендерилась.

- toFiniteNumber(v) — приводит number|string→number|null.
- formatPrice использует его (цена снова показывается).
- avg_area_pd рендерится через toFiniteNumber.
- Типы avg_price_per_m2_rub/avg_area_pd расширены до number|string|null (честно
  отражает рантайм).

Frontend-only, контракт не меняется.
2026-06-30 18:57:48 +05:00