<?php
require_once 'config/database.php';

echo "<h2>🔧 Corrigindo API de Notificações</h2>";

try {
    $pdo = Database::getConnection();
    
    echo "<h3>1. Verificando estrutura da tabela notificacoes_push</h3>";
    
    // Verificar se a tabela existe
    $stmt = $pdo->query("SHOW TABLES LIKE 'notificacoes_push'");
    $result = $stmt->fetch();
    
    if ($result) {
        echo "✅ Tabela notificacoes_push existe<br>";
        
        // Verificar estrutura
        $stmt = $pdo->query("DESCRIBE notificacoes_push");
        $colunas = $stmt->fetchAll();
        echo "📋 Colunas da tabela:<br>";
        foreach ($colunas as $coluna) {
            echo "- {$coluna['Field']} ({$coluna['Type']}) - {$coluna['Null']} - {$coluna['Default']}<br>";
        }
        
        // Verificar se há dados
        $stmt = $pdo->query("SELECT COUNT(*) as total FROM notificacoes_push");
        $result = $stmt->fetch();
        echo "📊 Total de notificações: {$result['total']}<br>";
        
        // Verificar se há notificações para o usuário 4
        $stmt = $pdo->prepare("SELECT COUNT(*) as total FROM notificacoes_push WHERE user_id = ?");
        $stmt->execute(['4']);
        $result = $stmt->fetch();
        echo "📊 Notificações para usuário 4: {$result['total']}<br>";
        
    } else {
        echo "❌ Tabela notificacoes_push não existe<br>";
        echo "🔧 Criando tabela...<br>";
        
        $sql = "CREATE TABLE notificacoes_push (
            id INT AUTO_INCREMENT PRIMARY KEY,
            user_id VARCHAR(50) NOT NULL,
            titulo VARCHAR(255) NOT NULL,
            mensagem TEXT NOT NULL,
            tipo VARCHAR(50) NOT NULL,
            solicitacao_id INT NULL,
            viagem_id INT NULL,
            lida BOOLEAN DEFAULT FALSE,
            enviada BOOLEAN DEFAULT FALSE,
            data_envio TIMESTAMP NULL,
            fcm_token VARCHAR(500) NULL,
            fcm_message_id VARCHAR(100) NULL,
            fcm_response TEXT NULL,
            tentativas_envio INT DEFAULT 0,
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
            INDEX idx_user_id (user_id),
            INDEX idx_lida (lida),
            INDEX idx_tipo (tipo),
            INDEX idx_solicitacao_id (solicitacao_id),
            INDEX idx_viagem_id (viagem_id)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci";
        
        $pdo->exec($sql);
        echo "✅ Tabela notificacoes_push criada com sucesso<br>";
    }
    
    echo "<h3>2. Inserindo notificação de teste</h3>";
    
    // Inserir notificação de teste para o usuário 4
    $sql = "INSERT INTO notificacoes_push (
        user_id, titulo, mensagem, tipo, solicitacao_id, lida
    ) VALUES (?, ?, ?, ?, ?, ?)";
    
    $stmt = $pdo->prepare($sql);
    $result = $stmt->execute([
        '4',
        '🚗 Nova Solicitação',
        'Solicitação de viagem para Cliente Teste',
        'solicitacao_viagem',
        1,
        false
    ]);
    
    if ($result) {
        $notificacaoId = $pdo->lastInsertId();
        echo "✅ Notificação de teste criada com ID: $notificacaoId<br>";
    } else {
        echo "❌ Erro ao criar notificação de teste<br>";
    }
    
    echo "<h3>3. Testando API de notificações</h3>";
    
    $url = "https://sistemas.pinheiroempresas.com.br/controlefrotaV1.1/backend-php/api/gestao/notificacoes.php?acao=nao_lidas&user_id=4";
    echo "🧪 Testando API: $url<br>";
    
    $context = stream_context_create([
        'http' => [
            'timeout' => 10,
            'ignore_errors' => true
        ]
    ]);
    
    $response = file_get_contents($url, false, $context);
    
    if ($response !== false) {
        echo "📝 Response: " . htmlspecialchars($response) . "<br>";
        
        $data = json_decode($response, true);
        if ($data && isset($data['success'])) {
            if ($data['success']) {
                echo "✅ API funcionando! Total não lidas: {$data['data']['total_nao_lidas']}<br>";
            } else {
                echo "❌ API retornou erro: {$data['message']}<br>";
            }
        } else {
            echo "❌ Resposta inválida da API<br>";
        }
    } else {
        echo "❌ Erro ao acessar API<br>";
    }
    
    echo "<h3>4. Verificando dados finais</h3>";
    
    $stmt = $pdo->query("SELECT id, user_id, titulo, tipo, lida FROM notificacoes_push ORDER BY id DESC LIMIT 5");
    $notificacoes = $stmt->fetchAll();
    
    echo "📋 Últimas 5 notificações:<br>";
    foreach ($notificacoes as $notif) {
        echo "- ID: {$notif['id']} | User: {$notif['user_id']} | Título: {$notif['titulo']} | Tipo: {$notif['tipo']} | Lida: " . ($notif['lida'] ? 'Sim' : 'Não') . "<br>";
    }
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "<br>";
    echo "📋 Stack trace: " . $e->getTraceAsString() . "<br>";
}
?> 
