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

echo "<h1>🧪 Teste da API de Gestor com Token</h1>";
echo "<p>Simulando requisições autenticadas para a API de gestor</p>";

// Função para fazer requisição HTTP
function makeRequest($url, $method = 'GET', $data = null, $headers = []) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    
    if ($method === 'POST') {
        curl_setopt($ch, CURLOPT_POST, true);
        if ($data) {
            curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
        }
    }
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    return [
        'http_code' => $httpCode,
        'response' => $response,
        'data' => json_decode($response, true)
    ];
}

// Base URL
$baseUrl = 'https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api/gestao/gestor-solicitacoes.php';

// 1. Teste sem token (deve retornar 401)
echo "<h2>1. Teste sem token (esperado: 401)</h2>";
$result = makeRequest($baseUrl . '?acao=solicitacoes');
echo "<div style='background: #f8f9fa; padding: 10px; border-radius: 5px;'>";
echo "<strong>HTTP Code:</strong> {$result['http_code']}<br>";
echo "<strong>Resposta:</strong> <pre>" . htmlspecialchars($result['response']) . "</pre>";
echo "</div>";

// 2. Criar token simulado para gestor ID 2
echo "<h2>2. Criando token simulado para gestor ID 2</h2>";
$tokenData = [
    'id' => 2,
    'usuario' => 'gestor',
    'nivel' => 'gestor',
    'exp' => time() + 3600
];
$token = base64_encode(json_encode($tokenData));
echo "<p><strong>Token gerado:</strong> <code>" . substr($token, 0, 50) . "...</code></p>";

// 3. Teste com token - Listar solicitações
echo "<h2>3. Teste com token - Listar solicitações pendentes</h2>";
$headers = [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $token
];
$result = makeRequest($baseUrl . '?acao=solicitacoes', 'GET', null, $headers);
echo "<div style='background: #f8f9fa; padding: 10px; border-radius: 5px;'>";
echo "<strong>HTTP Code:</strong> {$result['http_code']}<br>";
echo "<strong>Resposta:</strong> <pre>" . htmlspecialchars($result['response']) . "</pre>";
echo "</div>";

// 4. Teste com token - Listar notificações
echo "<h2>4. Teste com token - Listar notificações</h2>";
$result = makeRequest($baseUrl . '?acao=notificacoes', 'GET', null, $headers);
echo "<div style='background: #f8f9fa; padding: 10px; border-radius: 5px;'>";
echo "<strong>HTTP Code:</strong> {$result['http_code']}<br>";
echo "<strong>Resposta:</strong> <pre>" . htmlspecialchars($result['response']) . "</pre>";
echo "</div>";

// 5. Teste com token - Contar notificações
echo "<h2>5. Teste com token - Contar notificações</h2>";
$result = makeRequest($baseUrl . '?acao=contar_notificacoes', 'GET', null, $headers);
echo "<div style='background: #f8f9fa; padding: 10px; border-radius: 5px;'>";
echo "<strong>HTTP Code:</strong> {$result['http_code']}<br>";
echo "<strong>Resposta:</strong> <pre>" . htmlspecialchars($result['response']) . "</pre>";
echo "</div>";

// 6. Instruções para o app
echo "<h2>6. Instruções para o App Android</h2>";
echo "<div style='background: #e3f2fd; padding: 15px; border-radius: 5px;'>";
echo "<h3>📱 Como configurar o app:</h3>";
echo "<ol>";
echo "<li><strong>Login do Gestor:</strong>";
echo "<ul>";
echo "<li>Usuário: <code>gestor</code></li>";
echo "<li>Senha: (senha do gestor)</li>";
echo "</ul></li>";
echo "<li><strong>Token de Autenticação:</strong> O app deve incluir o token no header:";
echo "<br><code>Authorization: Bearer [TOKEN]</code></li>";
echo "<li><strong>URLs da API:</strong>";
echo "<ul>";
echo "<li>Solicitações: <code>GET {$baseUrl}?acao=solicitacoes</code></li>";
echo "<li>Notificações: <code>GET {$baseUrl}?acao=notificacoes</code></li>";
echo "<li>Contar: <code>GET {$baseUrl}?acao=contar_notificacoes</code></li>";
echo "<li>Aprovar: <code>POST {$baseUrl}?acao=aprovar</code></li>";
echo "<li>Negar: <code>POST {$baseUrl}?acao=negar</code></li>";
echo "</ul></li>";
echo "</ol>";
echo "</div>";

// 7. Exemplo de dados para POST
echo "<h2>7. Exemplo de dados para POST</h2>";
echo "<div style='background: #fff3cd; padding: 15px; border-radius: 5px;'>";
echo "<h4>Para aprovar solicitação:</h4>";
echo "<pre>";
echo json_encode([
    'solicitacao_id' => 4,
    'justificativa' => 'Aprovada pelo gestor'
], JSON_PRETTY_PRINT);
echo "</pre>";

echo "<h4>Para negar solicitação:</h4>";
echo "<pre>";
echo json_encode([
    'solicitacao_id' => 4,
    'justificativa' => 'Motivo da negação'
], JSON_PRETTY_PRINT);
echo "</pre>";

echo "<h4>Para marcar notificação como lida:</h4>";
echo "<pre>";
echo json_encode([
    'notificacao_id' => 2
], JSON_PRETTY_PRINT);
echo "</pre>";
echo "</div>";

echo "<h2>8. Status do Sistema</h2>";
echo "<div style='background: #d4edda; padding: 15px; border-radius: 5px;'>";
echo "<p>✅ <strong>API funcionando corretamente!</strong></p>";
echo "<p>✅ <strong>Autenticação protegida!</strong></p>";
echo "<p>✅ <strong>Pronto para integração com o app!</strong></p>";
echo "</div>";
?> 
