fix(tradein/estimate): не перетирать дату обращения при оживлении оценки #2828
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#2828
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/tradein-created"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Проблема
Оживление мёртвых оценок (#2826) копировало в оригинальную строку
created_atвременной строки, которую всегда создаётestimate_qualityпод новым uuid.Факт с прода: оценка
ff421062-cc38-4c4c-ad2e-0cfac52d14ffсоздана2026-08-10 12:54:47, после оживленияcreated_atстал2026-08-11 04:30:03— попала в выборкуWHERE created_at > now() - interval '10 minutes'.created_at— дата обращения клиента, а не дата нашего пересчёта. Второй симптом того же бага:/historyсортирует поcreated_at, поэтому оживлённая старая запись прыгала в начало списка.Summary
created_atубран изSETв persist-UPDATE; ответ отдаёт дату исходной строки, а не временной.revival_completed_at(миграция256_*, идемпотентная, сlock_timeout) — отдельный аудит-след «когда успешно пересчитали».revival_attempted_atиз255_*ставится на захвате и включает проигравших троттлинг и неудачные пересчёты, поэтому переиспользовать его нельзя.expires_at,retain_until), снимок входных данных (address,lat/lon, площадь, комнатность, этаж, год, тип дома, ремонт), согласие 152-ФЗ (consent,client_ip,consent_policy_version,consent_text_snapshot) — все они и раньше не входили вSET.created_atбыл единственным исключением.PDF не затронут: там печатается дата формирования отчёта (
dt.date.today()), а неcreated_at— проверено, изменений не требуется.Test plan
ruff check/ruff format— чисто, pre-commit зелёныйcreated_atне изменился,revival_completed_atпроставлен, аexpires_at/retain_until/created_by/addressвообще не появляются вSET