- MaintenanceService (@Cron daily 4:00): ретенция track_plays >180д чанками по 20k
(без ретенции таблица растёт ~100k строк/сутки) + прун осиротевших треков
(без проигрываний/лайков/обложки, >30д). Сейчас удаляет 0 (данным 4 дня) —
только ограничивает будущий рост. ВНИМАНИЕ: 180д ограничивает и чарт period=all.
- getAllNowPlaying: select-проекция (stationId+name) вместо include station:true —
не тянем всю строку Station (streamUrl, tags[], даты) на каждый ряд now_playing.
- PrismaService: connection_limit=20 в URL идемпотентно (дефолт ~5 мал под ~16
конкурентных поллеров).