# TtA Goblin · stato e cose da fare

Aggiornato: 2026-09-01. Lo storico dettagliato sta nei commit e in `docs/`, qui c'è solo il presente.

## ✅ Fatto e in produzione
Tutto il V1 è **live** su <https://tta-goblin.vercel.app>:
vetrina (home, eventi, albo, regolamento, community), classifiche e ranking dal database,
registrazione e accesso, profilo, dashboard giocatore, **gestionale admin completo**
(crea evento da template, iscrizioni, seeding e generazione gironi e calendario, inserimento risultati,
classifiche con spareggio, proposte promo/retrocessione, chiusura stagione che scrive il Ranking),
**import delle classifiche dal CSV di CGE**, notifiche via cron, impostazione mobile-first.

Ranking storico: importate le 86 posizioni di AUT25 dal roster EST26.

**Audit del 2026-09-01**: 37 difetti confermati e sistemati, tra cui due che cancellavano un torneo
intero con un click (salvare un risultato su un girone importato da CGE; "Rigenera" a evento
avviato) e il claim del palmarès che avveniva prima della verifica email. Aggiunti reset password,
rispedizione del link di verifica e titoli di pagina, che mancavano del tutto.
Provati dal vivo: reset password completo, logout, claim del nick storico, guardie del gestionale.

## 🔴 Bloccanti prima di aprire alla community (azione Paolo)
- [ ] **`RESEND_API_KEY` su Vercel.** È il blocco vero: senza, la mail di verifica non parte e
      **chi si registra resta fuori senza capire perché**. Serve anche `EMAIL_FROM`.
- [ ] `CRON_SECRET` su Vercel, altrimenti l'endpoint delle notifiche risponde 503.
- [ ] Confermare gli URL di Telegram e del forum per `src/lib/content/community.ts`
      (candidati reali trovati sulla pagina CGE del torneo, mai inventati).

## 🟡 Da verificare insieme
- [x] ~~Auto-iscrizione del giocatore~~: provata il 2026-09-02, funziona (doppio click compreso).
- [x] ~~Cambio email~~: provato il 2026-09-02. Ha fatto emergere un 500 al secondo link,
      corretto in `8885438`.
- [x] ~~Mobile sulle pagine nuove~~: verificate a 375px, nessun overflow, niente da correggere.
- [ ] Import del ranking storico multi-stagione dal workbook (serve un export pulito del foglio
      "Andamento Ranking": il parsing automatico dell'xlsx è a rischio).
- [ ] Rimuovere l'utente di prova `AuditMobile375` dal database, quando non serve più.

## 🧭 Decisioni aperte con gli organizzatori
- [ ] **Fonte di verità dei risultati**: CGE (importiamo le classifiche e non ricalcoliamo) oppure
      inserimento completo da noi. Vedi `docs/08-integrazione-cge.md` §6.
- [ ] Se serve il **dettaglio partita** (avversari, punteggi cultura) dentro il portale: l'export CGE
      non lo contiene, servirebbe affiancare un secondo canale.
- [ ] Formula delle prossime stagioni (gironi da 13, 7 o 4). Non blocca: è **configurazione** di un
      evento, non codice. Vedi `docs/04-riforma-formula.md`.

## 🧱 Debito tecnico noto
- [ ] Engine `BRACKET_ELIMINAZIONE` e `A_SQUADRE` non implementati. Ma attenzione: su CGE il Duello
      **non è un bracket**, è una sequenza di stage con gironi da 2 e seeding manuale, quindi
      probabilmente basta il motore a gironi già esistente.
- [ ] Nessuna interfaccia per la gestione dei ruoli: si passa da SQL.
- [ ] Le date di avvio partita non si impostano da interfaccia, quindi le notifiche restano dormienti.
- [ ] Capitalizzazione dei nick incoerente tra roster e CGE (`sellux` contro `Sellux`): è un dato da
      normalizzare, non un difetto del codice.

## 💡 Idee
- [ ] Chiedere a CGE un accesso in lettura ai propri tornei citando il precedente TTA Pulse
      (`tournaments@czechgames.com`). Costo quasi nullo, aspettativa bassa.
- [ ] PWA e notifiche push.
- [ ] Branch separato del database Neon per lo sviluppo, oggi dev e produzione condividono lo stesso.
