# DD-015 — Rosa anagrafica: da codice hardcoded a database **Data:** 3 settembre 2026 **Stato:** Accettata **Contesto** La lista giocatori viveva nel codice sorgente (`src/lib/crapp-data.ts`). Il database aveva già `giocatori_squadra` (migration M1) popolata ma non letta da nessuna schermata tranne `/benvenuto` e `/admin`: «Aggiungi giocatore» e «Disattiva giocatore» della dashboard non avevano effetto su Squadra, Presenze, Pagelle, Badge e Scout, mantenendo gli stessi ID finché non si farà DD-012. **Decisione** `useRosa()` (e con lei `useIo`, `useObiettivi`) legge ora `giocatori_squadra` tramite `useGiocatoriSquadra()`, filtrando solo i giocatori `attivo`. Tutti i punti che prima importavano la lista statica (`convocatiEvento`, `compleanniEventi`, `completaTurni`, `csvScoutMatch`, i widget di voto/scout/palloni, le due route API che mandano push) sono stati agganciati allo stesso hook o, lato server, a `leggiGiocatoriSquadra()` (`src/lib/giocatori-squadra.server.ts`, stesso pattern di `eventi.server.ts`). **Conseguenze** - Un giocatore aggiunto o disattivato dalla dashboard admin ora si riflette ovunque, non solo in `/benvenuto` e `/admin`. - `giocatori_squadra` non ha ancora una colonna per la data di nascita: per i 17 giocatori storici resta quella di `crapp-data.ts` (`nascitaPerId`, lookup per id); un giocatore aggiunto dopo la migrazione non ha nascita nota finché la colonna non esiste. Follow-up da aprire quando serve davvero. - `src/lib/crapp-data.ts` resta come seed storico e fallback (`rosaFallback()`), non più come fonte viva.