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

echo "<h1>🔍 Debug da API de Abastecimentos</h1>";

// 1. Verificar se o arquivo da API existe
echo "<h2>1️⃣ Verificando Arquivo da API</h2>";
$apiFile = 'api-abastecimentos.php';
if (file_exists($apiFile)) {
    echo "<p style='color: green;'>✅ Arquivo '{$apiFile}' existe</p>";
} else {
    echo "<p style='color: red;'>❌ Arquivo '{$apiFile}' NÃO existe</p>";
    exit;
}

// 2. Testar conexão direta com a API
echo "<h2>2️⃣ Testando Conexão Direta</h2>";

// Testar com file_get_contents primeiro
$testUrl = 'http://localhost/controlefrotaV1.1/backend-php/api-abastecimentos.php?acao=relatorio_geral';
echo "<p><strong>Testando URL:</strong> {$testUrl}</p>";

$context = stream_context_create([
    'http' => [
        'timeout' => 10,
        'ignore_errors' => true
    ]
]);

$response = @file_get_contents($testUrl, false, $context);
if ($response === false) {
    echo "<p style='color: red;'>❌ Erro ao acessar via file_get_contents</p>";
    
    // Verificar se é problema de localhost
    $testUrl2 = 'http://sistemas.pinheiroempresas.com.br/controlefrotaV1.1/backend-php/api-abastecimentos.php?acao=relatorio_geral';
    echo "<p><strong>Testando URL externa:</strong> {$testUrl2}</p>";
    
    $response2 = @file_get_contents($testUrl2, false, $context);
    if ($response2 === false) {
        echo "<p style='color: red;'>❌ Erro também na URL externa</p>";
    } else {
        echo "<p style='color: green;'>✅ URL externa funciona!</p>";
        echo "<p><strong>Resposta:</strong></p>";
        echo "<pre>" . htmlspecialchars($response2) . "</pre>";
    }
} else {
    echo "<p style='color: green;'>✅ Conexão direta funcionando!</p>";
    echo "<p><strong>Resposta:</strong></p>";
    echo "<pre>" . htmlspecialchars($response) . "</pre>";
}

// 3. Testar cURL com configurações mais detalhadas
echo "<h2>3️⃣ Testando cURL Detalhado</h2>";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'api-abastecimentos.php?acao=relatorio_geral');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_VERBOSE, true);

// Capturar informações detalhadas
$verbose = fopen('php://temp', 'w+');
curl_setopt($ch, CURLOPT_STDERR, $verbose);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
$info = curl_getinfo($ch);

curl_close($ch);

echo "<p><strong>Código HTTP:</strong> {$httpCode}</p>";
echo "<p><strong>Erro cURL:</strong> " . ($error ?: 'Nenhum') . "</p>";
echo "<p><strong>URL Efetiva:</strong> {$info['url']}</p>";
echo "<p><strong>Tempo de Resposta:</strong> {$info['total_time']}s</p>";

if ($response) {
    echo "<p style='color: green;'>✅ cURL funcionando!</p>";
    echo "<p><strong>Resposta:</strong></p>";
    echo "<pre>" . htmlspecialchars($response) . "</pre>";
} else {
    echo "<p style='color: red;'>❌ cURL falhou</p>";
    
    // Mostrar informações detalhadas
    rewind($verbose);
    $verboseLog = stream_get_contents($verbose);
    echo "<p><strong>Log Detalhado:</strong></p>";
    echo "<pre>" . htmlspecialchars($verboseLog) . "</pre>";
}

// 4. Testar inclusão direta do arquivo
echo "<h2>4️⃣ Testando Inclusão Direta</h2>";

// Capturar output
ob_start();
try {
    $_GET['acao'] = 'relatorio_geral';
    include 'api-abastecimentos.php';
    $output = ob_get_contents();
    ob_end_clean();
    
    echo "<p style='color: green;'>✅ Inclusão direta funcionando!</p>";
    echo "<p><strong>Output:</strong></p>";
    echo "<pre>" . htmlspecialchars($output) . "</pre>";
} catch (Exception $e) {
    ob_end_clean();
    echo "<p style='color: red;'>❌ Erro na inclusão: " . $e->getMessage() . "</p>";
}

// 5. Verificar configurações do PHP
echo "<h2>5️⃣ Verificando Configurações PHP</h2>";

echo "<p><strong>allow_url_fopen:</strong> " . (ini_get('allow_url_fopen') ? 'ON' : 'OFF') . "</p>";
echo "<p><strong>curl:</strong> " . (function_exists('curl_init') ? 'Disponível' : 'Não disponível') . "</p>";
echo "<p><strong>PDO:</strong> " . (class_exists('PDO') ? 'Disponível' : 'Não disponível') . "</p>";

// 6. Testar conexão com banco
echo "<h2>6️⃣ Testando Conexão com Banco</h2>";

try {
    $host = 'localhost';
    $dbname = 'pinheir3_controle_frotasV1.1';
    $username = 'pinheir3_admin';
    $password = '080880Gelboy';
    
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    ]);
    
    echo "<p style='color: green;'>✅ Conexão com banco OK</p>";
    
    // Testar query simples
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM abastecimentos_rota");
    $result = $stmt->fetch();
    echo "<p><strong>Total de abastecimentos:</strong> {$result['total']}</p>";
    
} catch (PDOException $e) {
    echo "<p style='color: red;'>❌ Erro na conexão com banco: " . $e->getMessage() . "</p>";
}

echo "<hr>";
echo "<h2>🎯 Conclusão</h2>";

if ($httpCode == 0) {
    echo "<p style='color: red;'>❌ Problema identificado: cURL retornando código 0</p>";
    echo "<p><strong>Possíveis causas:</strong></p>";
    echo "<ul>";
    echo "<li>URL incorreta ou arquivo não encontrado</li>";
    echo "<li>Problema de permissões no servidor</li>";
    echo "<li>Configuração incorreta do cURL</li>";
    echo "<li>Servidor não respondendo</li>";
    echo "</ul>";
    
    echo "<p><strong>Solução:</strong> Use a URL completa do servidor:</p>";
    echo "<code>https://sistemas.pinheiroempresas.com.br/controlefrotaV1.1/backend-php/api-abastecimentos.php</code>";
} else {
    echo "<p style='color: green;'>✅ API funcionando corretamente!</p>";
}
?>
