Files
portal/app/database
Дмитрий cec731b17c feat обзвон: чистка записей по сроку хранения — три ступени и чужие голоса
Записи разговоров и записи, которые клиент приносит для обучения робота,
умели приниматься и получать дату истечения — а стирать по этой дате не умел
никто. Любая попавшая к нам запись лежала бы вечно при обещанном сроке.

Построено:
- obzvon:chistka — три ступени по одной строке звонка: месяц звук, три месяца
  расшифровка, дальше ничего. Строку не удаляет никогда: вместе с ней ушли бы
  деньги, и клиент не смог бы спросить «за что вы с меня взяли».
- obzvon:chistka-materialov — чужие голоса: звук 30 дней, расшифровка полгода,
  два срока врозь. Кроме этой команды их не убирает ничто.
- SrokiZvonka — правило срока в одном месте: им пользуется чистка и им же
  обязана пользоваться звонилка волны 3, когда будет проставлять срок.
- Два ключа сроков звонков в system_settings. Новых таблиц нет.
- Обе команды в расписании и в списке сторожа пульса: команду, которой в
  списке нет, scheduler:check-heartbeats не проверяет вовсе.

Отдельно закрыты два ложных отчёта, которых в задании не было:
- чистка не ставит след удаления там, где предмета чистки не было вовсе —
  иначе карточка сказала бы человеку про текст, которого не существовало;
- строка с непроставленным сроком не пропускается молча: срок досчитывается
  от начала разговора, в строку не пишется, число таких строк называется вслух.

Файл не стёрся — строку не помечаем стёртой вовсе: иначе запись выпадает из
указателя под чистку навсегда и её не найдёт уже ни один прогон.

19 сторожей, каждый показан красным. Полный прогон свой рукой.
2026-08-06 00:47:47 +03:00
..