Files
CRAPP/mem/features/cloud-efficienza.md
T
davideandClaude Sonnet 5 84313b1955 Aggiorno documentazione e memoria di progetto per il CMS Strapi
CLAUDE.md, docs/PORTABILITA.md e mem/features/cloud-efficienza.md riflettono
che rosa/classifica/storico partite vengono ora da Strapi (non più hardcoded)
e che lo scout finalizzato viene anche inviato a Strapi, oltre al localStorage.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-28 15:40:08 +02:00

1.8 KiB

name, description, type
name description type
Efficienza Cloud Regole per minimizzare query, traffico e invocazioni Cloud (piano 20 crediti/mese, 17 utenti) feature
  • Nessun polling (refetchInterval) verso il database; sincronizzazione locale via BroadcastChannel/storage dove possibile.
  • QueryClient globale: staleTime 5 min, gcTime 30 min, refetchOnWindowFocus/Mount/Reconnect disattivati, retry 1.
  • Dopo una mutazione aggiornare la cache con setQueryData, non invalidateQueries (evita riletture).
  • Scout live: scrive solo l'utente che segna; gli altri leggono dati già salvati.
  • Statistiche, badge e classifiche: "write once, read many" — calcolate e salvate una volta a fine partita, mai ricalcolate a ogni apertura pagina.
  • Rosa giocatori, classifica CSI e storico partite vengono ora dal CMS Strapi (infra/strapi/, letto via src/lib/rosa-base.ts/classifica-csi.ts/storico-match.ts), non più da array hardcoded — editing solo dall'admin panel Strapi, l'app resta sola lettura (più una scrittura best-effort per lo scout finalizzato, vedi sotto). Cache lunga (staleTime 60 min): questi dati cambiano a stagione/giornata, non a sessione.
  • Il risultato di una partita scoutata (ScoutMatch) resta salvato anzitutto nel localStorage del dispositivo di chi scouta (fonte usata da useRosa/giocatoriConScout per le statistiche), e viene anche inviato best-effort a Strapi (scout-match-finale, via /api/public/scout-finale) a fine partita per restare visibile cross-device nell'admin panel — nessun retry se il device non ha rete in quel momento.
  • Push solo per eventi importanti: convocazioni, promemoria allenamento/partita, turno palloni, esito finale.
  • Niente foto/video/chat o funzionalità pesanti.
  • Schema target: team_id, eventi, presenze, azioni_scout, statistiche_aggregate, classifica_csi, notifiche, con indici sui campi di filtro/relazione.