Voto MVP definitivo, a pari merito, segreto e a tempo; nome del votato dalla rosa. PROJECT_STATE segna che m35-m38 restano da applicare su Supabase (db push rinviato) e il lavoro su feature/gara. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2.5 KiB
DD-051 — Voto MVP definitivo e MVP a pari merito
Data: 26 ottobre 2026
Stato: Accettata (migration m35 e m36)
Contesto
Il voto MVP si poteva cambiare senza limiti e senza storico (mvp.md), e una parità in testa non
assegnava l'MVP a nessuno finché non arrivavano altri voti. Con voti modificabili la classifica di una
partita poteva ribaltarsi dopo che la squadra l'aveva già vista; e una parità, che a fine serata non si
risolve più perché nessuno vota ancora, lasciava la partita senza MVP per sempre.
Decisione
-
Il voto è definitivo. Il giocatore lo registra una volta sola per partita. L'interfaccia chiede una conferma prima di inviarlo e non offre più «Cambia voto»; la mutazione è un
INSERTe un secondo voto viene rifiutato dal vincoloUNIQUE (match_id, votante_id). A database (m35) il giocatore ha solo la policy diINSERT:UPDATEeDELETErestano agli admin (policy di M11), che possono correggere un voto sbagliato. -
Una parità in testa dà più MVP.
mvpPartita()restituisce tutti i più votati; ognuno conta un titolo inmvpVintiPerGiocatore(), e dove si mostra un solo nome per partita (Home, Classifica) i nomi sono uniti («Anna e Bruno»). Il quorum di DD-028 (VOTI_MINIMI_MVP = 2) resta: sotto due voti totali nessuno è MVP. -
Presenza e orario a database (
m36). Il voto MVP richiede, oltre a convocati e non-allenatori, che l'evento sia una partita, che votante e votato sianopresenteoritardoe che siano passate 2 ore dall'inizio. Sta in una funzione dedicata,voto_mvp_consentito(), perchéevento_permette_voto()è condivisa con pagelle e badge social, che non hanno queste regole. Gli admin restano esclusi dai vincoli.
Alternative scartate
- Lasciare il voto modificabile entro una scadenza → serve una scadenza che non esiste (
mvp.md, «Evoluzioni possibili») e un cambio di idea tardivo resta possibile. - Spareggio con un criterio automatico (media pagella, presenze) → introduce regole nascoste che i giocatori non vedono; il pari merito è il risultato più semplice da spiegare.
Conseguenze
- Un voto dato per errore si corregge solo da un admin.
- I voti già dati restano, ma le partite con una parità in testa assegnano ora i titoli: i conteggi MVP dei giocatori possono salire (badge «MVP» e «Uomo tie-break» compresi).
- Con tre o più pari merito (per esempio tre voti a tre persone diverse) gli MVP sono tre.
Riesame
Se i pari merito risultano troppo frequenti, alzare il quorum (DD-028) o introdurre uno spareggio.