<?php
/**
 * Script de teste para verificar envio de notificação ntfy
 */

// Configurações básicas
error_reporting(E_ALL);
ini_set('display_errors', 1);

header('Content-Type: text/plain; charset=utf-8');

echo "=== INICIANDO TESTE NTFY ===\n";

try {
    // 1. Verificar se o bootstrap existe
    $bootstrapPath = __DIR__ . '/../../config/bootstrap.php';
    if (!file_exists($bootstrapPath)) {
        throw new Exception("Arquivo bootstrap.php não encontrado em: $bootstrapPath");
    }
    
    echo "✅ Bootstrap encontrado\n";
    require_once $bootstrapPath;
    echo "✅ Bootstrap carregado\n";
    
    // 2. Testar conexão com banco
    try {
        $gestores = Database::queryAll(
            "SELECT id, nome, ntfy_topic FROM gestores WHERE nivel_acesso = 'gestor' AND status = 'ativo' AND ntfy_topic IS NOT NULL AND ntfy_topic != ''"
        );
        
        echo "✅ Conexão com banco OK\n";
        echo "=== GESTORES ENCONTRADOS ===\n";
        echo "Total: " . count($gestores) . "\n";
        
        foreach ($gestores as $gestor) {
            echo "ID: {$gestor['id']}, Nome: {$gestor['nome']}, Tópico: {$gestor['ntfy_topic']}\n";
        }
        
        // 3. Testar envio para cada gestor
        foreach ($gestores as $gestor) {
            $ntfyTopic = $gestor['ntfy_topic'];
            $titulo = "🧪 Teste de Notificação";
            $mensagem = "Esta é uma notificação de teste para {$gestor['nome']} - " . date('Y-m-d H:i:s');
            
            echo "\n=== TESTANDO ENVIO PARA {$gestor['nome']} ===\n";
            echo "URL: https://ntfy.sh/{$ntfyTopic}\n";
            
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, "https://ntfy.sh/{$ntfyTopic}");
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $mensagem);
            curl_setopt($ch, CURLOPT_HTTPHEADER, [
                'Title: ' . $titulo,
                'Content-Type: text/plain'
            ]);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_TIMEOUT, 10);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            
            $response = curl_exec($ch);
            $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
            $error = curl_error($ch);
            curl_close($ch);
            
            echo "HTTP Code: {$httpCode}\n";
            echo "Response: {$response}\n";
            if ($error) {
                echo "CURL Error: {$error}\n";
            }
            
            if ($httpCode === 200) {
                echo "✅ SUCESSO!\n";
            } else {
                echo "❌ FALHOU!\n";
            }
        }
        
    } catch (Exception $e) {
        echo "❌ Erro na consulta do banco: " . $e->getMessage() . "\n";
    }
    
    echo "\n=== TESTE CONCLUÍDO ===\n";
    
} catch (Exception $e) {
    echo "❌ ERRO GERAL: " . $e->getMessage() . "\n";
    echo "Stack trace:\n" . $e->getTraceAsString() . "\n";
}
?> 
