<?php
require_once 'conexao.php';

echo "<h2>🔍 Debug Detalhado - Liberar Veículo</h2>";

// Simular exatamente o que a API faz
$veiculoId = 1;
$rotaId = 0;

echo "<h3>Parâmetros:</h3>";
echo "veiculo_id: $veiculoId<br>";
echo "rota_id: $rotaId<br>";

try {
    echo "<h3>1. Verificando se o veículo existe:</h3>";
    
    $stmt = $pdo->prepare("
        SELECT v.id, v.modelo, v.placa, sr.id as rota_id, sr.titulo
        FROM veiculos v
        LEFT JOIN solicitacoes_rotas sr ON v.id = sr.veiculo_id 
        AND sr.status IN ('em_andamento', 'em_execucao')
        WHERE v.id = ?
    ");
    $stmt->execute([$veiculoId]);
    $veiculo = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$veiculo) {
        echo "❌ Veículo não encontrado<br>";
        return;
    }
    
    echo "✅ Veículo encontrado:<br>";
    echo "- ID: {$veiculo['id']}<br>";
    echo "- Modelo: {$veiculo['modelo']}<br>";
    echo "- Placa: {$veiculo['placa']}<br>";
    echo "- Rota ID: " . ($veiculo['rota_id'] ?: 'Nenhuma') . "<br>";
    echo "- Título da rota: " . ($veiculo['titulo'] ?: 'N/A') . "<br>";
    
    echo "<h3>2. Verificando se veículo está em uso em outra rota:</h3>";
    
    if ($veiculo['rota_id'] && $veiculo['rota_id'] != $rotaId) {
        echo "❌ Veículo está sendo usado em outra rota<br>";
        return;
    } else {
        echo "✅ Veículo não está em uso em outra rota<br>";
    }
    
    echo "<h3>3. Tentando atualizar status do veículo:</h3>";
    
    $sqlUpdate = "UPDATE veiculos SET status = 'ativo', updated_at = NOW() WHERE id = ?";
    echo "SQL: $sqlUpdate<br>";
    
    $stmtUpdate = $pdo->prepare($sqlUpdate);
    $success = $stmtUpdate->execute([$veiculoId]);
    $rowCount = $stmtUpdate->rowCount();
    
    echo "Sucesso: " . ($success ? 'Sim' : 'Não') . "<br>";
    echo "Linhas afetadas: $rowCount<br>";
    
    if ($success) {
        echo "✅ Veículo atualizado com sucesso!<br>";
        
        // Verificar status após atualização
        $sqlCheck = "SELECT id, modelo, placa, status FROM veiculos WHERE id = ?";
        $stmtCheck = $pdo->prepare($sqlCheck);
        $stmtCheck->execute([$veiculoId]);
        $veiculoAtualizado = $stmtCheck->fetch(PDO::FETCH_ASSOC);
        
        echo "Status após atualização: <strong>{$veiculoAtualizado['status']}</strong><br>";
        
        // Simular resposta da API
        $resposta = [
            'sucesso' => true,
            'dados' => [
                'veiculo_id' => $veiculoId,
                'modelo' => $veiculo['modelo'],
                'placa' => $veiculo['placa'],
                'status' => 'ativo'
            ],
            'mensagem' => 'Veículo liberado com sucesso'
        ];
        
        echo "<h3>4. Resposta da API:</h3>";
        echo "<pre>" . json_encode($resposta, JSON_PRETTY_PRINT) . "</pre>";
        
    } else {
        echo "❌ Falha ao atualizar veículo<br>";
        
        // Verificar se há erro específico
        $errorInfo = $stmtUpdate->errorInfo();
        echo "Erro SQL: " . json_encode($errorInfo) . "<br>";
    }
    
} catch (Exception $e) {
    echo "❌ Exceção: " . $e->getMessage() . "<br>";
    echo "Arquivo: " . $e->getFile() . "<br>";
    echo "Linha: " . $e->getLine() . "<br>";
    echo "Trace: <pre>" . $e->getTraceAsString() . "</pre>";
}
?>
