<?php
header('Content-Type: text/html; charset=utf-8');

echo "<h1>🧪 Teste do Sistema de Gestores</h1>";
echo "<p>Verificando se o gestor consegue ver solicitações e notificações</p>";

try {
    // Conectar ao banco
    $pdo = new PDO('mysql:host=localhost;dbname=pinheir3_controle_frotasV1.1;charset=utf8mb4', 'pinheir3_admin', '080880Gelboy');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    echo "<h2>✅ Conexão com banco estabelecida</h2>";
    
    // 1. Verificar gestores
    echo "<h3>1. Gestores Cadastrados:</h3>";
    $stmt = $pdo->query("SELECT id, nome, usuario, nivel_acesso, status FROM gestores WHERE status = 'ativo'");
    $gestores = $stmt->fetchAll();
    
    if (empty($gestores)) {
        echo "<div style='color: red;'>❌ Nenhum gestor ativo encontrado!</div>";
        exit;
    }
    
    echo "<table border='1' style='border-collapse: collapse; width: 100%; margin-bottom: 20px;'>";
    echo "<tr style='background: #f0f0f0;'>";
    echo "<th>ID</th><th>Nome</th><th>Usuário</th><th>Nível</th><th>Status</th>";
    echo "</tr>";
    
    foreach ($gestores as $gestor) {
        echo "<tr>";
        echo "<td>{$gestor['id']}</td>";
        echo "<td>{$gestor['nome']}</td>";
        echo "<td>{$gestor['usuario']}</td>";
        echo "<td>{$gestor['nivel_acesso']}</td>";
        echo "<td>{$gestor['status']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // 2. Verificar motoristas
    echo "<h3>2. Motoristas Cadastrados:</h3>";
    $stmt = $pdo->query("SELECT id, nome, usuario, matricula, status FROM motoristas WHERE status = 'ativo' LIMIT 5");
    $motoristas = $stmt->fetchAll();
    
    echo "<table border='1' style='border-collapse: collapse; width: 100%; margin-bottom: 20px;'>";
    echo "<tr style='background: #f0f0f0;'>";
    echo "<th>ID</th><th>Nome</th><th>Usuário</th><th>Matrícula</th><th>Status</th>";
    echo "</tr>";
    
    foreach ($motoristas as $motorista) {
        echo "<tr>";
        echo "<td>{$motorista['id']}</td>";
        echo "<td>{$motorista['nome']}</td>";
        echo "<td>{$motorista['usuario']}</td>";
        echo "<td>{$motorista['matricula']}</td>";
        echo "<td>{$motorista['status']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // 3. Verificar solicitações pendentes
    echo "<h3>3. Solicitações Pendentes:</h3>";
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM solicitacoes_viagem WHERE status = 'pendente'");
    $totalPendentes = $stmt->fetch()['total'];
    echo "<p>Total de solicitações pendentes: <strong>$totalPendentes</strong></p>";
    
    if ($totalPendentes > 0) {
        $stmt = $pdo->query("
            SELECT 
                s.*,
                m.nome as tecnico_nome,
                m.matricula as tecnico_matricula,
                v.modelo as veiculo_modelo,
                v.placa as veiculo_placa
            FROM solicitacoes_viagem s
            LEFT JOIN motoristas m ON s.tecnico_id = m.id
            LEFT JOIN veiculos v ON s.veiculo_id = v.id
            WHERE s.status = 'pendente'
            ORDER BY s.data_criacao DESC
            LIMIT 5
        ");
        $solicitacoes = $stmt->fetchAll();
        
        echo "<table border='1' style='border-collapse: collapse; width: 100%; margin-bottom: 20px;'>";
        echo "<tr style='background: #f0f0f0;'>";
        echo "<th>ID</th><th>Técnico</th><th>Cliente</th><th>Motivo</th><th>Veículo</th><th>Data</th>";
        echo "</tr>";
        
        foreach ($solicitacoes as $sol) {
            echo "<tr>";
            echo "<td>{$sol['id']}</td>";
            echo "<td>{$sol['tecnico_nome']} ({$sol['tecnico_matricula']})</td>";
            echo "<td>{$sol['cliente']}</td>";
            echo "<td>" . substr($sol['motivo'], 0, 50) . "...</td>";
            echo "<td>{$sol['veiculo_modelo']} - {$sol['veiculo_placa']}</td>";
            echo "<td>{$sol['data_criacao']}</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
    // 4. Verificar notificações para gestor ID 2
    echo "<h3>4. Notificações para Gestor ID 2:</h3>";
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM notificacoes_push WHERE user_id = '2' AND lida = FALSE");
    $totalNotificacoes = $stmt->fetch()['total'];
    echo "<p>Total de notificações não lidas para gestor ID 2: <strong>$totalNotificacoes</strong></p>";
    
    if ($totalNotificacoes > 0) {
        $stmt = $pdo->query("
            SELECT 
                n.*,
                s.cliente as solicitacao_cliente,
                s.prioridade as solicitacao_prioridade
            FROM notificacoes_push n
            LEFT JOIN solicitacoes_viagem s ON n.solicitacao_id = s.id
            WHERE n.user_id = '2' AND n.lida = FALSE
            ORDER BY n.created_at DESC
            LIMIT 5
        ");
        $notificacoes = $stmt->fetchAll();
        
        echo "<table border='1' style='border-collapse: collapse; width: 100%; margin-bottom: 20px;'>";
        echo "<tr style='background: #f0f0f0;'>";
        echo "<th>ID</th><th>Tipo</th><th>Título</th><th>Mensagem</th><th>Data</th>";
        echo "</tr>";
        
        foreach ($notificacoes as $notif) {
            echo "<tr>";
            echo "<td>{$notif['id']}</td>";
            echo "<td>{$notif['tipo']}</td>";
            echo "<td>{$notif['titulo']}</td>";
            echo "<td>" . substr($notif['mensagem'], 0, 50) . "...</td>";
            echo "<td>{$notif['created_at']}</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
    // 5. Teste da API de gestor
    echo "<h3>5. Teste da API de Gestor:</h3>";
    echo "<div style='background: #f8f9fa; padding: 15px; border-radius: 5px;'>";
    echo "<h4>📱 Para testar no app, use:</h4>";
    echo "<ul>";
    foreach ($gestores as $gestor) {
        echo "<li><strong>{$gestor['nome']}</strong>:<br>";
        echo "   - Usuário: <code>{$gestor['usuario']}</code><br>";
        echo "   - ID: <code>{$gestor['id']}</code><br>";
        echo "   - Nível: <code>{$gestor['nivel_acesso']}</code></li><br>";
    }
    echo "</ul>";
    echo "</div>";
    
    // 6. Instruções para o app
    echo "<h3>6. Instruções para o App:</h3>";
    echo "<div style='background: #e3f2fd; padding: 15px; border-radius: 5px;'>";
    echo "<h4>📱 Como configurar o app para gestores:</h4>";
    echo "<ol>";
    echo "<li><strong>Login:</strong> Use as credenciais do gestor</li>";
    echo "<li><strong>Token:</strong> O app deve enviar o token no header Authorization</li>";
    echo "<li><strong>API:</strong> Use a API /backend-php/api/gestao/gestor-solicitacoes.php</li>";
    echo "<li><strong>Endpoints:</strong>";
    echo "<ul>";
    echo "<li>GET ?acao=solicitacoes - Listar solicitações pendentes</li>";
    echo "<li>GET ?acao=notificacoes - Listar notificações não lidas</li>";
    echo "<li>GET ?acao=contar_notificacoes - Contar notificações</li>";
    echo "<li>POST ?acao=aprovar - Aprovar solicitação</li>";
    echo "<li>POST ?acao=negar - Negar solicitação</li>";
    echo "<li>POST ?acao=marcar_lida - Marcar notificação como lida</li>";
    echo "</ul></li>";
    echo "</ol>";
    echo "</div>";
    
    // 7. Criar dados de teste se necessário
    if ($totalPendentes == 0) {
        echo "<h3>7. Criando dados de teste...</h3>";
        
        // Criar solicitação de teste
        $primeiroMotorista = $motoristas[0];
        $primeiroVeiculo = $pdo->query("SELECT id, modelo, placa FROM veiculos WHERE status = 'ativo' LIMIT 1")->fetch();
        
        if ($primeiroMotorista && $primeiroVeiculo) {
            $sql = "INSERT INTO solicitacoes_viagem (
                tecnico_id, veiculo_id, cliente, motivo, km_inicial,
                latitude_inicial, longitude_inicial, endereco_inicial,
                observacoes, prioridade, status, data_criacao
            ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'pendente', NOW())";
            
            $stmt = $pdo->prepare($sql);
            $stmt->execute([
                $primeiroMotorista['id'],
                $primeiroVeiculo['id'],
                'Empresa Teste Ltda',
                'Manutenção preventiva em equipamentos',
                1000,
                -11.0168,
                -37.0762,
                'Av. Teste, 123 - Aracaju/SE',
                'Solicitação de teste criada automaticamente',
                'normal'
            ]);
            
            $solicitacaoId = $pdo->lastInsertId();
            echo "<p>✅ Solicitação de teste criada com ID: $solicitacaoId</p>";
            
            // Criar notificação de teste
            $sql = "INSERT INTO notificacoes_push (
                user_id, tipo, titulo, mensagem, solicitacao_id, lida, created_at
            ) VALUES (?, 'solicitacao_viagem', ?, ?, ?, FALSE, NOW())";
            
            $stmt = $pdo->prepare($sql);
            $stmt->execute([
                '2', // Gestor ID 2
                '🚗 Nova Solicitação de Viagem',
                'Cliente: Empresa Teste Ltda - Motivo: Manutenção preventiva em equipamentos',
                $solicitacaoId
            ]);
            
            echo "<p>✅ Notificação de teste criada para gestor ID 2</p>";
        }
    }
    
} catch (Exception $e) {
    echo "<div style='color: red;'>❌ Erro: " . $e->getMessage() . "</div>";
}
?> 
