fix(reliability): дневной лимит imggen в БД + ретеншн error_log (Спринт3)

- imggen: дневной счётчик генераций перенесён из in-memory Map в таблицу
  imggen_usage (миграция 070) — переживает рестарт. Cooldown остаётся в памяти,
  но добавлена периодическая чистка Map + старых строк imggen_usage (>7 дн).
- classroom-cleanup: ретеншн error_log (app_settings.error_log_retention_days,
  по умолч. 30; 0 = выкл) в том же суточном джобе.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-12 23:00:36 +03:00
parent 9d622454d6
commit ccfb151eca
3 changed files with 43 additions and 6 deletions
@@ -0,0 +1,8 @@
-- Дневной счётчик генераций картинок на пользователя (переживает рестарт,
-- в отличие от прежней in-memory Map). Лимит применяется в imggenController.
CREATE TABLE IF NOT EXISTS imggen_usage (
user_id INTEGER NOT NULL,
day TEXT NOT NULL, -- 'YYYY-MM-DD'
count INTEGER NOT NULL DEFAULT 0,
PRIMARY KEY (user_id, day)
);