Calcola davvero le serie di presenze e sblocca badge e obiettivo.

I tre contatori (serieAllenamenti, seriePartite, serieConferme) e streak erano
zero fisso in useRosa(): la sezione Serie di presenze del profilo mostrava sempre
progresso nullo, i badge legati alla costanza erano impossibili da sbloccare e
l'obiettivo Continuita di squadra restava a 0/12.

serieConsecutiva() e serieConferme() (src/lib/presenze.ts) derivano le serie dagli
eventi passati e da risposte_presenze gia in cache, senza query aggiuntive.

Migration m9: nuova colonna risposto_il con l'istante della prima risposta, resa
immutabile da un trigger, confrontata con eventi_app.creato_il per le conferme
entro 24 ore. Serviva perche aggiornato_il registra l'ultima modifica, quindi chi
rispondeva subito e cambiava idea dopo risultava lento.

Corregge anche la barra di progresso, che misurava valore/prossimo e tornava
indietro a ogni traguardo raggiunto (2/3 = 67%, poi 3/6 = 50%).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-04 22:46:04 +02:00
co-authored by Claude Opus 5
parent 952f7b43d3
commit 7237e8ff39
12 changed files with 559 additions and 54 deletions
+2
View File
@@ -14,6 +14,7 @@ const riga: RigaEvento = {
campionato: true,
casa: true,
pagelle_chiuse: false,
creato_il: "2026-08-20T09:00:00Z",
};
// --- daRiga: i NULL del database diventano valori sicuri ---------------------
@@ -29,6 +30,7 @@ assert.deepEqual(daRiga(riga), {
campionato: true,
casa: true,
pagelleChiuse: false,
creatoIl: "2026-08-20T09:00:00Z",
});
const vuota = daRiga({