Ogni giorno, dalle 8:00 (Europe/Rome), un job pg_cron orario manda a chi compie
gli anni «Buon compleanno, <Nome>! 🎂» e a tutti gli altri membri attivi,
allenatori compresi, «Oggi è il compleanno di <Nome>» (con più compleanni lo
stesso giorno un solo messaggio a testa, nomi in ordine alfabetico). Solo
titolo, senza corpo né età. Canali: push, centro notifiche ed email.
- migration m31: tipi `compleanno` e `compleanno_auguri`, registro
`compleanni_notificati` (una sola volta per destinatario e giorno, anche se la
notifica viene eliminata), funzione `genera_avvisi_compleanno()` e job
`avvisi-compleanno`, trigger push esteso ai nuovi tipi. Non ancora applicata
in produzione.
- 29 febbraio non gestito: chi è nato quel giorno è avvisato solo negli anni
bisestili (limite noto, documentato).
- test: integrazione `notifiche-compleanno` (ora e ora legale, destinatari,
più compleanni, registro, coda push/email, 29 febbraio, job pianificato);
unit sui nuovi tipi e sul corpo vuoto del service worker.
- documentazione: DD-047, catalogo e testi delle notifiche, DATABASE, CHANGELOG,
ROADMAP, PROJECT_STATE.
Chiude la issue #11.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>