<?php
/**
 * Script para verificar e corrigir o status da rota
 */

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

require_once 'conexao.php';

try {
    $pdo = conectarBanco();
    
    echo "<!DOCTYPE html>";
    echo "<html>";
    echo "<head>";
    echo "<meta charset='utf-8'>";
    echo "<title>Verificar Status Rota</title>";
    echo "<style>";
    echo "body { font-family: Arial, sans-serif; margin: 20px; }";
    echo ".success { color: green; }";
    echo ".error { color: red; }";
    echo ".info { color: blue; }";
    echo ".warning { color: orange; }";
    echo "</style>";
    echo "</head>";
    echo "<body>";
    
    echo "<h1>VERIFICACAO DE STATUS DA ROTA</h1>";
    echo "<hr>";
    
    // Buscar a rota mais recente
    $stmt = $pdo->prepare("SELECT * FROM solicitacoes_rotas ORDER BY id DESC LIMIT 1");
    $stmt->execute();
    $rota = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$rota) {
        echo "<p class='error'>Nenhuma rota encontrada!</p>";
        exit;
    }
    
    echo "<h2>Rota ID: {$rota['id']} - {$rota['titulo']}</h2>";
    
    echo "<h3>Status Atual:</h3>";
    echo "<p><strong>Status no banco:</strong> <span class='info'>{$rota['status']}</span></p>";
    echo "<p><strong>Data inicio real:</strong> " . ($rota['data_inicio_real'] ?: 'NULL') . "</p>";
    echo "<p><strong>Data fim real:</strong> " . ($rota['data_fim_real'] ?: 'NULL') . "</p>";
    echo "<p><strong>Data criacao:</strong> {$rota['created_at']}</p>";
    echo "<p><strong>Data atualizacao:</strong> {$rota['updated_at']}</p>";
    
    echo "<h3>Analise do Status:</h3>";
    
    $statusCorreto = '';
    $problema = '';
    
    if ($rota['data_fim_real']) {
        // Rota finalizada
        $statusCorreto = 'concluida';
        if ($rota['status'] !== 'concluida') {
            $problema = "Status deveria ser 'concluida' mas esta '{$rota['status']}'";
        }
    } elseif ($rota['data_inicio_real']) {
        // Rota em andamento
        $statusCorreto = 'em_execucao';
        if ($rota['status'] !== 'em_execucao' && $rota['status'] !== 'em_andamento') {
            $problema = "Status deveria ser 'em_execucao' mas esta '{$rota['status']}'";
        }
    } else {
        // Rota aprovada mas nao iniciada
        $statusCorreto = 'aprovada';
        if ($rota['status'] !== 'aprovada') {
            $problema = "Status deveria ser 'aprovada' mas esta '{$rota['status']}'";
        }
    }
    
    echo "<p><strong>Status correto:</strong> <span class='success'>{$statusCorreto}</span></p>";
    
    if ($problema) {
        echo "<p class='error'><strong>PROBLEMA:</strong> {$problema}</p>";
        
        echo "<h3>Corrigindo Status...</h3>";
        
        $stmt = $pdo->prepare("UPDATE solicitacoes_rotas SET status = ?, updated_at = NOW() WHERE id = ?");
        $result = $stmt->execute([$statusCorreto, $rota['id']]);
        
        if ($result) {
            echo "<p class='success'>✅ Status corrigido para '{$statusCorreto}'!</p>";
        } else {
            echo "<p class='error'>❌ Erro ao corrigir status!</p>";
        }
    } else {
        echo "<p class='success'>✅ Status esta correto!</p>";
    }
    
    // Verificar viagens da rota
    echo "<h3>Viagens da Rota:</h3>";
    
    $stmt = $pdo->prepare("
        SELECT v.*, rv.ordem_execucao 
        FROM viagens v 
        INNER JOIN rota_viagens rv ON v.id = rv.viagem_id 
        WHERE rv.solicitacao_rota_id = ? 
        ORDER BY rv.ordem_execucao
    ");
    $stmt->execute([$rota['id']]);
    $viagens = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (count($viagens) > 0) {
        echo "<p><strong>Total de viagens:</strong> " . count($viagens) . "</p>";
        
        foreach ($viagens as $viagem) {
            echo "<p>Viagem ID: {$viagem['id']} - Cliente: {$viagem['cliente']} - Status: " . 
                 ($viagem['data_fim'] ? 'Finalizada' : 'Em andamento') . "</p>";
        }
    } else {
        echo "<p class='warning'>⚠️ Nenhuma viagem encontrada para esta rota!</p>";
    }
    
    echo "<hr>";
    echo "<h2>VERIFICACAO CONCLUIDA!</h2>";
    
    echo "</body>";
    echo "</html>";
    
} catch (Exception $e) {
    echo "<p class='error'>ERRO: " . htmlspecialchars($e->getMessage()) . "</p>";
}
?>
