<?php
declare(strict_types=1);

require_once __DIR__ . '/_bootstrap.php';
admin_require_login();

$id = (int) ($_GET['id'] ?? 0);
$motorista = admin_buscar_motorista_por_id($id);
if (!$motorista) {
    admin_flash('Motorista não encontrado.', 'error');
    header('Location: cadastros_motoristas.php');
    exit;
}

$resumo = admin_usuario_resumo_corridas($id, 'motorista');
$metricasCorridas = admin_motorista_metricas_corridas($id);
$corridas = admin_usuario_corridas($id, 'motorista');
$ganhos = admin_usuario_ganhos_diarios($id);
$sessoes = admin_usuario_sessoes_online($id);
$veiculos = admin_usuario_veiculos($id);
$feedbacks = admin_usuario_feedbacks($id);
$feedbackResumo = admin_usuario_feedback_resumo($id);
$foto = (string) ($motorista['foto_url'] ?: $motorista['selfie_url'] ?: '');
$totalOnline = 0;
foreach ($sessoes as $sessao) {
    $totalOnline += (int) ($sessao['duracao_segundos'] ?? 0);
}
$flash = admin_flash();
?>
<!doctype html>
<html lang="pt-BR">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Bulo Admin - Motorista</title>
  <link rel="stylesheet" href="assets/admin.css?v=20260626-1">
</head>
<body>
  <?php admin_sidebar('motoristas'); ?>

  <main class="page">
    <?php if ($flash): ?><div class="flash <?= e($flash['type']) ?>"><?= e($flash['message']) ?></div><?php endif; ?>

    <section class="panel profile-hero">
      <div class="profile-photo">
        <?php if ($foto !== ''): ?>
          <img src="../<?= e($foto) ?>" alt="Foto de <?= e((string) $motorista['nome']) ?>">
        <?php else: ?>
          <span><?= e(strtoupper(substr((string) $motorista['nome'], 0, 1))) ?></span>
        <?php endif; ?>
      </div>
      <div class="profile-main">
        <h1><?= e((string) $motorista['nome']) ?></h1>
        <p><?= e((string) $motorista['email']) ?> | <?= e((string) $motorista['celular']) ?></p>
        <div class="status-stack">
          <span class="badge <?= admin_status_class((string) ($motorista['status_verificacao_operacional'] ?? $motorista['status_verificacao'])) ?>">
            <?= e((string) ($motorista['status_verificacao_operacional'] ?? $motorista['status_verificacao'])) ?>
          </span>
          <span class="badge <?= admin_disponibilidade_class((string) $motorista['disponivel']) ?>">
            <?= e((string) $motorista['disponivel']) === 'sim' ? 'online' : 'offline' ?>
          </span>
          <span class="badge badge-muted">
            <?= $resumo['avaliacao_media'] === null ? 'sem avaliacao' : e(number_format((float) $resumo['avaliacao_media'], 2, ',', '.')) . ' estrela' ?>
          </span>
        </div>
      </div>
      <div class="profile-actions">
        <a class="button secondary" href="cadastros_motoristas.php">Voltar</a>
        <a class="button" href="editar_motorista.php?id=<?= e((string) $motorista['id']) ?>">Editar dados</a>
      </div>
    </section>

    <section class="metric-grid">
      <div class="stat-card stat-blue">
        <div><strong><?= e((string) $resumo['finalizadas']) ?></strong><span>Corridas finalizadas</span><small>Total: <?= e((string) $resumo['total_corridas']) ?></small></div>
      </div>
      <div class="stat-card stat-green">
        <div><strong><?= e(admin_money((float) $resumo['valor_total'])) ?></strong><span>Ganhos brutos</span><small>Dinheiro + online</small></div>
      </div>
      <div class="stat-card stat-blue">
        <div><strong><?= e(number_format((float) $metricasCorridas['taxa_aceitacao'], 2, ',', '.')) ?>%</strong><span>Taxa de aceitação</span><small>Últimos <?= e((string) $metricasCorridas['periodo_dias']) ?> dias: <?= e((string) $metricasCorridas['chamadas_aceitas']) ?> de <?= e((string) $metricasCorridas['chamadas_contabilizadas']) ?> chamadas</small></div>
      </div>
      <div class="stat-card stat-orange">
        <div><strong><?= e(number_format((float) $metricasCorridas['taxa_cancelamento'], 2, ',', '.')) ?>%</strong><span>Cancelamento do motorista</span><small>Últimos <?= e((string) $metricasCorridas['periodo_dias']) ?> dias: <?= e((string) $metricasCorridas['corridas_canceladas_motorista']) ?> de <?= e((string) $metricasCorridas['corridas_encerradas_motorista']) ?> encerradas</small></div>
      </div>
      <div class="stat-card stat-red">
        <div><strong>- <?= e(admin_money((float) $resumo['saldo_motorista'])) ?></strong><span>Saldo negativo</span><small>15% das corridas em dinheiro</small></div>
      </div>
      <div class="stat-card stat-gold">
        <div><strong><?= e(admin_horas($totalOnline)) ?></strong><span>Horas online</span><small>Últimas sessoes registradas</small></div>
      </div>
      <div class="stat-card stat-orange">
        <div><strong><?= e((string) $feedbackResumo['elogios']) ?>/<?= e((string) $feedbackResumo['reclamacoes']) ?></strong><span>Elogios/Reclamações</span><small><?= e((string) $feedbackResumo['observacoes']) ?> observacoes</small></div>
      </div>
    </section>

    <section class="panel">
      <div class="panel-header"><h1>Métricas de corridas</h1><p>Dados dos últimos <?= e((string) $metricasCorridas['periodo_dias']) ?> dias, usados para acompanhar comportamento de aceite e cancelamento do motorista.</p></div>
      <div class="panel-body info-grid">
        <div><span>Chamadas recebidas</span><strong><?= e((string) $metricasCorridas['chamadas_recebidas']) ?></strong></div>
        <div><span>Chamadas aceitas</span><strong><?= e((string) $metricasCorridas['chamadas_aceitas']) ?></strong></div>
        <div><span>Chamadas recusadas</span><strong><?= e((string) $metricasCorridas['chamadas_recusadas']) ?></strong></div>
        <div><span>Chamadas expiradas</span><strong><?= e((string) $metricasCorridas['chamadas_expiradas']) ?></strong></div>
        <div><span>Chamadas sem decisão do motorista</span><strong><?= e((string) $metricasCorridas['chamadas_canceladas_sistema']) ?></strong></div>
        <div><span>Chamadas pendentes</span><strong><?= e((string) $metricasCorridas['chamadas_pendentes']) ?></strong></div>
        <div><span>Corridas finalizadas</span><strong><?= e((string) $metricasCorridas['corridas_finalizadas']) ?></strong></div>
        <div><span>Canceladas pelo motorista</span><strong><?= e((string) $metricasCorridas['corridas_canceladas_motorista']) ?></strong></div>
      </div>
    </section>

    <section class="detail-grid">
      <div class="panel">
        <div class="panel-header"><h1>Dados cadastrais</h1></div>
        <div class="panel-body info-grid">
          <div><span>Nome</span><strong><?= e((string) $motorista['nome']) ?></strong></div>
          <div><span>CPF</span><strong><?= e((string) $motorista['cpf']) ?></strong></div>
          <div><span>E-mail</span><strong><?= e((string) $motorista['email']) ?></strong></div>
          <div><span>Celular</span><strong><?= e((string) $motorista['celular']) ?></strong></div>
          <div><span>Código de indicação</span><strong><?= e((string) $motorista['codigoind']) ?></strong></div>
          <div><span>Indicado por</span><strong><?= e((string) ($motorista['indicador_codigo'] ?? '--')) ?></strong></div>
          <div><span>Endereço</span><strong><?= e(trim((string) ($motorista['endereco_logradouro'] ?? '') . ', ' . (string) ($motorista['endereco_numero'] ?? ''), ', ')) ?></strong></div>
          <div><span>Cidade</span><strong><?= e((string) ($motorista['endereco_cidade'] ?? '--')) ?>/<?= e((string) ($motorista['endereco_uf'] ?? '--')) ?></strong></div>
          <div><span>Criado em</span><strong><?= e((string) $motorista['criado_em']) ?></strong></div>
          <div><span>Atualizado em</span><strong><?= e((string) $motorista['atualizado_em']) ?></strong></div>
        </div>
      </div>

      <div class="panel">
        <div class="panel-header"><h1>Documentos</h1></div>
        <div class="panel-body document-list">
          <?php foreach ([
            ['CNH', 'cnh_status', 'cnh_url', 'cnh_vencimento', 'cnh_aprovado_por', 'cnh_aprovado_em'],
            ['Foto de rosto', 'selfie_status', 'selfie_url', null, 'selfie_aprovado_por', 'selfie_aprovado_em'],
            ['Documento do veiculo', 'documento_veiculo_status_real', 'documento_veiculo_url', 'documento_veiculo_vencimento', 'documento_veiculo_aprovado_por', 'documento_veiculo_aprovado_em'],
          ] as $doc): ?>
            <div class="document-row">
              <div>
                <strong><?= e($doc[0]) ?></strong><br>
                <span class="badge <?= admin_status_class((string) ($motorista[$doc[1]] ?? $motorista['documento_veiculo_status'] ?? 'pendente')) ?>">
                  <?= e((string) ($motorista[$doc[1]] ?? $motorista['documento_veiculo_status'] ?? 'pendente')) ?>
                </span>
                <?php if ($doc[3] && !empty($motorista[$doc[3]])): ?><small>Vence em <?= e((string) $motorista[$doc[3]]) ?></small><?php endif; ?>
                <?php if (!empty($motorista[$doc[4]])): ?><small>Aprovado por <?= e((string) $motorista[$doc[4]]) ?> em <?= e((string) ($motorista[$doc[5]] ?? '')) ?></small><?php endif; ?>
              </div>
              <?php if (!empty($motorista[$doc[2]])): ?><a class="button secondary" target="_blank" href="../<?= e((string) $motorista[$doc[2]]) ?>">Abrir</a><?php endif; ?>
            </div>
          <?php endforeach; ?>
        </div>
      </div>
    </section>

    <section class="panel">
      <div class="panel-header"><h1>Veículos</h1><p>O selo ativo indica o carro atualmente escolhido pelo motorista.</p></div>
      <div class="panel-body table-wrap">
        <table>
          <thead><tr><th>Veículo</th><th>Status</th><th>Documento</th><th>Vencimento</th><th>Criado em</th></tr></thead>
          <tbody>
            <?php foreach ($veiculos as $v): ?>
              <tr>
                <td>
                  <strong><?= e((string) $v['marca']) ?> <?= e((string) $v['modelo']) ?></strong>
                  <?php if ((int) $motorista['id_veiculo_ativo'] === (int) $v['id']): ?><span class="badge badge-ok">Ativo</span><?php endif; ?><br>
                  <?= e((string) $v['ano_fabricacao']) ?>/<?= e((string) $v['ano_modelo']) ?> | <?= e((string) $v['cor']) ?> | Placa <?= e((string) ($v['placa'] ?? '--')) ?>
                </td>
                <td><span class="badge <?= admin_veiculo_status_class((string) $v['status']) ?>"><?= e((string) $v['status']) ?></span></td>
                <td><?php if (!empty($v['documento_url'])): ?><a class="button secondary" target="_blank" href="../<?= e((string) $v['documento_url']) ?>">Abrir</a><?php endif; ?></td>
                <td><?= e((string) ($v['documento_vencimento'] ?? '--')) ?></td>
                <td><?= e((string) $v['criado_em']) ?></td>
              </tr>
            <?php endforeach; ?>
            <?php if (!$veiculos): ?><tr><td colspan="5">Nenhum veículo cadastrado.</td></tr><?php endif; ?>
          </tbody>
        </table>
      </div>
    </section>

    <section class="detail-grid">
      <div class="panel">
        <div class="panel-header"><h1>Ganhos diarios</h1></div>
        <div class="panel-body table-wrap">
          <table>
            <thead><tr><th>Data</th><th>Corridas</th><th>Valor</th></tr></thead>
            <tbody>
              <?php foreach ($ganhos as $g): ?><tr><td><?= e((string) $g['data_ref']) ?></td><td><?= e((string) $g['total_corridas']) ?></td><td><?= e(admin_money((float) $g['total_valor'])) ?></td></tr><?php endforeach; ?>
              <?php if (!$ganhos): ?><tr><td colspan="3">Nenhum ganho registrado.</td></tr><?php endif; ?>
            </tbody>
          </table>
        </div>
      </div>
      <div class="panel">
        <div class="panel-header"><h1>Sessoes online</h1></div>
        <div class="panel-body table-wrap">
          <table>
            <thead><tr><th>Inicio</th><th>Fim</th><th>Duração</th></tr></thead>
            <tbody>
              <?php foreach ($sessoes as $s): ?><tr><td><?= e((string) $s['inicio_em']) ?></td><td><?= e((string) ($s['fim_em'] ?? '--')) ?></td><td><?= e(admin_horas($s['duracao_segundos'])) ?></td></tr><?php endforeach; ?>
              <?php if (!$sessoes): ?><tr><td colspan="3">Nenhuma sessao registrada.</td></tr><?php endif; ?>
            </tbody>
          </table>
        </div>
      </div>
    </section>

    <section class="panel">
      <div class="panel-header"><h1>Corridas</h1><p>Últimas corridas relacionadas ao motorista.</p></div>
      <div class="panel-body table-wrap">
        <table>
          <thead><tr><th>ID</th><th>Passageiro</th><th>Status</th><th>Pagamento</th><th>Valor</th><th>Avaliação</th><th>Finalizada em</th></tr></thead>
          <tbody>
            <?php foreach ($corridas as $c): ?>
              <tr>
                <td>#<?= e((string) $c['id']) ?></td>
                <td><?= e((string) $c['passageiro_nome']) ?></td>
                <td><span class="badge <?= admin_status_class((string) ($c['status'] === 'finalizada' ? 'aprovado' : 'pendente')) ?>"><?= e((string) $c['status']) ?></span></td>
                <td><?= e((string) $c['forma_pagamento']) ?></td>
                <td><?= e(admin_money((float) ($c['valor'] ?? 0))) ?></td>
                <td><?= $c['avaliacao_motorista'] === null ? '--' : e((string) $c['avaliacao_motorista']) ?></td>
                <td><?= e((string) ($c['finalizada_em'] ?? $c['criada_em'])) ?></td>
              </tr>
            <?php endforeach; ?>
            <?php if (!$corridas): ?><tr><td colspan="7">Nenhuma corrida registrada.</td></tr><?php endif; ?>
          </tbody>
        </table>
      </div>
    </section>

    <?php include __DIR__ . '/_feedback_panel.php'; ?>
  </main>
</body>
</html>
