<?php
require_once __DIR__ . '/../config/bootstrap.php';

use ControleFrotas\Config\Database;

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

echo "<h1>📊 Verificação de Status das Solicitações e Viagens</h1>";

try {
    $pdo = Database::getConnection();
    
    echo "<h2>📋 Todas as Solicitações</h2>";
    
    $stmt = $pdo->prepare("
        SELECT 
            s.*,
            v.id as viagem_id,
            v.data_fim as viagem_data_fim,
            v.km_final as viagem_km_final
        FROM solicitacoes_viagem s
        LEFT JOIN viagens v ON s.tecnico_id = v.tecnico_id 
            AND s.cliente = v.cliente 
            AND s.motivo = v.motivo
        ORDER BY s.created_at DESC
    ");
    $stmt->execute();
    $solicitacoes = $stmt->fetchAll();
    
    echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
    echo "<tr><th>ID</th><th>Cliente</th><th>Motivo</th><th>Status</th><th>Data Criação</th><th>Viagem ID</th><th>Viagem Finalizada</th><th>KM Final</th></tr>";
    
    foreach ($solicitacoes as $solicitacao) {
        $viagemFinalizada = $solicitacao['viagem_data_fim'] ? 'Sim' : 'Não';
        $statusColor = match($solicitacao['status']) {
            'pendente' => 'orange',
            'aprovada' => 'blue',
            'negada' => 'red',
            'concluída' => 'green',
            default => 'black'
        };
        
        echo "<tr>";
        echo "<td>{$solicitacao['id']}</td>";
        echo "<td>{$solicitacao['cliente']}</td>";
        echo "<td>{$solicitacao['motivo']}</td>";
        echo "<td style='color: $statusColor;'>{$solicitacao['status']}</td>";
        echo "<td>{$solicitacao['created_at']}</td>";
        echo "<td>{$solicitacao['viagem_id']}</td>";
        echo "<td>$viagemFinalizada</td>";
        echo "<td>{$solicitacao['viagem_km_final']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    echo "<h2>🚗 Todas as Viagens</h2>";
    
    $stmt = $pdo->prepare("
        SELECT 
            v.*,
            s.id as solicitacao_id,
            s.status as solicitacao_status
        FROM viagens v
        LEFT JOIN solicitacoes_viagem s ON v.tecnico_id = s.tecnico_id 
            AND v.cliente = s.cliente 
            AND v.motivo = s.motivo
        ORDER BY v.data_inicio DESC
    ");
    $stmt->execute();
    $viagens = $stmt->fetchAll();
    
    echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
    echo "<tr><th>ID</th><th>Cliente</th><th>Motivo</th><th>Data Início</th><th>Data Fim</th><th>KM Final</th><th>Solicitação ID</th><th>Status Solicitação</th></tr>";
    
    foreach ($viagens as $viagem) {
        $statusColor = $viagem['data_fim'] ? 'green' : 'orange';
        $status = $viagem['data_fim'] ? 'Finalizada' : 'Em Andamento';
        
        echo "<tr>";
        echo "<td>{$viagem['id']}</td>";
        echo "<td>{$viagem['cliente']}</td>";
        echo "<td>{$viagem['motivo']}</td>";
        echo "<td>{$viagem['data_inicio']}</td>";
        echo "<td>{$viagem['data_fim']}</td>";
        echo "<td>{$viagem['km_final']}</td>";
        echo "<td>{$viagem['solicitacao_id']}</td>";
        echo "<td style='color: $statusColor;'>$status</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    echo "<h2>📈 Estatísticas</h2>";
    
    // Contar solicitações por status
    $stmt = $pdo->prepare("SELECT status, COUNT(*) as total FROM solicitacoes_viagem GROUP BY status");
    $stmt->execute();
    $statsSolicitacoes = $stmt->fetchAll();
    
    echo "<h3>📋 Solicitações por Status:</h3>";
    echo "<table border='1' style='border-collapse: collapse;'>";
    echo "<tr><th>Status</th><th>Total</th></tr>";
    
    foreach ($statsSolicitacoes as $stat) {
        $cor = match($stat['status']) {
            'pendente' => 'orange',
            'aprovada' => 'blue',
            'negada' => 'red',
            'concluída' => 'green',
            default => 'black'
        };
        
        echo "<tr>";
        echo "<td style='color: $cor;'>{$stat['status']}</td>";
        echo "<td>{$stat['total']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // Contar viagens por status
    $stmt = $pdo->prepare("
        SELECT 
            CASE 
                WHEN data_fim IS NULL THEN 'Em Andamento'
                ELSE 'Finalizada'
            END as status,
            COUNT(*) as total
        FROM viagens 
        GROUP BY 
            CASE 
                WHEN data_fim IS NULL THEN 'Em Andamento'
                ELSE 'Finalizada'
            END
    ");
    $stmt->execute();
    $statsViagens = $stmt->fetchAll();
    
    echo "<h3>🚗 Viagens por Status:</h3>";
    echo "<table border='1' style='border-collapse: collapse;'>";
    echo "<tr><th>Status</th><th>Total</th></tr>";
    
    foreach ($statsViagens as $stat) {
        $cor = $stat['status'] == 'Finalizada' ? 'green' : 'orange';
        
        echo "<tr>";
        echo "<td style='color: $cor;'>{$stat['status']}</td>";
        echo "<td>{$stat['total']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    echo "<h2>🔍 Verificação de Consistência</h2>";
    
    // Verificar solicitações aprovadas sem viagem finalizada
    $stmt = $pdo->prepare("
        SELECT s.*
        FROM solicitacoes_viagem s
        LEFT JOIN viagens v ON s.tecnico_id = v.tecnico_id 
            AND s.cliente = v.cliente 
            AND s.motivo = v.motivo
            AND v.data_fim IS NOT NULL
        WHERE s.status = 'aprovada' AND v.id IS NULL
    ");
    $stmt->execute();
    $inconsistencias = $stmt->fetchAll();
    
    if (!empty($inconsistencias)) {
        echo "<p style='color: orange;'>⚠️ Encontradas " . count($inconsistencias) . " solicitações aprovadas sem viagem finalizada:</p>";
        echo "<ul>";
        foreach ($inconsistencias as $inc) {
            echo "<li>Solicitação ID {$inc['id']}: {$inc['cliente']} - {$inc['motivo']}</li>";
        }
        echo "</ul>";
    } else {
        echo "<p style='color: green;'>✅ Todas as solicitações aprovadas têm viagem finalizada correspondente</p>";
    }
    
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro: " . $e->getMessage() . "</p>";
    echo "<pre>" . $e->getTraceAsString() . "</pre>";
}
?>

<style>
body { font-family: Arial, sans-serif; margin: 20px; }
table { margin: 10px 0; }
th, td { padding: 8px; text-align: left; }
th { background-color: #f2f2f2; }
</style> 
