@section('title', __('Atendimento'))
{{-- conceito WhatsApp: a página NÃO rola; o diálogo é o principal e rola sozinho; conversas à esquerda; dados do contato num painel opcional --}}
{{-- ==================== conversas (esquerda) ==================== --}}

{{ __('Atendimento') }}

📊 @hasrole('admin') 📚 @endhasrole
@foreach ([ ['rotulo' => __('Fila'), 'itens' => $fila, 'vazio' => __('Fila vazia.')], ['rotulo' => __('Meus atendimentos'), 'itens' => $meus, 'vazio' => null], ['rotulo' => '✦ ' . __('IA atendendo'), 'itens' => $comIa, 'vazio' => null], ['rotulo' => __('Chamados'), 'itens' => $chamados, 'vazio' => null], ] as $secao) @if (count($secao['itens']) || $secao['vazio'])

{{ $secao['rotulo'] }} @if (count($secao['itens'])) ({{ count($secao['itens']) }}) @endif

@endif @forelse ($secao['itens'] as $f) @php $nome = optional($f->requester)->name ?: __('Sem cadastro'); @endphp @empty @if ($secao['vazio'])

{{ $secao['vazio'] }}

@endif @endforelse @endforeach
{{ $contadores['aguardando'] }} {{ __('na fila') }} · {{ $contadores['emAtendimento'] }} {{ __('em atendimento') }} · {{ $contadores['chamadosVencendo'] }} {{ __('chamados vencendo') }}
{{-- ==================== o diálogo (principal) ==================== --}}
@if (!$ticket)

{{ __('Escolha uma conversa') }}

{{ __('A IA filtra e atende primeiro; aqui chega o que precisa de um atendente.') }}

@else @php $nome = optional($ticket->requester)->name ?: __('Sem cadastro'); @endphp {{-- cabeçalho da conversa --}}
{{ mb_strtoupper(mb_substr($nome, 0, 1)) }}

{{ $nome }} · {{ $ticket->protocol }}

@php $met = $ticket->metricas(); @endphp {{ $ticket->channel === 'app_motorista' ? __('Motorista') : ($ticket->channel === 'app_cliente' ? __('Passageiro') : __('Interno')) }} · {{ $ticket->status_label }} @if ($ticket->status === 'aguardando_usuario' && !$ticket->assigned_to) · ✦ {{ __('IA atendendo') }} @endif @if ($met['filaCorrendo']) · {{ __('na fila há') }} {{ \App\Models\SupportTicket::duracao($met['filaSeg']) }} @elseif ($met['atendimentoCorrendo']) · {{ __('com atendente há') }} {{ \App\Models\SupportTicket::duracao($met['atendimentoSeg']) }} @endif @if ($ticket->operador) · {{ __('com') }} {{ $ticket->operador->name }} @endif @if ($ticket->due_at) · {{ __('prazo') }} {{ $ticket->due_at->format('d/m/Y') }} @endif

@if ($ticket->status === 'aguardando') @endif @if (!in_array($ticket->status, ['resolvido', 'sem_procedencia']))

{{ __('Encerrar como') }}

@endif
{{-- as mensagens (só isto rola) --}}
@foreach ($ticket->messages as $m) @if ($m->author === 'sistema')
{{ $m->body }} · {{ $m->created_at->format('d/m H:i') }}
@else @php $doOperador = $m->author === 'operador'; @endphp
@if (!$doOperador)

{{ $m->author === 'ia' ? __('Assistente (IA)') : $nome }}

@elseif ($m->internal)

{{ __('Nota interna · o usuário não vê') }}

@endif

{{ $m->body }}

{{ $m->created_at->format('H:i') }}

@endif @endforeach
{{-- compositor fixo --}} @if (!in_array($ticket->status, ['resolvido', 'sem_procedencia'])) @if ($formChamado)

{{ __('A mensagem abaixo vira a nota do chamado; o usuário recebe protocolo e prazo.') }}

@endif
{{-- respostas prontas: o operador nao digita do zero e o tom fica igual --}} @if ($respostasProntas->count())
@foreach ($respostasProntas as $r) @endforeach
@endif {{ __('IA escrevendo...') }}
@else
{{ __('Encerrado em') }} {{ $ticket->closed_at?->format('d/m/Y H:i') }} · {{ $ticket->desfecho_label }} · {{ __('fila') }} {{ \App\Models\SupportTicket::duracao($ticket->metricas()['filaSeg']) }} @if ($ticket->metricas()['atendimentoSeg'] !== null) · {{ __('com atendente') }} {{ \App\Models\SupportTicket::duracao($ticket->metricas()['atendimentoSeg']) }} @endif
@endif @endif
{{-- ==================== dados do contato (painel opcional) ==================== --}} @if ($ticket)

{{ __('Dados do contato') }}

@php $met = $ticket->metricas(); @endphp

{{ __('Linha do tempo') }}

{{ __('Iniciado em') }}{{ $met['inicio']->format('d/m/Y H:i') }}

{{ __('Tempo em fila') }} {{ \App\Models\SupportTicket::duracao($met['filaSeg']) }}{{ $met['filaCorrendo'] ? ' ⏱' : '' }}

{{ __('Com atendente') }} {{ \App\Models\SupportTicket::duracao($met['atendimentoSeg']) }}{{ $met['atendimentoCorrendo'] ? ' ⏱' : '' }}

{{ __('1ª resposta (IA conta)') }}{{ \App\Models\SupportTicket::duracao($met['primeiraRespostaSeg']) }}

{{ __('Duração total') }}{{ \App\Models\SupportTicket::duracao($met['totalSeg']) }}

@if ($ticket->closed_at)

{{ __('Desfecho') }} {{ $ticket->desfecho_label }}

@endif
@if ($ticket->requester)

{{ __('Quem é') }}

{{ $ticket->requester->name }}

{{ $ticket->requester->email }}

{{ $ticket->requester->phone }}

{{ __('Ficha completa') }}
@endif @if ($ticket->subject_type === \App\Models\Order::class && $ticket->subject)

{{ __('Corrida') }}

#{{ $ticket->subject->code }}
@endif {{-- corridas do solicitante com acao de estorno: resolver sem sair da conversa --}}

{{ __('Últimas corridas') }}

@forelse ($corridas as $c) @php $pagoAsaas = \Illuminate\Support\Str::startsWith((string) optional($c->payment_method)->slug, 'asaas') && optional($c->payment)->status === 'successful'; $saldo = (float) ($c->payable_total ?: $c->total) - (float) $c->ja_estornado; @endphp
#{{ $c->code }} {{ $c->created_at->format('d/m H:i') }}
{{ currencyFormat((float) ($c->payable_total ?: $c->total)) }} · {{ optional($c->payment_method)->name ?: __('sem meio') }} @if ($c->ja_estornado > 0) {{ __('estornado') }} {{ number_format((float) $c->ja_estornado, 2, ',', '.') }} @endif
@if ($pagoAsaas && $saldo > 0 && $podeEstornar) @elseif (!$pagoAsaas)

{{ __('Pagamento em dinheiro ou não confirmado: estorno é acerto direto.') }}

@endif
@empty

{{ __('Nenhuma corrida.') }}

@endforelse

{{ __('Atendimentos anteriores') }}

@forelse ($historico as $h) @empty

{{ __('Primeiro contato.') }}

@endforelse
@endif
@if ($formEstorno) {{ __('O dinheiro volta para o mesmo cartão ou chave PIX que pagou a corrida. Seu limite por estorno é') }} {{ currencyFormat($limiteEstorno) }}{{ __('; acima disso, precisa de um administrador.') }}
@endif