Files
CRAPP/.lovable/plan/turno-palloni-nel-calendario-promemoria-2026-07-31.md
T
davideandClaude Sonnet 5 85223baa9d Formatta la documentazione con prettier
Solo whitespace: tabelle allineate, enfasi normalizzata (* -> _), a capo
coerenti. Nessuna modifica di contenuto.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 13:38:56 +02:00

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:
    1. il giorno stesso dell'evento in cui li deve prendere a fine allenamento/partita;
    2. 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, tabella turni_palloni con evento_id, giocatore_id, aggiornato_da, aggiornato_il. Scelgo la seconda per limitare il refactor: gli eventi restano in crapp-data.ts finché 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 anon limitate a queste tabelle, nessun dato personale sensibile).
  • Server functions in src/lib/palloni.functions.ts: getTurni, setTurno, suggerisciTurno.

Frontend

  • Nuovo componente TurnoPalloni usato in EventoCard e in Home.
  • Lettura via TanStack Query (ensureQueryData nel loader, useSuspenseQuery nel 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.ts protetto 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

  1. Attivare Lovable Cloud e creare tabelle + policy.
  2. Server functions + UI del turno palloni (assegnazione manuale condivisa).
  3. Rotazione automatica suggerita + storico turni.
  4. Banner promemoria in-app.
  5. Notifiche push + job giornaliero.