import type { WcSquad, WcSquadSection, WcSquadPlayer } from "@/domain/entities"; const PLAYER_PORTRAIT: Record = { Alisson: "/images/player-brasil-1-alisson.png", Ederson: "/images/player-brasil-23-ederson.png", Danilo: "/images/player-brasil-2-danilo.png", Marquinhos: "/images/player-brasil-3-marquinhos.png", "Gabriel Magalhães": "/images/player-brasil-4-gabriel.png", "Alex Telles": "/images/player-brasil-12-telles.png", Casemiro: "/images/player-brasil-5-casemiro.png", Fred: "/images/player-brasil-8-fred.png", "Lucas Paquetá": "/images/player-brasil-10-paqueta.png", Rodrygo: "/images/player-brasil-7-rodrygo.png", Raphinha: "/images/player-brasil-11-raphinha.png", "Vinicius Jr": "/images/player-brasil-20-vinicius.png", Richarlison: "/images/player-brasil-9-richarlison.png", Endrick: "/images/player-brasil-18-endrick.png", }; const TEAM_PORTRAIT: Record = { Brasil: "/images/player-brasil.png", Argentina: "/images/player-argentina.png", França: "/images/player-franca.png", Espanha: "/images/player-espanha.png", Alemanha: "/images/player-alemanha.png", Inglaterra: "/images/player-brasil.png", Portugal: "/images/player-portugal.png", Itália: "/images/player-italia.png", Holanda: "/images/player-holanda.png", Croácia: "/images/player-croacia.png", Marrocos: "/images/player-marrocos.png", Japão: "/images/player-japao.png", México: "/images/player-mexico.png", Senegal: "/images/player-marrocos.png", Colômbia: "/images/player-mexico.png", Uruguai: "/images/player-argentina.png", Bélgica: "/images/player-franca.png", Suécia: "/images/player-alemanha.png", Dinamarca: "/images/player-alemanha.png", Austrália: "/images/player-brasil.png", Suíça: "/images/player-espanha.png", Canadá: "/images/player-brasil.png", "Estados Unidos": "/images/player-brasil.png", "Coreia do Sul": "/images/player-japao.png", "República Tcheca": "/images/player-espanha.png", Bósnia: "/images/player-croacia.png", Catar: "/images/player-marrocos.png", "África do Sul": "/images/player-marrocos.png", Turquia: "/images/player-italia.png", }; export function resolvePlayerPortrait(playerName: string, teamName: string): string { return ( PLAYER_PORTRAIT[playerName] ?? TEAM_PORTRAIT[teamName] ?? "/images/player-brasil.png" ); } export function shortPlayerName(fullName: string): string { const parts = fullName.trim().split(/\s+/); if (parts.length <= 1) return fullName; if (parts.length === 2) return parts[parts.length - 1]; return `${parts[0][0]}. ${parts[parts.length - 1]}`; } export type NumberedSquadPlayer = WcSquadPlayer & { number: number }; export type NumberedWcSquadSection = Omit & { players: NumberedSquadPlayer[]; }; export function assignSquadNumbers( squad: WcSquad, ): { sections: NumberedWcSquadSection[]; players: NumberedSquadPlayer[] } { let number = 1; const players: NumberedSquadPlayer[] = []; const sections = squad.sections.map((section) => ({ ...section, players: section.players.map((player) => { const numbered = { ...player, number: number++ }; players.push(numbered); return numbered; }), })); return { sections, players }; }