<?php
header('Content-Type: text/html; charset=utf-8');
echo "<h2>🧪 Teste APIs de Viagem</h2>";

// 1. Testar API de finalização de viagem
echo "<h3>1. Testar API de Finalização de Viagem</h3>";

if (isset($_POST['testar_finalizar'])) {
    echo "<h4>🧪 Testando finalização de viagem...</h4>";
    
    // Simular dados do Android
    $dadosTeste = [
        'acao' => 'finalizar-viagem',
        'id' => 1,
        'tecnicoId' => '4',
        'veiculoId' => 6,
        'cliente' => 'SESC CENTRO',
        'motivo' => 'teste',
        'km_inicial' => 163693,
        'km_final' => 163696,
        'km_gps_final' => 390, // 390 metros
        'data_inicio' => '2025-08-27 11:21:43',
        'data_fim' => date('Y-m-d H:i:s'),
        'latitude_inicial' => -23.5505,
        'longitude_inicial' => -46.6333,
        'latitude_final' => -23.5506,
        'longitude_final' => -46.6334,
        'endereco_inicial' => 'Rua Teste, 123',
        'endereco_final' => 'Rua Teste, 456',
        'observacoes' => 'Teste de API'
    ];
    
    $jsonData = json_encode($dadosTeste);
    
    // Fazer requisição para a API
    $url = 'https://sistemas.pinheiroempresas.com.br/controlefrotaV1.1/backend-php/api-simples-v2.php';
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Content-Length: ' . strlen($jsonData)
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $error = curl_error($ch);
    curl_close($ch);
    
    echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
    echo "<h5>📤 Dados enviados:</h5>";
    echo "<pre>" . htmlspecialchars($jsonData) . "</pre>";
    echo "<h5>📥 Resposta da API:</h5>";
    echo "<p><strong>HTTP Code:</strong> $httpCode</p>";
    echo "<p><strong>Resposta:</strong></p>";
    echo "<pre>" . htmlspecialchars($response) . "</pre>";
    
    if ($error) {
        echo "<p style='color: red;'><strong>Erro cURL:</strong> $error</p>";
    }
    
    if ($httpCode == 200) {
        echo "<p style='color: green;'>✅ API respondeu com sucesso!</p>";
    } else {
        echo "<p style='color: red;'>❌ API retornou erro HTTP: $httpCode</p>";
    }
    echo "</div>";
}

// 2. Testar API de atualização de posição
echo "<h3>2. Testar API de Atualização de Posição</h3>";

if (isset($_POST['testar_posicao'])) {
    echo "<h4>🧪 Testando atualização de posição...</h4>";
    
    // Simular dados do Android
    $dadosTeste = [
        'acao' => 'atualizar-posicao',
        'viagem_id' => 1,
        'latitude' => -23.5505,
        'longitude' => -46.6333,
        'velocidade' => 25.5,
        'precisao' => 5.2,
        'altitude' => 760,
        'provider' => 'gps',
        'timestamp' => time() * 1000
    ];
    
    $jsonData = json_encode($dadosTeste);
    
    // Fazer requisição para a API
    $url = 'https://sistemas.pinheiroempresas.com.br/controlefrotaV1.1/backend-php/api-simples-v2.php';
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Content-Length: ' . strlen($jsonData)
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $error = curl_error($ch);
    curl_close($ch);
    
    echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
    echo "<h5>📤 Dados enviados:</h5>";
    echo "<pre>" . htmlspecialchars($jsonData) . "</pre>";
    echo "<h5>📥 Resposta da API:</h5>";
    echo "<p><strong>HTTP Code:</strong> $httpCode</p>";
    echo "<p><strong>Resposta:</strong></p>";
    echo "<pre>" . htmlspecialchars($response) . "</pre>";
    
    if ($error) {
        echo "<p style='color: red;'><strong>Erro cURL:</strong> $error</p>";
    }
    
    if ($httpCode == 200) {
        echo "<p style='color: green;'>✅ API respondeu com sucesso!</p>";
    } else {
        echo "<p style='color: red;'>❌ API retornou erro HTTP: $httpCode</p>";
    }
    echo "</div>";
}

// 3. Verificar dados salvos
echo "<h3>3. Verificar Dados Salvos</h3>";

try {
    require_once 'config/database.php';
    $pdo = Database::getConnection();
    
    // Verificar viagem 1
    $stmt = $pdo->prepare("SELECT * FROM viagens WHERE id = ?");
    $stmt->execute([1]);
    $viagem = $stmt->fetch();
    
    if ($viagem) {
        echo "<div style='background: #e8f5e8; padding: 10px; border-radius: 5px; margin: 10px 0;'>";
        echo "<h4>✅ Viagem 1 - Dados Salvos:</h4>";
        echo "<p><strong>KM GPS Final:</strong> {$viagem['km_gps_final']}</p>";
        echo "<p><strong>Latitude Final:</strong> " . ($viagem['latitude_final'] ?? 'NULL') . "</p>";
        echo "<p><strong>Longitude Final:</strong> " . ($viagem['longitude_final'] ?? 'NULL') . "</p>";
        echo "<p><strong>Data Fim:</strong> " . ($viagem['data_fim'] ?? 'NULL') . "</p>";
        echo "</div>";
    }
    
    // Verificar pontos GPS
    $stmt = $pdo->prepare("SELECT COUNT(*) as total FROM rastreamento_tempo_real WHERE viagem_id = ?");
    $stmt->execute([1]);
    $result = $stmt->fetch();
    
    echo "<p><strong>Pontos GPS da viagem 1:</strong> " . $result['total'] . "</p>";
    
} catch (Exception $e) {
    echo "❌ Erro ao verificar dados: " . $e->getMessage() . "<br>";
}

// 4. Formulários de teste
echo "<h3>4. Testes Manuais</h3>";

echo "<form method='post' style='background: #e3f2fd; padding: 15px; border: 1px solid #ddd; border-radius: 5px; margin: 10px 0;'>";
echo "<h4>🔧 Testar Finalização de Viagem:</h4>";
echo "<p>Simula o envio de dados de finalização do Android:</p>";
echo "<button type='submit' name='testar_finalizar' style='background: #007bff; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer;'>🧪 Testar Finalização</button>";
echo "</form>";

echo "<form method='post' style='background: #fff3e0; padding: 15px; border: 1px solid #ddd; border-radius: 5px; margin: 10px 0;'>";
echo "<h4>📍 Testar Atualização de Posição:</h4>";
echo "<p>Simula o envio de dados GPS do Android:</p>";
echo "<button type='submit' name='testar_posicao' style='background: #ff9800; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer;'>🧪 Testar Posição</button>";
echo "</form>";

// 5. Análise do problema
echo "<h3>5. Análise do Problema</h3>";
echo "<div style='background: #ffebee; padding: 15px; border: 1px solid #ddd; border-radius: 5px;'>";
echo "<h4>❌ Possíveis Problemas nas APIs:</h4>";
echo "<ul>";
echo "<li><strong>Conversão de unidades:</strong> App envia 390 metros, API salva 3 km</li>";
echo "<li><strong>Campos não mapeados:</strong> latitude_final/longitude_final não estão sendo salvos</li>";
echo "<li><strong>Validação de dados:</strong> API pode estar rejeitando dados válidos</li>";
echo "<li><strong>Erro de parsing:</strong> JSON não está sendo interpretado corretamente</li>";
echo "<li><strong>Transação de banco:</strong> Dados podem estar sendo perdidos na transação</li>";
echo "</ul>";
echo "</div>";

echo "<h3>✅ Diagnóstico Concluído!</h3>";
echo "<p><strong>Resumo:</strong> O app Android está funcionando, mas as APIs podem não estar salvando os dados corretamente.</p>";
?>
