fix(tradein): срок жизни оценки 24ч → 720ч — отчёты исчезали раньше, чем ими успевали воспользоваться #3133
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#3133
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/tradein-retention-720h"
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?
По решению владельца, инцидент 27.08 с пилотом «Практика».
Что было
У пользователя все 75 оценок оказались недоступны, включая позавчерашние. Список «Предыдущие оценки» показывал их со статусом «устарел», открытие отдавало «Ссылка устарела, отчёт удалён или у вас нет к нему доступа». Выглядело как пропажа данных.
Данные целы — истёк
expires_at = created_at + 24ч. Проверено по базе:Совпадение двух вещей и создало впечатление аварии: сутки не работал вход (упало право
CONNECTна базуauth), и ровно за это время истекли последние живые отчёты. Люди зашли — и увидели, что не открывается ничего.Почему 24 часа были неверны здесь
Обоснование в коде честное и осознанное: «оценка живёт сессию клиента, не архив», плюс юридический мотив 152-ФЗ — хранение адреса физлица для анонимного B2C.
Но «Практика» — не анонимный B2C, а пилот-юрлицо: менеджер возвращается к оценке через день-два, когда клиент перезванивает. Для такого сценария суточный срок означает, что работа исчезает раньше, чем её успевают использовать.
Что меняется
TRADE_IN_ESTIMATE_RETENTION_HOURS24 → 720 (30 суток).Настройка одна на оба контура, и это в комментарии не замаскировано: юридический мотив относится к анонимному B2C, а разделение сроков по контурам — отдельная задача. Здесь поднят общий срок, а не сделан вид, что контуры уже разведены.
Существующие записи
Правка действует только на новые оценки. Уже созданным продлил срок напрямую в базе — 990 строк (
created_by IS NOT NULL, то есть авторизованные пилоты и сотрудники). Анонимные B2C-записи намеренно не тронуты: у их срока другое обоснование.У
praktikaпосле продления открылось 29 оценок — остальные старше 30 дней и в новый срок не попадают по построению.