<?php
// Script para corrigir veículos com status NULL via web
header('Content-Type: text/plain; charset=utf-8');

// Configuração do banco (ajustar conforme necessário)
$host = 'localhost';
$dbname = 'pinheiro3_controle_frotas';
$username = 'root';
$password = '';

// Ou usar configuração do sistema se disponível
if (file_exists('config/database.php')) {
    require_once 'config/database.php';
} elseif (file_exists('config.php')) {
    require_once 'config.php';
}

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    echo "🔧 Corrigindo status de veículos...\n\n";
    
    // Verificar veículos com status NULL
    $stmt = $pdo->query("SELECT id, modelo, placa, status FROM veiculos WHERE status IS NULL OR status = ''");
    $veiculosNull = $stmt->fetchAll();
    
    if (empty($veiculosNull)) {
        echo "✅ Todos os veículos já possuem status válido!\n";
    } else {
        echo "📋 Veículos com status NULL encontrados:\n";
        foreach ($veiculosNull as $veiculo) {
            echo "   - ID {$veiculo['id']}: {$veiculo['modelo']} ({$veiculo['placa']}) - Status: " . ($veiculo['status'] ?: 'NULL') . "\n";
        }
        
        // Corrigir status NULL para 'ativo'
        $stmt = $pdo->prepare("UPDATE veiculos SET status = 'ativo' WHERE status IS NULL OR status = ''");
        $stmt->execute();
        $corrigidos = $stmt->rowCount();
        
        echo "\n✅ $corrigidos veículo(s) corrigido(s) para status 'ativo'\n";
    }
    
    // Verificar se há viagens ativas para ajustar status
    echo "\n🔍 Verificando veículos em uso...\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
        GROUP BY v.id
        HAVING viagens_ativas > 0
    ");
    $veiculosEmUso = $stmt->fetchAll();
    
    if (!empty($veiculosEmUso)) {
        echo "📋 Veículos que deveriam estar 'em_uso':\n";
        foreach ($veiculosEmUso as $veiculo) {
            echo "   - ID {$veiculo['id']}: {$veiculo['modelo']} ({$veiculo['placa']}) - {$veiculo['viagens_ativas']} viagem(ns) ativa(s)\n";
        }
        
        // Nota: O status 'em_uso' é calculado dinamicamente no endpoint, não precisa ser alterado no banco
        echo "   (Status 'em_uso' é calculado automaticamente baseado nas viagens ativas)\n";
    } else {
        echo "✅ Nenhum veículo em uso no momento\n";
    }
    
    // Mostrar status final
    echo "\n📊 Status atual dos veículos:\n";
    $stmt = $pdo->query("SELECT status, COUNT(*) as total FROM veiculos GROUP BY status");
    $statusCount = $stmt->fetchAll();
    
    foreach ($statusCount as $status) {
        echo "   - {$status['status']}: {$status['total']} veículo(s)\n";
    }
    
    echo "\n✅ Correção concluída! Sincronize os dados no app.\n";
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "\n";
    echo "\n🔧 Possíveis soluções:\n";
    echo "   - Verifique se o banco de dados está acessível\n";
    echo "   - Confirme as credenciais de conexão\n";
    echo "   - Verifique se a tabela 'veiculos' existe\n";
}
?> 
