Campos
{{ $totalFields }}
Marcações
{{ $totalBookingsToday }}
Pagas
{{ $totalPaidToday }}
Pendentes
{{ $totalPendingToday }}
Últimas Encomendas
Faixa rápida no topo para não roubar espaço à agenda.
@if(!empty($fields) && $fields->count())
@foreach($fields as $field)
@php
$fieldPaid = $field->bookings->where('payment_status', 'PAID')->count();
$fieldPending = $field->bookings->filter(function ($booking) {
return in_array($booking->payment_status, ['PENDING', 'UNPAID']);
})->count();
$fieldCancelled = $field->bookings->filter(function ($booking) {
return (int)$booking->is_canceled === 1 || $booking->status === 'CANCELLED';
})->count();
@endphp
{{ $field->bookings_count }}
{{ $field->name }}
{{ $field->bookings_count }} marcação{{ $field->bookings_count === 1 ? '' : 'ões' }} neste dia
Pagas: {{ $fieldPaid }}
Pendentes: {{ $fieldPending }}
@if($fieldCancelled > 0)
Canceladas: {{ $fieldCancelled }}
@endif
@foreach($field->bookings as $booking)
@php
$paymentClass = 'azp-pill azp-pill-neutral';
if ($booking->payment_status === 'PAID') {
$paymentClass = 'azp-pill azp-pill-success';
} elseif ($booking->payment_status === 'PENDING' || $booking->payment_status === 'UNPAID') {
$paymentClass = 'azp-pill azp-pill-warning';
} elseif ($booking->payment_status === 'REFUNDED') {
$paymentClass = 'azp-pill azp-pill-danger';
}
$statusClass = 'azp-pill azp-pill-neutral';
if ((int) $booking->is_canceled === 1 || $booking->status === 'CANCELLED') {
$statusClass = 'azp-pill azp-pill-danger';
} elseif ($booking->status === 'COMPLETED') {
$statusClass = 'azp-pill azp-pill-success';
} elseif ($booking->status === 'CONFIRMED') {
$statusClass = 'azp-pill azp-pill-info';
} elseif ($booking->status === 'PENDING') {
$statusClass = 'azp-pill azp-pill-warning';
}
@endphp
{{ $booking->start_time }}
@if($booking->end_time)
→
{{ $booking->end_time }}
@endif
Duração: {{ $booking->duration_label }}
#{{ $booking->booking_id }}
Jogadores
{{ $booking->participants_count }}
Preço
{{ $booking->price }}
Tipo
{{ $booking->booking_type ?: '—' }}
{{ $booking->payment_status_label }}
{{ $booking->status_label }}
Participantes
@if($booking->participants && $booking->participants->count())
@foreach($booking->participants as $participant)
@php
$participantName = $participant->user_name ?: $participant->name ?: 'Sem nome';
$parts = preg_split('/\s+/', trim($participantName));
$initials = '';
if (!empty($parts[0])) {
$initials .= mb_strtoupper(mb_substr($parts[0], 0, 1));
}
if (count($parts) > 1) {
$initials .= mb_strtoupper(mb_substr($parts[count($parts)-1], 0, 1));
}
if ($initials === '') {
$initials = 'U';
}
@endphp
@if(!empty($participant->user_id))
{{ $initials }}
{{ $participantName }}
@else
{{ $initials }}
{{ $participantName }}
@endif
@endforeach
@else
Sem participantes associados.
@endif
@endforeach
@endforeach
@else
Sem marcações para esta data
Não existem reservas sincronizadas para este clube no dia selecionado.
@endif