<?php
/**
 * Script para testar e debugar a API de gestores
 */

echo "🧪 TESTANDO API DE GESTORES\n\n";

// Testar conexão com banco
echo "1️⃣ Testando conexão com banco...\n";
try {
    require_once __DIR__ . '/config/database.php';
    echo "✅ Conexão com banco OK\n\n";
} catch (Exception $e) {
    echo "❌ Erro na conexão: " . $e->getMessage() . "\n";
    exit(1);
}

// Testar se tabela existe
echo "2️⃣ Verificando tabela gestores...\n";
try {
    $stmt = $pdo->query("DESCRIBE gestores");
    $campos = $stmt->fetchAll(PDO::FETCH_ASSOC);
    echo "✅ Tabela gestores existe\n";
    echo "📋 Campos encontrados:\n";
    foreach ($campos as $campo) {
        echo "   • {$campo['Field']} ({$campo['Type']})\n";
    }
    echo "\n";
} catch (Exception $e) {
    echo "❌ Erro na tabela: " . $e->getMessage() . "\n";
    exit(1);
}

// Testar dados na tabela
echo "3️⃣ Verificando dados na tabela...\n";
try {
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM gestores");
    $total = $stmt->fetch(PDO::FETCH_ASSOC)['total'];
    echo "✅ Total de gestores: $total\n";
    
    if ($total > 0) {
        $stmt = $pdo->query("SELECT id, nome, usuario, nivel_acesso, status FROM gestores ORDER BY id");
        $gestores = $stmt->fetchAll(PDO::FETCH_ASSOC);
        echo "📋 Gestores encontrados:\n";
        foreach ($gestores as $gestor) {
            echo "   • ID {$gestor['id']}: {$gestor['nome']} ({$gestor['usuario']}) - {$gestor['nivel_acesso']} - {$gestor['status']}\n";
        }
    }
    echo "\n";
} catch (Exception $e) {
    echo "❌ Erro ao consultar dados: " . $e->getMessage() . "\n";
    exit(1);
}

// Testar API de sincronização
echo "4️⃣ Testando API de sincronização...\n";
try {
    // Simular requisição para API
    $_SERVER['REQUEST_METHOD'] = 'GET';
    
    ob_start();
    include __DIR__ . '/api/sync/gestores.php';
    $output = ob_get_clean();
    
    echo "📤 Output da API:\n";
    echo $output . "\n\n";
    
    // Validar JSON
    $data = json_decode($output, true);
    if ($data === null) {
        echo "❌ JSON inválido! Erro: " . json_last_error_msg() . "\n";
    } else {
        echo "✅ JSON válido!\n";
        echo "📊 Dados retornados:\n";
        echo "   • Sucesso: " . ($data['sucesso'] ? 'SIM' : 'NÃO') . "\n";
        if (isset($data['gestores'])) {
            echo "   • Gestores: " . count($data['gestores']) . "\n";
        }
        if (isset($data['estatisticas'])) {
            echo "   • Estatísticas: OK\n";
        }
        if (isset($data['erro'])) {
            echo "   • Erro: " . $data['erro'] . "\n";
        }
    }
    echo "\n";
} catch (Exception $e) {
    echo "❌ Erro ao testar API: " . $e->getMessage() . "\n";
}

// Testar URLs
echo "5️⃣ URLs para testar no navegador:\n";
$baseUrl = "https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/";
echo "🌐 API Sync: {$baseUrl}api/sync/gestores.php\n";
echo "🌐 Gestão: {$baseUrl}admin/gestao-gestores.html\n";
echo "🌐 Dashboard: {$baseUrl}admin/dashboard.html\n\n";

// Teste de login
echo "6️⃣ Testando credenciais padrão...\n";
try {
    $stmt = $pdo->prepare("SELECT id, nome, usuario, nivel_acesso FROM gestores WHERE usuario = ? AND status = 'ativo'");
    
    // Testar admin
    $stmt->execute(['admin']);
    $admin = $stmt->fetch(PDO::FETCH_ASSOC);
    if ($admin) {
        echo "✅ Admin encontrado: {$admin['nome']} (ID: {$admin['id']})\n";
    } else {
        echo "❌ Admin não encontrado\n";
    }
    
    // Testar gestor
    $stmt->execute(['gestor']);
    $gestor = $stmt->fetch(PDO::FETCH_ASSOC);
    if ($gestor) {
        echo "✅ Gestor encontrado: {$gestor['nome']} (ID: {$gestor['id']})\n";
    } else {
        echo "❌ Gestor não encontrado\n";
    }
    
} catch (Exception $e) {
    echo "❌ Erro ao testar login: " . $e->getMessage() . "\n";
}

echo "\n🏁 TESTE CONCLUÍDO!\n";
?> 
