Files
CRAPP/docs/modules/infortuni.md
T
davideandClaude Sonnet 5 9cc63b7854 Infortuni/ritardi: non contano più gli eventi futuri nei badge
contaInfortuni()/contaRitardi() leggevano tutta la mappa presenze senza
guardare la data dell'evento: un giocatore può segnarsi infortunato o in
ritardo anche su un evento non ancora avvenuto (l'UI lo permette finché
l'evento non è passato), e quel conteggio arrivava subito ai badge segreti
"Infermeria" e "Ritardi". Ora filtrano su data < oggi, come già fa
eventiContanoPresenze() per le statistiche di presenza: con l'avanzare
della data reale l'evento prima futuro entra da solo nel conteggio.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 16:59:50 +02:00

2.4 KiB

Modulo — Infortuni

Stato: implementato in forma minima (solo conteggio) File principali: src/lib/infortuni.ts


Obiettivo

Tracciare quanti eventi (allenamenti o partite) un giocatore ha saltato per infortunio, riusando lo stato di presenza infortunato già registrato per le convocazioni — nessun modulo di gestione infortuni a sé stante.


Dati

Nessuna tabella dedicata: il dato vive interamente dentro risposte_presenze, come uno dei valori possibili dell'enum Stato (presente, assente, forse, ritardo, infortunato).


Implementazione

contaStato()/contaInfortuni() (infortuni.ts) contano, per ciascun giocatore, quante volte compare lo stato infortunato nella mappa presenze già in cache (nessuna query aggiuntiva). Lo stesso meccanismo, con contaRitardi(), conta i ritardi. Il risultato alimenta il campo infortuni del Giocatore in useRosa().

Un evento con data futura o odierna non viene contato, anche se la risposta è già registrata (l'UI permette di segnarsi infortunato o in ritardo su un evento non ancora passato): il conteggio filtra su data < oggi, come già fa eventiContanoPresenze() in presenze.md, e cresce da solo con l'avanzare della data reale senza bisogno di altro codice.

Visibile in UI solo indirettamente, tramite il badge segreto "Cliente VIP dell'Infermeria" (sbloccato con almeno 3 infortuni): non esiste uno StatTile dedicato nel profilo che mostri il numero di infortuni come statistica di superficie.


Limiti noti

  • Nessuna durata o periodo tracciato: è solo un conteggio di eventi con quello stato, non un inizio/fine infortunio.
  • Il conteggio dipende dal fatto che qualcuno imposti correttamente lo stato "infortunato" invece di "assente": nessuna validazione o promemoria lo garantisce. Sulle card degli eventi extra-campo (tipo: "evento") l'opzione non è proposta in UI.
  • Poco visibile per valori bassi (1-2), perché emerge solo tramite un badge a soglia 3.
  • conInfortuni(), una funzione di merge alternativa nello stesso file, non risulta usata da nessuna parte del codice attuale — probabile residuo non collegato.

Evoluzioni possibili

  • Uno StatTile dedicato nel profilo, oltre al badge segreto.
  • Se servisse un vero tracciamento (durata, tipo di infortunio), servirebbe una tabella dedicata: oggi il modulo copre solo il conteggio.