<?php
// Script para destravar veículos em_uso sem viagem ativa
header('Content-Type: text/plain; charset=utf-8');

try {
    // Conectar com as credenciais corretas
    $pdo = new PDO(
        "mysql:host=localhost;dbname=pinheir3_controle_frotasV1.1;charset=utf8mb4",
        "pinheir3_admin",
        "080880Gelboy",
        [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
    );
    
    echo "🔓 DESTRAVANDO VEÍCULOS SEM VIAGEM ATIVA\n";
    echo "=====================================\n\n";
    
    // 1. IDENTIFICAR VEÍCULOS TRAVADOS
    echo "1️⃣ IDENTIFICANDO VEÍCULOS TRAVADOS:\n";
    $stmt = $pdo->query("
        SELECT 
            v.id, v.modelo, v.placa, v.status,
            COUNT(vi.id) as viagens_ativas
        FROM veiculos v
        LEFT JOIN viagens vi ON v.id = vi.veiculo_id AND vi.data_fim IS NULL
        WHERE v.status = 'em_uso'
        GROUP BY v.id
        HAVING viagens_ativas = 0
    ");
    $veiculosTravados = $stmt->fetchAll();
    
    if (empty($veiculosTravados)) {
        echo "✅ Nenhum veículo travado encontrado!\n";
        echo "Todos os veículos 'em_uso' têm viagens ativas correspondentes.\n\n";
    } else {
        echo "⚠️ Encontrados " . count($veiculosTravados) . " veículo(s) travado(s):\n";
        foreach ($veiculosTravados as $veiculo) {
            echo "   • ID {$veiculo['id']}: {$veiculo['modelo']} ({$veiculo['placa']}) - Status: {$veiculo['status']}\n";
        }
        echo "\n";
        
        // 2. CONFIRMAR LIBERAÇÃO
        echo "2️⃣ LIBERANDO VEÍCULOS TRAVADOS:\n";
        
        // Liberar veículos sem viagem ativa
        $stmt = $pdo->prepare("
            UPDATE veiculos 
            SET status = 'ativo', updated_at = NOW()
            WHERE status = 'em_uso' 
            AND id NOT IN (
                SELECT DISTINCT veiculo_id 
                FROM viagens 
                WHERE data_fim IS NULL 
                AND veiculo_id IS NOT NULL
            )
        ");
        $stmt->execute();
        $liberados = $stmt->rowCount();
        
        if ($liberados > 0) {
            echo "✅ $liberados veículo(s) liberado(s) com sucesso!\n";
            echo "Status alterado de 'em_uso' para 'ativo'\n\n";
        } else {
            echo "ℹ️ Nenhum veículo foi liberado (talvez já estivessem corretos)\n\n";
        }
    }
    
    // 3. VERIFICAR STATUS FINAL
    echo "3️⃣ STATUS FINAL DOS VEÍCULOS:\n";
    $stmt = $pdo->query("
        SELECT 
            status,
            COUNT(*) as total
        FROM veiculos 
        GROUP BY status
        ORDER BY total DESC
    ");
    $stats = $stmt->fetchAll();
    
    echo "Distribuição por status:\n";
    foreach ($stats as $stat) {
        $status = $stat['status'] ?: 'NULL';
        echo "   • $status: {$stat['total']} veículo(s)\n";
    }
    
    // 4. VERIFICAR VEÍCULOS DISPONÍVEIS PARA O APP
    echo "\n4️⃣ VEÍCULOS DISPONÍVEIS PARA O APP:\n";
    $stmt = $pdo->query("
        SELECT 
            id, modelo, placa, status
        FROM veiculos 
        WHERE status IN ('ativo', 'disponivel') OR status IS NULL
        ORDER BY modelo
    ");
    $disponiveis = $stmt->fetchAll();
    
    if (!empty($disponiveis)) {
        echo "✅ " . count($disponiveis) . " veículo(s) disponível(is) para nova viagem:\n";
        foreach ($disponiveis as $veiculo) {
            $status = $veiculo['status'] ?: 'NULL';
            echo "   • {$veiculo['modelo']} ({$veiculo['placa']}) - Status: $status\n";
        }
    } else {
        echo "❌ Nenhum veículo disponível para nova viagem!\n";
    }
    
    echo "\n✅ DESTRAVAMENTO CONCLUÍDO!\n";
    echo "\n🚀 PRÓXIMOS PASSOS:\n";
    echo "   1. Teste o app Android\n";
    echo "   2. Verifique se os veículos aparecem na lista\n";
    echo "   3. Teste iniciar uma nova viagem\n";
    echo "   4. Confirme se a liberação funciona corretamente\n";
    
} catch (Exception $e) {
    echo "❌ ERRO: " . $e->getMessage() . "\n";
    echo "\n🔧 Verificações:\n";
    echo "   - Servidor está acessível?\n";
    echo "   - Credenciais do banco estão corretas?\n";
 
