@php
$data = is_string($taxes_subdomain->data) ? json_decode($taxes_subdomain->data) : $taxes_subdomain->data;
$logo = $data->logo ?? null;
$nombre = $taxes_subdomain->nombre_fantasia ?: $taxes_subdomain->subdomain;
$labelFase = function ($f) {
return [
'round_robin' => 'Round robin', '32avos' => '32avos', '16avos' => '16avos',
'octavos' => 'Octavos', 'cuartos' => 'Cuartos', 'semifinal' => 'Semifinal',
'final' => 'Final', 'tercer_puesto' => '3er puesto', 'grupos' => 'Grupos',
][$f] ?? $f;
};
$labelEstado = function ($e) {
return [
'pendiente_disponibilidad' => 'Pendiente', 'sin_match' => 'Sin match',
'confirmado' => 'Confirmado', 'jugado' => 'Jugado', 'walkover' => 'Walkover',
'suspendido' => 'Suspendido', 'cancelado' => 'Cancelado',
][$e] ?? $e;
};
// Iniciales de un nombre para fallback de avatar
$iniciales = function ($name) {
$t = trim($name ?? '');
if (!$t) return '?';
$parts = preg_split('/\s+/', $t);
return strtoupper(mb_substr($parts[0] ?? '', 0, 1) . mb_substr($parts[count($parts)-1] ?? '', 0, 1));
};
// Render del avatar de un participante (single = 1, pareja = 2 overlap)
$avatar = function ($part) use ($iniciales) {
if (!$part) return '';
$cell = function ($url, $name) use ($iniciales) {
if ($url) {
return '';
}
return ''.e($iniciales($name)).'';
};
if (($part['tipo'] ?? null) === 'pareja') {
$urls = $part['foto_urls'] ?? [null, null];
$names = array_map('trim', explode('/', $part['nombre'] ?? ''));
return ''.$cell($urls[0] ?? null, $names[0] ?? '').$cell($urls[1] ?? null, $names[1] ?? '').'';
}
return $cell($part['foto_url'] ?? null, $part['nombre'] ?? '');
};
@endphp
| Jugador | PJ | G | P | Dif |
|---|---|---|---|---|
| {{ $f['nombre'] }} | {{ $f['pj'] }} | {{ $f['pg'] }} | {{ $f['pp'] }} | {{ $f['diff'] > 0 ? '+'.$f['diff'] : $f['diff'] }} |