<?php
include 'config/database.php';

header('Content-Type: text/html; charset=utf-8');
echo "<!DOCTYPE html><html><head><title>Debug Viagem Atual</title></head><body>";
echo "<h2>🔍 DEBUG: Problemas da Viagem Atual</h2>";

try {
    $pdo = conectarBanco();
    
    // 1. BUSCAR ÚLTIMA VIAGEM (ID 151 conforme screenshot)
    echo "<h3>1. ANÁLISE VIAGEM ID 151:</h3>";
    $stmt = $pdo->prepare("
        SELECT 
            v.*,
            ve.tipo as veiculo_tipo_real,
            ve.modelo as veiculo_modelo,
            ve.placa as veiculo_placa
        FROM viagens v
        LEFT JOIN veiculos ve ON v.veiculo_id = ve.id
        WHERE v.id = 151
    ");
    $stmt->execute();
    $viagem = $stmt->fetch();
    
    if (!$viagem) {
        echo "<p>❌ Viagem ID 151 não encontrada!</p>";
        
        // Buscar última viagem
        $stmt = $pdo->prepare("SELECT * FROM viagens ORDER BY id DESC LIMIT 1");
        $stmt->execute();
        $viagem = $stmt->fetch();
        echo "<p>📊 Última viagem encontrada: ID {$viagem['id']}</p>";
    }
    
    echo "<h4>📋 Dados da Viagem:</h4>";
    echo "<table border='1' style='border-collapse: collapse;'>";
    echo "<tr style='background: #f0f0f0;'><th>Campo</th><th>Valor</th><th>Status</th></tr>";
    
    // Campos importantes
    $campos = [
        'id' => 'ID da Viagem',
        'cliente' => 'Cliente',
        'veiculo_id' => 'ID do Veículo',
        'veiculo_tipo_real' => 'Tipo Real do Veículo',
        'veiculo_modelo' => 'Modelo do Veículo',
        'km_inicial' => 'KM Inicial',
        'km_final' => 'KM Final',
        'km_gps_final' => 'KM GPS Final',
        'latitude_inicial' => 'Latitude Inicial',
        'longitude_inicial' => 'Longitude Inicial',
        'latitude_final' => 'Latitude Final',
        'longitude_final' => 'Longitude Final',
        'data_inicio' => 'Data Início',
        'data_fim' => 'Data Fim'
    ];
    
    foreach ($campos as $campo => $nome) {
        $valor = $viagem[$campo] ?? 'N/A';
        $status = '';
        
        if ($campo == 'km_gps_final') {
            $status = ($valor && $valor > 0) ? '✅' : '❌ PROBLEMA!';
        } elseif ($campo == 'veiculo_tipo_real') {
            $status = $valor ? "Tipo: $valor" : '❌ Sem tipo';
        } elseif (in_array($campo, ['latitude_inicial', 'longitude_inicial', 'latitude_final', 'longitude_final'])) {
            $status = $valor ? '✅' : '❌';
        }
        
        echo "<tr>";
        echo "<td><strong>$nome</strong></td>";
        echo "<td>" . ($valor ?: 'NULL') . "</td>";
        echo "<td>$status</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // 2. VERIFICAR CHECKLIST DA VIAGEM
    echo "<h3>2. CHECKLIST DA VIAGEM 151:</h3>";
    $stmt = $pdo->prepare("
        SELECT 
            id, viagem_id, veiculo_id, tipo_veiculo, 
            data_hora, sincronizado
        FROM checklist_veiculo 
        WHERE viagem_id = 151
        ORDER BY id DESC 
        LIMIT 5
    ");
    $stmt->execute();
    $checklists = $stmt->fetchAll();
    
    if ($checklists) {
        echo "<table border='1' style='border-collapse: collapse;'>";
        echo "<tr style='background: #f0f0f0;'><th>ID</th><th>Viagem ID</th><th>Veículo ID</th><th>Tipo Checklist</th><th>Data</th><th>Sync</th></tr>";
        
        foreach ($checklists as $check) {
            $tipoStatus = ($check['tipo_veiculo'] == 'MOTO') ? '❌ SEMPRE MOTO!' : '✅ Correto';
            echo "<tr>";
            echo "<td>{$check['id']}</td>";
            echo "<td>{$check['viagem_id']}</td>";
            echo "<td>{$check['veiculo_id']}</td>";
            echo "<td><strong>{$check['tipo_veiculo']}</strong> $tipoStatus</td>";
            echo "<td>{$check['data_hora']}</td>";
            echo "<td>" . ($check['sincronizado'] ? '✅' : '❌') . "</td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "<p>❌ Nenhum checklist encontrado para viagem 151</p>";
    }
    
    // 3. VERIFICAR FOTOS
    echo "<h3>3. FOTOS DOS CHECKLISTS:</h3>";
    if ($checklists) {
        $checklistIds = array_column($checklists, 'id');
        $idsString = implode(',', $checklistIds);
        
        $stmt = $pdo->query("
            SELECT checklist_id, nome_arquivo, tipo_mime, created_at
            FROM checklist_fotos 
            WHERE checklist_id IN ($idsString)
            ORDER BY created_at DESC
        ");
        $fotos = $stmt->fetchAll();
        
        if ($fotos) {
            echo "<p>✅ Encontradas " . count($fotos) . " fotos</p>";
            echo "<table border='1' style='border-collapse: collapse;'>";
            echo "<tr style='background: #f0f0f0;'><th>Checklist ID</th><th>Arquivo</th><th>Tipo</th><th>Data</th></tr>";
            
            foreach ($fotos as $foto) {
                echo "<tr>";
                echo "<td>{$foto['checklist_id']}</td>";
                echo "<td>{$foto['nome_arquivo']}</td>";
                echo "<td>{$foto['tipo_mime']}</td>";
                echo "<td>{$foto['created_at']}</td>";
                echo "</tr>";
            }
            echo "</table>";
        } else {
            echo "<p>❌ <strong>NENHUMA FOTO ENCONTRADA!</strong> Problema confirmado.</p>";
        }
    }
    
    // 4. CALCULAR KM GPS TEORICO
    if ($viagem['latitude_inicial'] && $viagem['latitude_final']) {
        echo "<h3>4. CÁLCULO TEÓRICO KM GPS:</h3>";
        
        function haversine($lat1, $lon1, $lat2, $lon2) {
            $R = 6371;
            $dLat = deg2rad($lat2 - $lat1);
            $dLon = deg2rad($lon2 - $lon1);
            $a = sin($dLat/2) * sin($dLat/2) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * sin($dLon/2) * sin($dLon/2);
            $c = 2 * atan2(sqrt($a), sqrt(1-$a));
            return $R * $c;
        }
        
        $distancia = haversine(
            $viagem['latitude_inicial'], 
            $viagem['longitude_inicial'],
            $viagem['latitude_final'], 
            $viagem['longitude_final']
        );
        
        echo "<p>📏 <strong>Distância calculada:</strong> " . number_format($distancia, 3) . " km</p>";
        echo "<p>📊 <strong>No banco:</strong> " . ($viagem['km_gps_final'] ?: 'NULL') . "</p>";
        
        if (!$viagem['km_gps_final'] || $viagem['km_gps_final'] == 0) {
            echo "<p style='color: red;'>❌ <strong>CONFIRMADO:</strong> KM GPS deveria ser ~" . number_format($distancia, 3) . " km mas está NULL/0</p>";
        }
    }
    
    // 5. PROBLEMAS IDENTIFICADOS
    echo "<h3>5. RESUMO DOS PROBLEMAS:</h3>";
    echo "<div style='background: #ffeeee; padding: 15px; border-radius: 5px;'>";
    echo "<h4>❌ PROBLEMAS CONFIRMADOS:</h4>";
    echo "<ol>";
    
    if (!$viagem['km_gps_final'] || $viagem['km_gps_final'] == 0) {
        echo "<li><strong>KM GPS = NULL/0</strong> - App não está enviando ou API não está salvando</li>";
    }
    
    if ($checklists) {
        $todosMoto = true;
        foreach ($checklists as $check) {
            if ($check['tipo_veiculo'] != 'MOTO') {
                $todosMoto = false;
                break;
            }
        }
        if ($todosMoto) {
            echo "<li><strong>Checklist sempre MOTO</strong> - Lógica de detecção de tipo não está funcionando</li>";
        }
    }
    
    if (empty($fotos)) {
        echo "<li><strong>Fotos não salvas</strong> - Upload/foreign key com problema</li>";
    }
    
    echo "</ol>";
    echo "</div>";
    
    echo "<h4>✅ PRÓXIMOS PASSOS:</h4>";
    echo "<ol>";
    echo "<li>Verificar logs da API durante finalização de viagem</li>";
    echo "<li>Testar POST manual para endpoint finalizar-viagem</li>";
    echo "<li>Corrigir lógica de tipo de veículo no checklist</li>";
    echo "<li>Verificar upload de fotos</li>";
    echo "</ol>";
    
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro: " . $e->getMessage() . "</p>";
}

echo "</body></html>";
?> 
