gendesign/tradein-mvp/backend
lekss361 3ce76b4beb fix(tradein): floor/total_floors NULL — migration + PDF defaults
Bot review #558 нашёл 🔴: trade_in_estimates.floor/total_floors имеют
NOT NULL constraint в DDL (001_trade_in_estimates.sql) — INSERT в
estimator.py:893 и _empty_estimate шлют payload.floor=None →
psycopg.errors.NotNullViolation на user-submit без этажа.

- new migration 065: DROP NOT NULL для обеих колонок (idempotent)
- PDF exporter: fallback "—" вместо "0" при missing floor/total_floors
- estimator.py:744 style: `is not None` для consistency с pre-call gates
- integration test: estimate без floor не крашится

Bot reviewer ⚠️ findings addressed:
🔴 NOT NULL DB violation — FIXED via migration 065
🟠 PDF "0 / 0" regression — FIXED via or "—"
🟡 style inconsistency — FIXED
🟢 test coverage gap — FIXED via test_estimator_floor_optional.py
2026-05-25 00:36:49 +03:00
..
app fix(tradein): floor/total_floors NULL — migration + PDF defaults 2026-05-25 00:36:49 +03:00
data/sql fix(tradein): floor/total_floors NULL — migration + PDF defaults 2026-05-25 00:36:49 +03:00
tests fix(tradein): floor/total_floors NULL — migration + PDF defaults 2026-05-25 00:36:49 +03:00
.dockerignore feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
Dockerfile feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
pyproject.toml fix(tradein-photos): sanitize uploaded images via Pillow re-encode (#511) 2026-05-24 11:32:04 +00:00