This commit is contained in:
Laucha1312
2026-06-04 15:20:26 -03:00
parent fdd0fef3f0
commit cc049c6cb6
64 changed files with 8914 additions and 0 deletions
@@ -0,0 +1,125 @@
@extends('admin.layout')
@section('title', 'Partidos - Admin OnAPB')
@section('content')
<div class="mb-5 d-flex justify-content-between align-items-end">
<div>
<span class="text-primary fw-bold text-uppercase tracking-widest d-block mb-2">Calendario de Juego</span>
<h1 class="display-4 fw-bold font-header mb-0">Partidos<span class="text-primary">.</span></h1>
</div>
@if(session('admin_role') == 1)
<a href="{{ route('admin.eventos.create') }}" class="btn-admin-primary">
<i class="bi bi-plus-lg me-2"></i> NUEVO EVENTO
</a>
@endif
</div>
<div class="mb-4 d-flex gap-2 animate-on-scroll">
<a href="{{ route('admin.eventos.index', ['estado' => 'todos']) }}"
class="btn {{ $estado == 'todos' ? 'btn-primary' : 'btn-outline-primary' }} btn-sm fw-bold text-uppercase px-4 rounded-pill shadow-sm transition-all">
<i class="bi bi-collection-play me-1"></i> TODOS
</a>
<a href="{{ route('admin.eventos.index', ['estado' => 'pendientes']) }}"
class="btn {{ $estado == 'pendientes' ? 'btn-primary' : 'btn-outline-primary' }} btn-sm fw-bold text-uppercase px-4 rounded-pill shadow-sm transition-all">
<i class="bi bi-clock-history me-1"></i> PENDIENTES
</a>
<a href="{{ route('admin.eventos.index', ['estado' => 'finalizados']) }}"
class="btn {{ $estado == 'finalizados' ? 'btn-primary' : 'btn-outline-primary' }} btn-sm fw-bold text-uppercase px-4 rounded-pill shadow-sm transition-all">
<i class="bi bi-check-circle-fill me-1"></i> FINALIZADOS
</a>
</div>
<div class="admin-card">
@if($eventos->isEmpty())
<div class="text-center py-5">
<i class="bi bi-calendar-event text-muted mb-3" style="font-size: 3rem;"></i>
<p class="fs-5 text-muted">No hay eventos registrados.</p>
</div>
@else
<div class="table-responsive">
<table class="kinetic-table">
<thead>
<tr>
<th>Estado</th>
<th>Partido</th>
<th>Fecha / Hora</th>
<th>Sede</th>
<th class="text-end">Acciones</th>
</tr>
</thead>
<tbody>
@foreach($eventos as $e)
<tr>
<td>
@php
$ahoraStr = \Carbon\Carbon::now()->toDateTimeString();
// Extraer fecha y hora de forma segura (soportando tanto strings como objetos Carbon)
$f = $e->fecha_evento instanceof \Carbon\Carbon ? $e->fecha_evento->format('Y-m-d') : substr((string)$e->fecha_evento, 0, 10);
$h = $e->hora_fin instanceof \Carbon\Carbon ? $e->hora_fin->format('H:i:s') : (string)$e->hora_fin;
if (strlen($h) == 5) $h .= ':00'; // Asegurar formato H:i:s
$momentoFin = "$f $h";
// Un evento esta finalizado si tiene marcadores Y el tiempo de fin ya paso
$tieneMarcadores = !is_null($e->marcador_local) && !is_null($e->marcador_visitante);
$finalizado = $tieneMarcadores && ($ahoraStr >= $momentoFin);
@endphp
@if($finalizado)
<span class="badge bg-success-container text-success px-2 py-1 x-small fw-bold">FINALIZADO</span>
<div class="mt-1 small fw-bold text-center border rounded py-1">
{{ $e->marcador_local }} - {{ $e->marcador_visitante }}
</div>
@else
<span class="badge bg-warning-container text-warning px-2 py-1 x-small fw-bold">PENDIENTE</span>
@endif
</td>
<td>
<div class="d-flex align-items-center gap-3">
<div class="text-end" style="width: 150px;">
<span class="fw-bold d-block">{{ $e->equipoLocal->club->nombre ?? 'Local' }}</span>
<span class="small text-muted text-uppercase">{{ $e->equipoLocal->categoria ?? '' }} {{ $e->equipoLocal->division ?? '' }}</span>
</div>
<span class="fw-bold text-primary px-2">VS</span>
<div style="width: 150px;">
<span class="fw-bold d-block">{{ $e->equipoVisitante->club->nombre ?? 'Visitante' }}</span>
<span class="small text-muted text-uppercase">{{ $e->equipoVisitante->categoria ?? '' }} {{ $e->equipoVisitante->division ?? '' }}</span>
</div>
</div>
</td>
<td>
<span class="fw-bold d-block">{{ $e->fecha_evento ? \Carbon\Carbon::parse($e->fecha_evento)->format('d/m/Y') : '—' }}</span>
<span class="small text-muted">{{ $e->hora_inicio }} - {{ $e->hora_fin }}</span>
</td>
<td><span class="small fw-bold text-uppercase"><i class="bi bi-geo-alt me-1"></i> {{ $e->sede ?? 'TBD' }}</span></td>
<td class="text-end">
@if(session('admin_role') == 1)
<a href="{{ route('admin.eventos.edit', $e->id_evento) }}" class="btn btn-sm btn-light fw-bold text-uppercase border me-1">
<i class="bi bi-pencil"></i>
</a>
@endif
@if($e->id_equipo_local && $e->id_equipo_visitante)
<a href="{{ route('admin.eventos.stats', $e->id_evento) }}" class="btn btn-sm btn-outline-success fw-bold text-uppercase me-1" title="Estadísticas">
<i class="bi bi-person-lines-fill"></i>
</a>
@endif
@if(session('admin_role') == 1)
<form action="{{ route('admin.eventos.destroy', $e->id_evento) }}" method="POST" class="d-inline delete-form confirm-submit" data-confirm-text="¿Eliminar este evento?">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-sm btn-outline-danger fw-bold text-uppercase">
<i class="bi bi-trash"></i>
</button>
</form>
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
@endif
</div>
@endsection