<?php
/**
 * Script para reabrir viagem ou criar nova viagem ativa
 * Para que o mapa tenha dados para mostrar
 */

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

// Conectar ao banco
$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,
    ]);
    
    echo "<h2>🔧 Reabrindo Viagem para Teste</h2>";
    
    // Verificar viagem 13 (do arquivo SQL)
    $stmt = $pdo->prepare("SELECT * FROM viagens WHERE id = 13");
    $stmt->execute();
    $viagem13 = $stmt->fetch();
    
    if ($viagem13) {
        echo "<div style='border: 1px solid #ddd; padding: 15px; margin: 10px 0; border-radius: 8px; background: #f8f9fa;'>";
        echo "<h3>📋 Viagem ID 13 Encontrada:</h3>";
        echo "<strong>Cliente:</strong> {$viagem13['cliente']}<br>";
        echo "<strong>Técnico:</strong> {$viagem13['tecnico_id']}<br>";
        echo "<strong>Veículo:</strong> {$viagem13['veiculo_id']}<br>";
        echo "<strong>Data Início:</strong> {$viagem13['data_inicio']}<br>";
        echo "<strong>Data Fim:</strong> " . ($viagem13['data_fim'] ? $viagem13['data_fim'] : 'EM ANDAMENTO') . "<br>";
        echo "<strong>Posição:</strong> {$viagem13['latitude_inicial']}, {$viagem13['longitude_inicial']}<br>";
        if ($viagem13['trajeto']) {
            $trajeto = json_decode($viagem13['trajeto'], true);
            echo "<strong>Pontos no Trajeto:</strong> " . (is_array($trajeto) ? count($trajeto) : 0) . "<br>";
        }
        echo "</div>";
        
        if ($viagem13['data_fim']) {
            echo "<p>⚠️ A viagem está finalizada. Vou reabri-la para o teste...</p>";
            
            // Reabrir a viagem
            $stmt = $pdo->prepare("UPDATE viagens SET data_fim = NULL WHERE id = 13");
            $resultado = $stmt->execute();
            
            if ($resultado) {
                echo "<div style='background: #d4edda; border: 1px solid #c3e6cb; color: #155724; padding: 15px; border-radius: 5px; margin: 10px 0;'>";
                echo "<strong>✅ Viagem 13 reaberta com sucesso!</strong><br>";
                echo "A viagem agora está ativa e aparecerá no mapa de rastreamento.";
                echo "</div>";
            } else {
                echo "<div style='background: #f8d7da; border: 1px solid #f5c6cb; color: #721c24; padding: 10px; border-radius: 5px;'>";
                echo "<strong>❌ Erro ao reabrir viagem</strong>";
                echo "</div>";
            }
        } else {
            echo "<div style='background: #d4edda; border: 1px solid #c3e6cb; color: #155724; padding: 15px; border-radius: 5px; margin: 10px 0;'>";
            echo "<strong>✅ Viagem 13 já está ativa!</strong><br>";
            echo "A viagem já aparece no mapa de rastreamento.";
            echo "</div>";
        }
    } else {
        echo "<p>❌ Viagem ID 13 não encontrada. Vou criar uma nova viagem ativa...</p>";
        
        // Buscar dados para criar nova viagem
        $stmt = $pdo->query("SELECT id, nome FROM motoristas LIMIT 1");
        $motorista = $stmt->fetch();
        
        $stmt = $pdo->query("SELECT id, modelo, placa FROM veiculos LIMIT 1");
        $veiculo = $stmt->fetch();
        
        if (!$motorista) {
            // Criar motorista
            $stmt = $pdo->prepare("INSERT INTO motoristas (nome, matricula, telefone, status) VALUES (?, ?, ?, 'ativo')");
            $stmt->execute(['João Silva', 'MOT001', '(79) 99999-9999']);
            $motorista = ['id' => $pdo->lastInsertId(), 'nome' => 'João Silva'];
            echo "<p>✅ Motorista criado: João Silva</p>";
        }
        
        if (!$veiculo) {
            // Criar veículo
            $stmt = $pdo->prepare("INSERT INTO veiculos (modelo, marca, placa, status) VALUES (?, ?, ?, 'ativo')");
            $stmt->execute(['Civic', 'Honda', 'ABC-1234', 'ativo']);
            $veiculo = ['id' => $pdo->lastInsertId(), 'modelo' => 'Civic', 'placa' => 'ABC-1234'];
            echo "<p>✅ Veículo criado: Honda Civic</p>";
        }
        
        // Criar nova viagem
        $stmt = $pdo->prepare("
            INSERT INTO viagens (
                tecnico_id, veiculo_id, cliente, motivo, km_inicial, 
                data_inicio, latitude_inicial, longitude_inicial,
                endereco_inicial, sincronizado
            ) VALUES (?, ?, ?, ?, ?, NOW(), ?, ?, ?, 1)
        ");
        
        $resultado = $stmt->execute([
            $motorista['id'],
            $veiculo['id'],
            'Cliente Teste Rastreamento',
            'Viagem de teste reaberta para rastreamento',
            100,
            -10.9472, // Latitude de Aracaju
            -37.0731, // Longitude de Aracaju
            'Centro de Aracaju, SE'
        ]);
        
        if ($resultado) {
            $novaViagemId = $pdo->lastInsertId();
            echo "<div style='background: #d4edda; border: 1px solid #c3e6cb; color: #155724; padding: 15px; border-radius: 5px; margin: 10px 0;'>";
            echo "<strong>✅ Nova viagem criada!</strong><br>";
            echo "<strong>ID:</strong> {$novaViagemId}<br>";
            echo "A viagem está ativa e aparecerá no mapa.";
            echo "</div>";
        }
    }
    
    // Verificar viagens ativas agora
    echo "<hr>";
    echo "<h3>📊 Status Atual das Viagens</h3>";
    
    $stmt = $pdo->query("
        SELECT COUNT(*) as total_ativas FROM viagens WHERE data_fim IS NULL
    ");
    $totalAtivas = $stmt->fetch()['total_ativas'];
    
    $stmt = $pdo->query("
        SELECT COUNT(*) as total_finalizadas FROM viagens WHERE data_fim IS NOT NULL
    ");
    $totalFinalizadas = $stmt->fetch()['total_finalizadas'];
    
    echo "<div style='display: flex; gap: 20px; margin: 20px 0;'>";
    echo "<div style='background: #d4edda; border: 1px solid #c3e6cb; color: #155724; padding: 15px; border-radius: 5px; flex: 1;'>";
    echo "<h4>✅ Viagens Ativas</h4>";
    echo "<strong style='font-size: 24px;'>{$totalAtivas}</strong><br>";
    echo "<small>Aparecem no mapa</small>";
    echo "</div>";
    
    echo "<div style='background: #f8d7da; border: 1px solid #f5c6cb; color: #721c24; padding: 15px; border-radius: 5px; flex: 1;'>";
    echo "<h4>🏁 Viagens Finalizadas</h4>";
    echo "<strong style='font-size: 24px;'>{$totalFinalizadas}</strong><br>";
    echo "<small>Não aparecem no mapa</small>";
    echo "</div>";
    echo "</div>";
    
    if ($totalAtivas > 0) {
        // Mostrar viagens ativas
        $stmt = $pdo->query("
            SELECT v.id, v.cliente, v.motivo, v.latitude_inicial, v.longitude_inicial,
                   m.nome as motorista, ve.modelo, ve.placa
            FROM viagens v
            LEFT JOIN motoristas m ON v.tecnico_id = m.id
            LEFT JOIN veiculos ve ON v.veiculo_id = ve.id
            WHERE v.data_fim IS NULL
            ORDER BY v.id DESC
        ");
        $viagensAtivas = $stmt->fetchAll();
        
        echo "<h4>🗺️ Viagens que aparecerão no mapa:</h4>";
        foreach ($viagensAtivas as $v) {
            echo "<div style='border: 1px solid #28a745; padding: 10px; margin: 5px 0; border-radius: 5px; background: #f8fff8;'>";
            echo "<strong>ID:</strong> {$v['id']} | ";
            echo "<strong>Cliente:</strong> {$v['cliente']} | ";
            echo "<strong>Motorista:</strong> {$v['motorista']} | ";
            echo "<strong>Veículo:</strong> {$v['modelo']} - {$v['placa']}<br>";
            echo "<strong>GPS:</strong> {$v['latitude_inicial']}, {$v['longitude_inicial']}";
            echo "</div>";
        }
    }
    
    echo "<hr>";
    echo "<h3>🧪 Testar API de Rastreamento</h3>";
    
    // Testar API
    $apiUrl = 'https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api-simples-v2.php?acao=rastreamento';
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $apiUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    
    if ($httpCode == 200) {
        $data = json_decode($response, true);
        if ($data && $data['sucesso']) {
            echo "<div style='background: #d4edda; border: 1px solid #c3e6cb; color: #155724; padding: 15px; border-radius: 5px;'>";
            echo "<strong>✅ API Funcionando!</strong><br>";
            echo "<strong>Viagens encontradas:</strong> " . count($data['dados']) . "<br>";
            if (!empty($data['dados'])) {
                $v = $data['dados'][0];
                echo "<strong>Primeira viagem:</strong> {$v['cliente']} (ID: {$v['id']})<br>";
                echo "<strong>Posição atual:</strong> {$v['posicao_atual']['latitude']}, {$v['posicao_atual']['longitude']}";
            }
            echo "</div>";
        } else {
            echo "<div style='background: #f8d7da; border: 1px solid #f5c6cb; color: #721c24; padding: 10px; border-radius: 5px;'>";
            echo "<strong>❌ Erro na API:</strong> " . ($data['mensagem'] ?? 'Erro desconhecido');
            echo "</div>";
        }
    } else {
        echo "<div style='background: #f8d7da; border: 1px solid #f5c6cb; color: #721c24; padding: 10px; border-radius: 5px;'>";
        echo "<strong>❌ Erro HTTP {$httpCode}</strong>";
        echo "</div>";
    }
    
    echo "<hr>";
    echo "<h3>🎯 Próximos Passos</h3>";
    echo "<div style='display: flex; gap: 10px; flex-wrap: wrap; margin: 20px 0;'>";
    
    echo "<a href='https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/admin/dashboard.html' target='_blank' style='background: #007bff; color: white; padding: 15px 25px; text-decoration: none; border-radius: 5px; display: inline-block;'>🗺️ Ver Mapa no Dashboard</a>";
    
    echo "<a href='https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/teste-android-gps.php' target='_blank' style='background: #28a745; color: white; padding: 15px 25px; text-decoration: none; border-radius: 5px; display: inline-block;'>📱 Simular GPS Android</a>";
    
    echo "</div>";
    
    echo "<div style='background: #e2e3e5; border: 1px solid #d6d8db; padding: 15px; border-radius: 5px; margin: 20px 0;'>";
    echo "<strong>💡 Lembre-se:</strong><br>";
    echo "• O mapa só mostra viagens <strong>ativas</strong> (data_fim IS NULL)<br>";
    echo "• Quando finalizar uma viagem, ela sai do mapa<br>";
    echo "• Use este script para reabrir viagens para teste<br>";
    echo "• O app Android deve enviar GPS para viagens ativas";
    echo "</div>";
    
} catch (Exception $e) {
    echo "<div style='background: #f8d7da; border: 1px solid #f5c6cb; color: #721c24; padding: 15px; border-radius: 5px;'>";
    echo "<strong>❌ Erro de Conexão:</strong><br>";
    echo "Mensagem: " . $e->getMessage() . "<br>";
    echo "Linha: " . $e->getLine() . "<br>";
    echo "Arquivo: " . $e->getFile();
    echo "</div>";
}
?> 
