# Promemoria scadenze

Il comando `subscriptions:process-expirations`:

- attiva i periodi programmati;
- marca `expiring` quelli entro la soglia globale;
- invia promemoria;
- marca scadenza, grace period e blocco;
- aggiorna lo stato account;
- registra eventi, audit e riepilogo in `storage/logs/subscriptions.log`.

Soglie:

```dotenv
SUBSCRIPTION_REMINDER_DAYS=30,15,7,3,1,0
SUBSCRIPTION_EXPIRING_DAYS=30
```

Sono gestiti anche inizio grace period, ultimo giorno e blocco. Ogni destinatario riceve una notifica interna e un’e-mail. La `unique_key` combina periodo, destinatario, evento, soglia, canale e giorno: riesecuzioni nello stesso giorno non duplicano invii.

Le e-mail usano un template parametrico responsive. Il coach riceve nome atleta e collegamento al profilo; l’atleta riceve scadenza e invito a contattare il coach. Nessun dato corporeo o nota privata viene incluso.

Invio manuale: dal profilo o dalla dashboard, con conferma e rate limit. In caso di errore il record passa a `failed` con messaggio limitato; correggere SMTP e inviare di nuovo manualmente. Non cancellare i record per forzare un reinvio automatico.
