<?php
/**
 * Script para testar estrutura da tabela solicitacoes_viagem
 */

require_once 'config/bootstrap.php';

use ControleFrotas\Config\Database;
use ControleFrotas\Utils\Logger;

try {
    $pdo = Database::getConnection();
    echo "✅ Conexão com banco estabelecida\n";
    
    // Verificar se a tabela existe
    $stmt = $pdo->query("SHOW TABLES LIKE 'solicitacoes_viagem'");
    if ($stmt->rowCount() > 0) {
        echo "✅ Tabela solicitacoes_viagem existe\n";
    } else {
        echo "❌ Tabela solicitacoes_viagem NÃO existe\n";
        exit;
    }
    
    // Verificar estrutura da tabela
    echo "\n📋 Estrutura da tabela solicitacoes_viagem:\n";
    $stmt = $pdo->query("DESCRIBE solicitacoes_viagem");
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo "- {$row['Field']}: {$row['Type']} ({$row['Null']})\n";
    }
    
    // Verificar se há dados
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM solicitacoes_viagem");
    $count = $stmt->fetch(PDO::FETCH_ASSOC)['total'];
    echo "\n📊 Total de solicitações: $count\n";
    
    // Testar inserção
    echo "\n🧪 Testando inserção...\n";
    $sql = "INSERT INTO solicitacoes_viagem (
        tecnico_id, veiculo_id, cliente, motivo, km_inicial,
        latitude_inicial, longitude_inicial, endereco_inicial, cliente_id,
        observacoes, prioridade, gestor_id, status, data_criacao
    ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'pendente', NOW())";
    
    $stmt = $pdo->prepare($sql);
    $result = $stmt->execute([
        '4', // tecnico_id
        6,   // veiculo_id
        'Teste Cliente',
        'Teste Motivo',
        100, // km_inicial
        -10.9265, // latitude_inicial
        -37.0722, // longitude_inicial
        'Endereço de teste',
        null, // cliente_id
        'Observação de teste',
        'normal', // prioridade
        null  // gestor_id
    ]);
    
    if ($result) {
        $id = $pdo->lastInsertId();
        echo "✅ Inserção de teste realizada com sucesso! ID: $id\n";
        
        // Limpar teste
        $pdo->exec("DELETE FROM solicitacoes_viagem WHERE id = $id");
        echo "🧹 Registro de teste removido\n";
    } else {
        echo "❌ Erro na inserção de teste\n";
        print_r($stmt->errorInfo());
    }
    
} catch (Exception $e) {
    echo "❌ ERRO: " . $e->getMessage() . "\n";
    echo "📋 Stack trace:\n" . $e->getTraceAsString() . "\n";
}
?> 
