<?php
// Script para diagnosticar dados faltantes no dashboard
require_once 'config/database.php';

header('Content-Type: application/json');

try {
    $pdo = conectarBanco();
    
    echo "=== DIAGNÓSTICO DADOS FALTANTES ===\n\n";
    
    // 1. Verificar dados das viagens 192 e 193
    echo "1. DADOS DAS VIAGENS 192 E 193:\n";
    $stmt = $pdo->prepare("
        SELECT 
            v.id,
            v.cliente,
            v.tecnico_id,
            v.veiculo_id,
            v.km_inicial,
            v.km_final,
            v.km_gps_final,
            v.data_inicio,
            v.data_fim,
            v.trajeto,
            v.observacoes
        FROM viagens v
        WHERE v.id IN (192, 193)
        ORDER BY v.id
    ");
    $stmt->execute();
    $viagens = $stmt->fetchAll();
    
    foreach ($viagens as $viagem) {
        echo "\n--- VIAGEM ID {$viagem['id']} ---\n";
        echo "- Cliente: '{$viagem['cliente']}'\n";
        echo "- Técnico ID: {$viagem['tecnico_id']}\n";
        echo "- Veículo ID: {$viagem['veiculo_id']}\n";
        echo "- KM Inicial: {$viagem['km_inicial']}\n";
        echo "- KM Final: {$viagem['km_final']}\n";
        echo "- KM GPS Final: " . ($viagem['km_gps_final'] ?? 'NULL') . "\n";
        echo "- Data Início: '{$viagem['data_inicio']}'\n";
        echo "- Data Fim: '{$viagem['data_fim']}'\n";
        echo "- Trajeto: " . (strlen($viagem['trajeto']) > 50 ? 'TEM DADOS' : 'VAZIO/NULL') . "\n";
        echo "- Observações: '{$viagem['observacoes']}'\n";
    }
    
    // 2. Verificar motorista ID 4
    echo "\n2. VERIFICANDO MOTORISTA ID 4:\n";
    $stmt = $pdo->prepare("SELECT id, nome, matricula, status FROM motoristas WHERE id = 4");
    $stmt->execute();
    $motorista = $stmt->fetch();
    
    if ($motorista) {
        echo "- ID: {$motorista['id']}\n";
        echo "- Nome: '{$motorista['nome']}'\n";
        echo "- Matrícula: '{$motorista['matricula']}'\n";
        echo "- Status: '{$motorista['status']}'\n";
    } else {
        echo "❌ Motorista ID 4 não encontrado!\n";
    }
    
    // 3. Verificar veículo ID 1
    echo "\n3. VERIFICANDO VEÍCULO ID 1:\n";
    $stmt = $pdo->prepare("SELECT id, modelo, placa FROM veiculos WHERE id = 1");
    $stmt->execute();
    $veiculo = $stmt->fetch();
    
    if ($veiculo) {
        echo "- ID: {$veiculo['id']}\n";
        echo "- Modelo: '{$veiculo['modelo']}'\n";
        echo "- Placa: '{$veiculo['placa']}'\n";
        echo "- Ano: '{$veiculo['ano']}'\n";
    } else {
        echo "❌ Veículo ID 1 não encontrado!\n";
    }
    
    // 4. Testar JOINs do dashboard
    echo "\n4. TESTANDO JOINS DO DASHBOARD:\n";
    $stmt = $pdo->prepare("
        SELECT 
            v.id,
            v.cliente,
            v.tecnico_id,
            v.veiculo_id,
            COALESCE(m.nome, 'Técnico não identificado') as tecnico_nome,
            COALESCE(ve.modelo, 'Veículo não identificado') as veiculo_nome,
            COALESCE(ve.placa, 'N/A') as veiculo_placa
        FROM viagens v
        LEFT JOIN motoristas m ON (v.tecnico_id = m.id OR v.tecnico_id = m.nome)
        LEFT JOIN veiculos ve ON v.veiculo_id = ve.id
        WHERE v.id IN (192, 193)
        ORDER BY v.id
    ");
    $stmt->execute();
    $joins = $stmt->fetchAll();
    
    foreach ($joins as $join) {
        echo "\n--- VIAGEM ID {$join['id']} ---\n";
        echo "- Cliente: '{$join['cliente']}'\n";
        echo "- Técnico ID: {$join['tecnico_id']}\n";
        echo "- Técnico Nome: '{$join['tecnico_nome']}'\n";
        echo "- Veículo ID: {$join['veiculo_id']}\n";
        echo "- Veículo Nome: '{$join['veiculo_nome']}'\n";
        echo "- Veículo Placa: '{$join['veiculo_placa']}'\n";
    }
    
    // 5. Verificar se há dados de GPS no trajeto
    echo "\n5. VERIFICANDO DADOS DE GPS:\n";
    foreach ($viagens as $viagem) {
        echo "\n--- VIAGEM ID {$viagem['id']} ---\n";
        if (!empty($viagem['trajeto'])) {
            $trajeto = json_decode($viagem['trajeto'], true);
            if ($trajeto && is_array($trajeto)) {
                echo "- Pontos GPS: " . count($trajeto) . "\n";
                if (count($trajeto) > 0) {
                    echo "- Primeiro ponto: " . json_encode($trajeto[0]) . "\n";
                    echo "- Último ponto: " . json_encode($trajeto[count($trajeto)-1]) . "\n";
                }
            } else {
                echo "- Trajeto não é JSON válido\n";
            }
        } else {
            echo "- Trajeto vazio ou NULL\n";
        }
    }
    
    // 6. Calcular tempo real
    echo "\n6. CALCULANDO TEMPO REAL:\n";
    foreach ($viagens as $viagem) {
        if ($viagem['data_inicio'] && $viagem['data_fim']) {
            $inicio = new DateTime($viagem['data_inicio']);
            $fim = new DateTime($viagem['data_fim']);
            $diff = $inicio->diff($fim);
            echo "- Viagem ID {$viagem['id']}: {$diff->format('%H:%I:%S')}\n";
        } else {
            echo "- Viagem ID {$viagem['id']}: Não é possível calcular (datas incompletas)\n";
        }
    }
    
    echo "\n=== FIM DO DIAGNÓSTICO ===\n";
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "\n";
}
?>
