<?php
/**
 * Teste para verificar se a API está retornando dados únicos para o dashboard
 */

// Configurar UTF-8 e CORS
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');

// Conectar ao banco
function conectarBanco() {
    $host = 'localhost';
    $dbname = 'pinheir3_controle_frotasV1.1';
    $username = 'pinheir3_admin';
    $password = '080880Gelboy';
    
    try {
        $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,
        ]);
        return $pdo;
    } catch (PDOException $e) {
        throw new Exception('Erro de conexão: ' . $e->getMessage());
    }
}

try {
    $pdo = conectarBanco();
    
    echo "<h2>🔍 TESTE DE DADOS DO DASHBOARD</h2>";
    
    // 1. Verificar dados brutos das rotas
    echo "<h3>1. Dados brutos das rotas (solicitacoes_rotas):</h3>";
    $stmt = $pdo->query("SELECT id, titulo, motorista_id, veiculo_id, status, data_inicio_real, data_fim_real FROM solicitacoes_rotas ORDER BY id DESC LIMIT 5");
    $rotas = $stmt->fetchAll();
    
    echo "<table border='1' style='border-collapse: collapse;'>";
    echo "<tr><th>ID</th><th>Título</th><th>Motorista ID</th><th>Veículo ID</th><th>Status</th><th>Data Início</th><th>Data Fim</th></tr>";
    foreach ($rotas as $rota) {
        echo "<tr>";
        echo "<td>{$rota['id']}</td>";
        echo "<td>{$rota['titulo']}</td>";
        echo "<td>{$rota['motorista_id']}</td>";
        echo "<td>{$rota['veiculo_id']}</td>";
        echo "<td>{$rota['status']}</td>";
        echo "<td>{$rota['data_inicio_real']}</td>";
        echo "<td>{$rota['data_fim_real']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // 2. Verificar viagens de cada rota
    echo "<h3>2. Viagens de cada rota:</h3>";
    foreach ($rotas as $rota) {
        echo "<h4>Rota ID: {$rota['id']} - {$rota['titulo']}</h4>";
        
        $stmt = $pdo->prepare("
            SELECT v.id, v.odometro_inicial, v.odometro_final, v.distancia_gps, v.data_inicio, v.data_fim
            FROM viagens v 
            INNER JOIN rota_viagens rv ON v.id = rv.viagem_id 
            WHERE rv.solicitacao_rota_id = ?
            ORDER BY v.data_inicio ASC
        ");
        $stmt->execute([$rota['id']]);
        $viagens = $stmt->fetchAll();
        
        if (empty($viagens)) {
            echo "<p>❌ Nenhuma viagem encontrada para esta rota</p>";
            continue;
        }
        
        echo "<table border='1' style='border-collapse: collapse;'>";
        echo "<tr><th>Viagem ID</th><th>Odômetro Inicial</th><th>Odômetro Final</th><th>Distância GPS</th><th>Data Início</th><th>Data Fim</th></tr>";
        foreach ($viagens as $viagem) {
            echo "<tr>";
            echo "<td>{$viagem['id']}</td>";
            echo "<td>{$viagem['odometro_inicial']}</td>";
            echo "<td>{$viagem['odometro_final']}</td>";
            echo "<td>{$viagem['distancia_gps']}</td>";
            echo "<td>{$viagem['data_inicio']}</td>";
            echo "<td>{$viagem['data_fim']}</td>";
            echo "</tr>";
        }
        echo "</table>";
        
        // Calcular odômetros da rota
        $odometroInicial = $viagens[0]['odometro_inicial'] ?? null;
        $odometroFinal = null;
        foreach ($viagens as $viagem) {
            if ($viagem['odometro_final'] && $viagem['odometro_final'] > 0) {
                $odometroFinal = $viagem['odometro_final'];
            }
        }
        
        echo "<p><strong>Odômetro Inicial da Rota:</strong> {$odometroInicial}</p>";
        echo "<p><strong>Odômetro Final da Rota:</strong> {$odometroFinal}</p>";
        if ($odometroInicial && $odometroFinal) {
            $kmManual = $odometroFinal - $odometroInicial;
            echo "<p><strong>KM Manual Calculado:</strong> {$kmManual} km</p>";
        }
        echo "<hr>";
    }
    
    // 3. Testar a consulta da API
    echo "<h3>3. Resultado da consulta da API (dashboard):</h3>";
    
    $stmt = $pdo->query("
        SELECT 
            sr.id as id,
            sr.titulo as cliente,
            sr.descricao as motivo,
            sr.motorista_id as tecnico_id,
            sr.veiculo_id,
            (SELECT v.odometro_inicial FROM viagens v INNER JOIN rota_viagens rv ON v.id = rv.viagem_id WHERE rv.solicitacao_rota_id = sr.id ORDER BY v.data_inicio ASC LIMIT 1) as odometro_inicial,
            (SELECT v.odometro_final FROM viagens v INNER JOIN rota_viagens rv ON v.id = rv.viagem_id WHERE rv.solicitacao_rota_id = sr.id AND v.odometro_final IS NOT NULL ORDER BY v.data_fim DESC LIMIT 1) as odometro_final,
            CASE 
                WHEN sr.data_fim_real IS NOT NULL THEN (
                    SELECT SUM(v.distancia_gps) 
                    FROM viagens v 
                    INNER JOIN rota_viagens rv ON v.id = rv.viagem_id 
                    WHERE rv.solicitacao_rota_id = sr.id 
                    AND v.distancia_gps > 0
                )
                ELSE NULL 
            END as distancia_gps,
            sr.data_inicio_real as data_inicio,
            sr.data_fim_real as data_fim,
            'rota' as tipo,
            sr.id as rota_id
        FROM solicitacoes_rotas sr
        WHERE sr.status IN ('aprovada', 'em_andamento', 'em_execucao', 'concluida')
        ORDER BY sr.id DESC
        LIMIT 5
    ");
    $resultados = $stmt->fetchAll();
    
    echo "<table border='1' style='border-collapse: collapse;'>";
    echo "<tr><th>ID</th><th>Cliente</th><th>Odômetro Inicial</th><th>Odômetro Final</th><th>Distância GPS</th><th>Data Início</th><th>Data Fim</th></tr>";
    foreach ($resultados as $resultado) {
        echo "<tr>";
        echo "<td>{$resultado['id']}</td>";
        echo "<td>{$resultado['cliente']}</td>";
        echo "<td>{$resultado['odometro_inicial']}</td>";
        echo "<td>{$resultado['odometro_final']}</td>";
        echo "<td>{$resultado['distancia_gps']}</td>";
        echo "<td>{$resultado['data_inicio']}</td>";
        echo "<td>{$resultado['data_fim']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro: " . $e->getMessage() . "</p>";
}
?>
