Apre il voto MVP due ore dopo l'inizio e lo riserva ai presenti.

La votazione non dipendeva dal tempo ma dal risultato: compariva solo con un
referto CSI o uno scout salvato, e chiunque avesse un profilo poteva votare.
Ora `votoMvpAperto()` la apre due ore dopo `data`+`ora` dell'evento, il pannello
sta in una sezione sua e votano — e sono votabili — solo i presenti (o in
ritardo) di quell'evento.

I voti passano dall'id scout/CSI a quello dell'evento CrAPP: home e classifica
leggono il vincitore tramite la mappa data → evento che avevano già. Le regole
sono applicative, non RLS: chi scrive su PostgREST le aggira, come già annotato
tra i limiti noti del modulo.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-06 22:11:26 +02:00
co-authored by Claude Opus 5
parent da669db1eb
commit f149d02e9a
8 changed files with 105 additions and 27 deletions
+11
View File
@@ -5,6 +5,7 @@ import {
mioVoto,
mvpVintiPerGiocatore,
vincitoriMvp,
votoMvpAperto,
type VotoMvp,
} from "@/lib/mvp-voti";
@@ -74,4 +75,14 @@ assert.deepEqual(
);
assert.deepEqual(mvpVintiPerGiocatore([]), {});
// --- votoMvpAperto: due ore dopo il fischio d'inizio -------------------------
const alle = (o: number, m = 0) => new Date(2026, 8, 5, o, m);
assert.equal(votoMvpAperto("2026-09-05", "20:30", alle(22, 29)), false, "un minuto prima");
assert.equal(votoMvpAperto("2026-09-05", "20:30", alle(22, 30)), true, "due ore in punto");
assert.equal(votoMvpAperto("2026-09-05", "20:30", alle(23)), true);
assert.equal(votoMvpAperto("2026-09-06", "10:00", alle(23)), false, "partita di domani");
assert.equal(votoMvpAperto("2026-09-04", "20:30", alle(0, 1)), true, "partita passata: aperto");
assert.equal(votoMvpAperto("2026-09-05", "", alle(1, 59)), false, "senza ora vale mezzanotte");
assert.equal(votoMvpAperto("2026-09-05", "", alle(2)), true);
console.log("mvp-voti: ok");