@extends('admin.layout') @section('title', 'Gestão de Responsáveis') @section('content')

Gestão de Responsáveis

@if($selectedEvento) Gerencie os responsáveis do evento "{{ $selectedEvento->titulo }}" @else Selecione um evento para gerenciar os responsáveis @endif

@if($selectedEvento) @endif
@if($selectedEvento && count($stats) > 0)
Total Responsáveis
{{ number_format($stats['total'] ?? 0) }}
Ativos
{{ number_format($stats['ativos'] ?? 0) }}
Com Vinculados
{{ number_format($stats['com_vinculados'] ?? 0) }}
Cadastros Hoje
{{ number_format($stats['cadastros_hoje'] ?? 0) }}
No Parque
{{ number_format($stats['no_parque'] ?? 0) }}
@endif @if($selectedEvento)
Limpar
@endif

Lista de Responsáveis @if($selectedEvento && $responsaveis->total() > 0) {{ number_format($responsaveis->total()) }} {{ $responsaveis->total() === 1 ? 'responsável' : 'responsáveis' }} @if(request()->hasAny(['search', 'status', 'vinculados', 'periodo'])) filtrado{{ $responsaveis->total() === 1 ? '' : 's' }} @endif @endif

@if($selectedEvento && $responsaveis->count() > 0) @foreach($responsaveis as $responsavel) @php $allEntradas = $responsavel->vinculados->flatMap->entradas; $noParque = $allEntradas->where('status', 'ativo')->count() > 0; $ultimaEntrada = $allEntradas->sortByDesc('datahora_entrada')->first(); $iniciais = collect(explode(' ', $responsavel->nome))->map(fn($name) => strtoupper(substr($name, 0, 1)))->take(2)->join(''); $colors = ['from-blue-500 to-purple-600', 'from-pink-500 to-red-600', 'from-green-500 to-blue-600', 'from-yellow-500 to-orange-600', 'from-purple-500 to-indigo-600']; $colorIndex = abs(crc32($responsavel->nome)) % count($colors); $inscricaoAtual = $responsavel->inscricoes->first(); $isAtivo = $inscricaoAtual ? $inscricaoAtual->ativo : false; @endphp @endforeach @elseif($selectedEvento) @else @endif
Responsável Contato Vinculados Última Entrada Status Ações
{{ $iniciais }}
{{ $responsavel->nome }}
CPF: {{ $responsavel->cpf_formatted }}
Nascimento: {{ $responsavel->nascimento->format('d/m/Y') }}
{{ $responsavel->email }}
{{ $responsavel->telefone1 }}
@if($responsavel->telefone2)
{{ $responsavel->telefone2 }}
@endif
@if($responsavel->vinculados->count() > 0)
@php $vinculos = $responsavel->vinculados->groupBy('vinculo.descricao'); $colors = [ 'Criança' => 'bg-blue-100 text-blue-800', 'Adolescente' => 'bg-purple-100 text-purple-800', 'Adulto' => 'bg-green-100 text-green-800', 'Idoso' => 'bg-yellow-100 text-yellow-800', 'PCD' => 'bg-red-100 text-red-800', 'Cônjuge' => 'bg-pink-100 text-pink-800', 'Familiar' => 'bg-indigo-100 text-indigo-800' ]; @endphp @foreach($vinculos as $vinculoDescricao => $vinculados) {{ $vinculados->count() }} {{ $vinculoDescricao }}{{ $vinculados->count() > 1 ? 's' : '' }} @endforeach
@foreach($responsavel->vinculados->take(3) as $vinculado) {{ $vinculado->nome }}@if(!$loop->last && $loop->index < 2), @endif @endforeach @if($responsavel->vinculados->count() > 3) ... (+{{ $responsavel->vinculados->count() - 3 }} mais) @endif
@else Sem vinculados @endif
@if($ultimaEntrada) @if($noParque)
ATIVO AGORA
Entrada: {{ \Carbon\Carbon::parse($ultimaEntrada->datahora_entrada)->format('H:i') }} - {{ $ultimaEntrada->evento->titulo }}
@else
{{ \Carbon\Carbon::parse($ultimaEntrada->datahora_entrada)->format('d/m/Y') }}
{{ \Carbon\Carbon::parse($ultimaEntrada->datahora_entrada)->format('H:i') }} - {{ $ultimaEntrada->evento->titulo }}
@endif @else
Nunca visitou
@endif
@if($noParque) No parque @elseif($isAtivo) Ativo @else Inativo @endif

Nenhum responsável encontrado

Não há responsáveis cadastrados para este evento com os filtros selecionados.

Selecione um evento

Para gerenciar os responsáveis, você precisa selecionar um evento primeiro.

@if($selectedEvento && $responsaveis->count() > 0)
Mostrando {{ $responsaveis->firstItem() ?? 0 }} a {{ $responsaveis->lastItem() ?? 0 }} de {{ $responsaveis->total() }} responsáveis
{{ $responsaveis->links() }}
@endif
@push('scripts') @endpush @endsection