Solo whitespace: tabelle allineate, enfasi normalizzata (* -> _), a capo coerenti. Nessuna modifica di contenuto. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2.9 KiB
2.9 KiB
Turno palloni nel calendario + promemoria
Aggiungere a ogni allenamento/partita un incaricato dei palloni, condiviso tra tutti, con rotazione automatica proposta dall'app e promemoria (in-app e push).
Cosa vedrà la squadra
- Riga "Palloni" su ogni evento (allenamento e partita) nella card del calendario e in Home: avatar + nome dell'incaricato, oppure "Da assegnare".
- Chiunque può cambiarlo: tocco sulla riga, si apre la lista della rosa, si sceglie il nome. La modifica è immediata e visibile a tutti.
- Proposta automatica a rotazione: l'app suggerisce chi non ha ancora fatto il turno di recente (o è stato meno volte incaricato). Il suggerimento è solo una proposta: resta sempre modificabile.
- Storico turni nella scheda squadra/giocatore: quante volte ciascuno ha portato i palloni.
- Due promemoria per l'incaricato:
- il giorno stesso dell'evento in cui li deve prendere a fine allenamento/partita;
- il giorno dell'evento successivo, per ricordargli di riportarli.
- I promemoria arrivano come banner ben visibile in Home e, per chi attiva le notifiche, come notifica push sul telefono.
Impostazione tecnica
Backend (Lovable Cloud)
- Attivazione di Lovable Cloud.
- Tabella
eventi(spostando i dati demo attuali su database) o, in alternativa minima, tabellaturni_palloniconevento_id,giocatore_id,aggiornato_da,aggiornato_il. Scelgo la seconda per limitare il refactor: gli eventi restano incrapp-data.tsfinché non si passa a calendario dinamico. - Tabella
push_subscriptions(giocatore_id, endpoint, chiavi) per le notifiche. - Grant espliciti + RLS: lettura e scrittura aperte a tutti gli utenti dell'app (nessun login previsto oggi → policy per
anonlimitate a queste tabelle, nessun dato personale sensibile). - Server functions in
src/lib/palloni.functions.ts:getTurni,setTurno,suggerisciTurno.
Frontend
- Nuovo componente
TurnoPalloniusato inEventoCarde in Home. - Lettura via TanStack Query (
ensureQueryDatanel loader,useSuspenseQuerynel componente), invalidazione dopo la modifica. - Banner promemoria in Home basato su data odierna + evento successivo, mostrato solo al giocatore selezionato in
user-store.
Notifiche push
- Service worker dedicato al messaging (separato dalla PWA esistente), chiavi VAPID salvate come secret.
- Schermata in Profilo: "Attiva notifiche palloni" con richiesta di permesso.
- Invio schedulato tramite un endpoint
src/routes/api/public/promemoria-palloni.tsprotetto da secret, richiamato una volta al giorno da un job pianificato (pg_cron). - Nota: su iPhone le notifiche push funzionano solo se l'app è installata dalla schermata Home.
Ordine di lavoro
- Attivare Lovable Cloud e creare tabelle + policy.
- Server functions + UI del turno palloni (assegnazione manuale condivisa).
- Rotazione automatica suggerita + storico turni.
- Banner promemoria in-app.
- Notifiche push + job giornaliero.