<?php
// migration/migrate-whatsapp-to-dynamic.php
// Script para migrar o sistema WhatsApp para modo dinâmico

require_once '../includes/config.php';
require_once '../includes/db.php';
require_once '../includes/functions.php';
require_once '../includes/whatsapp-helper.php';
require_once '../includes/whatsapp-dynamic.php';

// Só permite execução via linha de comando ou por admin autenticado
if (php_sapi_name() !== 'cli') {
    session_start();
    if (!isset($_SESSION['admin_id'])) {
        die('Acesso negado');
    }
}

echo "=== MIGRAÇÃO DO SISTEMA WHATSAPP PARA DINÂMICO ===\n\n";

try {
    // 1. Backup das páginas atuais
    echo "1. Criando backup das páginas...\n";
    
    $db->query("CREATE TABLE IF NOT EXISTS pages_backup_whatsapp AS SELECT * FROM pages WHERE published = 1 AND content LIKE '%whatsapp-cta-container%'");
    $db->execute();
    
    $db->query("SELECT COUNT(*) as count FROM pages_backup_whatsapp");
    $backup = $db->single();
    echo "   ✓ Backup criado com {$backup['count']} páginas\n\n";
    
    // 2. Converte páginas para sistema dinâmico
    echo "2. Convertendo páginas para sistema dinâmico...\n";
    
    $result = $whatsappDynamic->convertPagesToDynamicWhatsApp();
    
    if ($result['success']) {
        echo "   ✓ {$result['updated_pages']} páginas convertidas com sucesso\n\n";
    } else {
        throw new Exception("Erro na conversão: " . $result['message']);
    }
    
    // 3. Verifica se as configurações WhatsApp existem
    echo "3. Verificando configurações WhatsApp...\n";
    
    $settings = $whatsappHelper->getSettings();
    
    if (empty($settings['url'])) {
        echo "   ⚠ Configurações WhatsApp não encontradas. Criando configurações padrão...\n";
        
        $whatsappHelper->updateSettings(
            '¿Quieres recibir contenido exclusivo y conectar con otros estudiantes?',
            'https://chat.whatsapp.com/LdHGlsh02XXBt9alIK8ZD5',
            '💬 Únete a nuestro grupo de WhatsApp',
            true
        );
        
        echo "   ✓ Configurações padrão criadas\n\n";
    } else {
        echo "   ✓ Configurações encontradas\n\n";
    }
    
    // 4. Testa o sistema dinâmico
    echo "4. Testando sistema dinâmico...\n";
    
    $db->query("SELECT id, content FROM pages WHERE published = 1 AND content LIKE '%[WHATSAPP_CTA:%' LIMIT 1");
    $testPage = $db->single();
    
    if ($testPage) {
        $processedContent = $whatsappDynamic->processContent($testPage['content']);
        
        if (strpos($processedContent, 'whatsapp-cta-container') !== false) {
            echo "   ✓ Sistema dinâmico funcionando corretamente\n\n";
        } else {
            echo "   ⚠ Sistema dinâmico pode ter problemas\n\n";
        }
    }
    
    echo "=== MIGRAÇÃO CONCLUÍDA COM SUCESSO ===\n\n";
    
    echo "PRÓXIMOS PASSOS:\n";
    echo "1. Atualize os arquivos das páginas públicas (landing.php, step1.php, etc.)\n";
    echo "2. Atualize os arquivos page-create.php e page-edit.php\n";
    echo "3. Teste as configurações em /admin/whatsapp-settings.php\n";
    echo "4. Verifique se as mudanças aparecem automaticamente nas páginas\n\n";
    
    echo "BENEFÍCIOS:\n";
    echo "✓ Configurações WhatsApp aplicadas automaticamente em todas as páginas\n";
    echo "✓ Não precisa reeditar páginas quando mudar configurações\n";
    echo "✓ Sistema mais eficiente e centralizado\n\n";
    
} catch (Exception $e) {
    echo "ERRO: " . $e->getMessage() . "\n";
    echo "\nRestaurando backup...\n";
    
    try {
        // Restaura backup em caso de erro
        $db->query("UPDATE pages p JOIN pages_backup_whatsapp pb ON p.id = pb.id SET p.content = pb.content");
        $db->execute();
        echo "✓ Backup restaurado\n";
    } catch (Exception $restoreError) {
        echo "✗ Erro ao restaurar backup: " . $restoreError->getMessage() . "\n";
    }
}

// ====================================
// INSTRUÇÕES DE IMPLEMENTAÇÃO
// ====================================

/*
PASSO A PASSO PARA IMPLEMENTAR O SISTEMA DINÂMICO:

1. CRIAR ARQUIVOS:
   - includes/whatsapp-dynamic.php (código acima)
   - migration/migrate-whatsapp-to-dynamic.php (este arquivo)

2. ATUALIZAR ARQUIVOS EXISTENTES:

   A) Em todas as páginas públicas (landing.php, step1.php, registration.php):
      
      ADICIONAR no topo:
      require_once BASE_PATH . '/includes/whatsapp-dynamic.php';
      
      SUBSTITUIR:
      <?php echo $page['content']; ?>
      
      POR:
      <?php echo $whatsappDynamic->processContent($page['content']); ?>

   B) Em page-create.php e page-edit.php:
      
      SUBSTITUIR a seção que gera HTML do WhatsApp:
      
      ANTES:
      if ($use_whatsapp_cta) {
          $whatsAppHtml = $whatsappHelper->generateWhatsAppHTML();
          $elementsToInsert[] = [
              'html' => $whatsAppHtml,
              'position' => $whatsapp_position
          ];
      }
      
      DEPOIS:
      if ($use_whatsapp_cta) {
          $whatsAppMarker = "[WHATSAPP_CTA:{$whatsapp_position}]";
          $elementsToInsert[] = [
              'html' => $whatsAppMarker,
              'position' => $whatsapp_position
          ];
      }

3. EXECUTAR MIGRAÇÃO:
   - Via browser: acesse /migration/migrate-whatsapp-to-dynamic.php
   - Via CLI: php migration/migrate-whatsapp-to-dynamic.php

4. TESTAR:
   - Acesse /admin/whatsapp-settings.php
   - Altere as configurações e salve
   - Verifique se as mudanças aparecem automaticamente nas páginas

5. CONFIGURAR WHATSAPP-SETTINGS.PHP:
   - Copie o código da página de configurações fornecido acima
   - Adicione link no menu admin se necessário

COMO FUNCIONA:

1. MARCADORES DINÂMICOS:
   - Em vez de HTML estático, usamos marcadores: [WHATSAPP_CTA:position]
   - Quando a página é exibida, o marcador é substituído pelo HTML atual

2. PROCESSAMENTO EM TEMPO REAL:
   - whatsappDynamic->processContent() processa o conteúdo
   - Substitui marcadores e containers existentes
   - Usa sempre as configurações mais recentes

3. COMPATIBILIDADE:
   - Funciona com páginas antigas (converte automaticamente)
   - Funciona com páginas novas (usa marcadores)
   - Permite desativar globalmente o WhatsApp

4. VANTAGENS:
   - Mudanças aplicadas instantaneamente
   - Não precisa reeditar páginas
   - Sistema centralizado e consistente
   - Fácil manutenção

TROUBLESHOOTING:

1. Se WhatsApp não aparecer:
   - Verifique se o processamento está ativo
   - Confirme se as configurações estão salvas
   - Verifique se está habilitado globalmente

2. Se aparecer texto [WHATSAPP_CTA:...]:
   - O processamento não está funcionando
   - Verifique se whatsappDynamic->processContent() está sendo chamado

3. Para reverter:
   - Use a tabela de backup: pages_backup_whatsapp
   - Ou desative na página de configurações
*/
?>