Уведомления: непрочитанные не протухают — игрок увидит их при любом заходе

Раньше уведомления удалялись через 72 часа после создания независимо от
прочтения: кто не зашёл за 3 дня, не видел их вовсе. Теперь по времени
чистятся только прочитанные (72ч после прочтения), а от роста у
незаходящих защищает кап MAX_PER_USER=100 — при создании удаляются
старейшие сверх лимита. Механика доставки не менялась: запись в БД +
pull при заходе, SSE лишь ускоряет обновление открытых вкладок.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-18 04:08:00 +03:00
co-authored by Claude Fable 5
parent 1dbff7ae58
commit 5c3aa6ba69
5 changed files with 71 additions and 20 deletions
+2 -1
View File
@@ -1,7 +1,8 @@
"""Уведомления игрока: список (pull) и отметка прочитанными.
Появление в реальном времени обеспечивает SSE-сигнал `{type:"notifications"}` — по нему клиент
перезапрашивает этот список. Хранение — 72 часа; протухшие чистятся при чтении (и фоном)."""
перезапрашивает этот список. Непрочитанные хранятся до прочтения; прочитанные чистятся
спустя 72 часа (при чтении и фоном)."""
from __future__ import annotations
from fastapi import APIRouter, Depends