Aggancia useRosa() a giocatori_squadra (DD-015)

useRosa()/useIo()/useObiettivi() leggono ora l'anagrafica da giocatori_squadra
tramite useGiocatoriSquadra(), filtrando solo i giocatori attivo. crapp-data.ts
resta il seed storico e il fallback (rosaFallback) e fornisce anche la data di
nascita per id, non ancora una colonna della tabella. Aggiunge
giocatori-squadra.server.ts per leggere la rosa lato route API (stesso pattern
di eventi.server.ts).
This commit is contained in:
2026-09-03 10:16:35 +02:00
parent cce6525f09
commit 4470139504
4 changed files with 83 additions and 45 deletions
+19 -13
View File
@@ -20,7 +20,7 @@ export type GiocatoreSquadra = {
dataTessera: string | null;
};
type RigaGiocatoreSquadra = {
export type RigaGiocatoreSquadra = {
id: string;
nome: string;
cognome: string;
@@ -73,17 +73,12 @@ export function slotPerEmail(
return righe.find((g) => !g.authUserId && g.email?.trim().toLowerCase() === cercata) ?? null;
}
async function fetchSquadra(): Promise<GiocatoreSquadra[]> {
const { data, error } = await supabaseNuoveTabelle
.from("giocatori_squadra")
.select(
"id, nome, cognome, numero, ruolo, auth_user_id, attivo, email, numero_tessera, data_tessera",
)
.order("cognome")
.order("nome");
if (error) throw error;
const righe = (data ?? []) as RigaGiocatoreSquadra[];
return righe.map((r) => ({
export const COLONNE_SQUADRA =
"id, nome, cognome, numero, ruolo, auth_user_id, attivo, email, numero_tessera, data_tessera";
/** Conversione riga database -> modello applicativo (riusabile anche lato server). */
export function daRigaSquadra(r: RigaGiocatoreSquadra): GiocatoreSquadra {
return {
id: r.id,
nome: r.nome,
cognome: r.cognome,
@@ -94,7 +89,18 @@ async function fetchSquadra(): Promise<GiocatoreSquadra[]> {
email: r.email,
numeroTessera: r.numero_tessera,
dataTessera: r.data_tessera,
}));
};
}
async function fetchSquadra(): Promise<GiocatoreSquadra[]> {
const { data, error } = await supabaseNuoveTabelle
.from("giocatori_squadra")
.select(COLONNE_SQUADRA)
.order("cognome")
.order("nome");
if (error) throw error;
const righe = (data ?? []) as RigaGiocatoreSquadra[];
return righe.map(daRigaSquadra);
}
/** Anagrafica squadra: una lettura per sessione, cambia raramente. */