<?php
/**
 * REABRIR VIAGEM PARA TESTE
 * Pegar uma viagem finalizada e reabrir (remover data_fim) para testar rastreamento
 */

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

// 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) {
        die('Erro de conexão: ' . $e->getMessage());
    }
}

echo "<h1>🔄 REABRIR VIAGEM PARA TESTE</h1>";

try {
    $pdo = conectarBanco();
    
    // Verificar se foi solicitado reabrir uma viagem
    if (isset($_GET['reabrir']) && is_numeric($_GET['reabrir'])) {
        $viagemId = (int)$_GET['reabrir'];
        
        echo "<h2>🔓 Reabrindo viagem ID: $viagemId</h2>";
        
        // Verificar se a viagem existe
        $stmt = $pdo->prepare("SELECT * FROM viagens WHERE id = ?");
        $stmt->execute([$viagemId]);
        $viagem = $stmt->fetch();
        
        if (!$viagem) {
            echo "<div style='color: red;'>❌ Viagem não encontrada!</div>";
        } else {
            // Reabrir a viagem (remover data_fim)
            $stmt = $pdo->prepare("UPDATE viagens SET data_fim = NULL WHERE id = ?");
            $resultado = $stmt->execute([$viagemId]);
            
            if ($resultado) {
                echo "<div style='background: #e8f5e8; padding: 15px; border: 1px solid #27ae60; border-radius: 5px;'>";
                echo "✅ <strong>Viagem reaberta com sucesso!</strong><br>";
                echo "Cliente: {$viagem['cliente']}<br>";
                echo "Técnico: {$viagem['tecnico_id']}<br>";
                echo "Agora ela aparecerá no rastreamento como viagem ativa.";
                echo "</div>";
                
                echo "<p><strong>Links para verificar:</strong></p>";
                echo "<ul>";
                echo "<li><a href='teste-rastreamento-completo.php' target='_blank'>🔍 Verificar Rastreamento</a></li>";
                echo "<li><a href='admin/rastreamento.html' target='_blank'>🗺️ Mapa de Rastreamento</a></li>";
                echo "<li><a href='api-simples-v2.php?acao=rastreamento' target='_blank'>📡 API de Rastreamento</a></li>";
                echo "</ul>";
            } else {
                echo "<div style='color: red;'>❌ Erro ao reabrir viagem!</div>";
            }
        }
        
        echo "<hr>";
    }
    
    // Mostrar viagens finalizadas disponíveis para reabrir
    echo "<h2>📋 Viagens Finalizadas (disponíveis para reabrir)</h2>";
    
    $stmt = $pdo->query("
        SELECT 
            v.id,
            v.cliente,
            v.tecnico_id,
            v.data_inicio,
            v.data_fim,
            v.latitude_inicial,
            v.longitude_inicial,
            v.trajeto,
            m.nome as motorista_nome
        FROM viagens v
        LEFT JOIN motoristas m ON v.tecnico_id = m.nome
        WHERE v.data_fim IS NOT NULL
        ORDER BY v.data_inicio DESC
        LIMIT 10
    ");
    $viagensFinalizadas = $stmt->fetchAll();
    
    if (empty($viagensFinalizadas)) {
        echo "<div style='background: #fff3cd; padding: 15px; border: 1px solid #ffeaa7; border-radius: 5px;'>";
        echo "⚠️ Não há viagens finalizadas para reabrir.";
        echo "</div>";
    } else {
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr>";
        echo "<th>ID</th>";
        echo "<th>Cliente</th>";
        echo "<th>Técnico</th>";
        echo "<th>Motorista</th>";
        echo "<th>Início</th>";
        echo "<th>Fim</th>";
        echo "<th>GPS</th>";
        echo "<th>Trajeto</th>";
        echo "<th>Ação</th>";
        echo "</tr>";
        
        foreach ($viagensFinalizadas as $v) {
            $trajeto = $v['trajeto'] ? json_decode($v['trajeto'], true) : [];
            $totalPontos = is_array($trajeto) ? count($trajeto) : 0;
            
            echo "<tr>";
            echo "<td><strong>{$v['id']}</strong></td>";
            echo "<td>{$v['cliente']}</td>";
            echo "<td>{$v['tecnico_id']}</td>";
            echo "<td>" . ($v['motorista_nome'] ?: '<em>Não identificado</em>') . "</td>";
            echo "<td>" . date('d/m H:i', strtotime($v['data_inicio'])) . "</td>";
            echo "<td>" . date('d/m H:i', strtotime($v['data_fim'])) . "</td>";
            echo "<td>{$v['latitude_inicial']}, {$v['longitude_inicial']}</td>";
            echo "<td><strong>{$totalPontos}</strong> pontos</td>";
            echo "<td>";
            echo "<a href='?reabrir={$v['id']}' style='background: #007bff; color: white; padding: 5px 10px; text-decoration: none; border-radius: 3px;'>🔓 Reabrir</a>";
            echo "</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
    // Mostrar viagens ativas atuais
    echo "<h2>🚗 Viagens Atualmente Ativas</h2>";
    
    $stmt = $pdo->query("
        SELECT 
            v.id,
            v.cliente,
            v.tecnico_id,
            v.data_inicio,
            m.nome as motorista_nome
        FROM viagens v
        LEFT JOIN motoristas m ON v.tecnico_id = m.nome
        WHERE v.data_fim IS NULL
        ORDER BY v.data_inicio DESC
    ");
    $viagensAtivas = $stmt->fetchAll();
    
    if (empty($viagensAtivas)) {
        echo "<div style='background: #fff3cd; padding: 15px; border: 1px solid #ffeaa7; border-radius: 5px;'>";
        echo "⚠️ Não há viagens ativas no momento.";
        echo "</div>";
    } else {
        echo "<div style='background: #e8f5e8; padding: 15px; border: 1px solid #27ae60; border-radius: 5px;'>";
        echo "✅ <strong>" . count($viagensAtivas) . " viagem(ns) ativa(s)</strong>";
        echo "</div>";
        
        echo "<table border='1' style='border-collapse: collapse; width: 100%; margin: 10px 0;'>";
        echo "<tr><th>ID</th><th>Cliente</th><th>Técnico</th><th>Motorista</th><th>Início</th></tr>";
        
        foreach ($viagensAtivas as $v) {
            echo "<tr style='background: #e8f5e8;'>";
            echo "<td><strong>{$v['id']}</strong></td>";
            echo "<td>{$v['cliente']}</td>";
            echo "<td>{$v['tecnico_id']}</td>";
            echo "<td>" . ($v['motorista_nome'] ?: '<em>Não identificado</em>') . "</td>";
            echo "<td>" . date('d/m H:i', strtotime($v['data_inicio'])) . "</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
} catch (Exception $e) {
    echo "<div style='color: red; font-weight: bold;'>ERRO: " . $e->getMessage() . "</div>";
}

?>

<style>
table { border-collapse: collapse; width: 100%; margin: 10px 0; }
th, td { border: 1px solid #ccc; padding: 8px; text-align: left; }
th { background: #f0f0f0; font-weight: bold; }
a { text-decoration: none; }
</style> 
