<?php
// admin/content-generator.php
$pageTitle = 'Gerador de Conteúdo';
$pageHeader = 'Gerador de Conteúdo para Cursos';
$currentPage = 'generator';
$useAjax = true;

require_once '../includes/config.php';
require_once '../includes/db.php';
require_once '../includes/functions.php';
require_once '../includes/auth.php';

// Verificar se API Claude está disponível
if (file_exists('../includes/claude-api.php')) {
    require_once '../includes/claude-api.php';
} else {
    die('API Claude não encontrada. Verifique se o arquivo claude-api.php existe.');
}

// Requer autenticação
$auth->requireAuth();

// Prompts aprimorados para cada tipo de página
$enhancedPrompts = [
    'landing' => "Crie uma página de aterrizagem extremamente persuasiva e otimizada para conversão com EXATAMENTE {wordCount} palavras.
                 
                 INFORMAÇÕES DO CURSO:
                 - Título: {title}
                 - Tom: {tone}
                 - Palavras-chave: {keywords}
                 
                 ESTRUTURA OBRIGATÓRIA:
                 1. HEADLINE PRINCIPAL (H1): Crie um título magnético que capture atenção instantânea
                 2. SUBHEADLINE: Amplifique a promessa do headline principal
                 3. PROBLEMA E DOR: Identifique e agrave o problema que o público enfrenta
                 4. SOLUÇÃO APRESENTADA: Posicione o curso como a solução definitiva
                 5. BENEFÍCIOS TRANSFORMADORES: Liste 7-10 benefícios específicos e tangíveis
                 6. AUTORIDADE E CREDIBILIDADE: Estabeleça confiança e expertise
                 7. URGÊNCIA E ESCASSEZ: Crie senso de urgência sem ser agressivo
                 8. CHAMADA PARA AÇÃO: CTA poderoso e claro
                 9. GARANTIA E SEGURANÇA: Remova objeções e riscos
                 
                 FORMATAÇÃO HTML:
                 - Use <h1> para o headline principal
                 - Use <h2> para seções principais com ícones Font Awesome
                 - Use <h3> para subsecções
                 - Inclua ícones <i class=\"fas fa-[icone]\"></i> antes de cada benefício
                 - Use listas <ul> e <li> para benefícios e características
                 - Adicione classes CSS: 'benefit-item', 'cta-section', 'urgency-block'
                 
                 PALAVRAS EXATAS: {wordCount} (sem contar HTML e ícones)
                 FOCO: Conversão máxima e persuasão ética",
    
    'step1' => "Crie o primeiro módulo educacional do curso com EXATAMENTE {wordCount} palavras.
               
               INFORMAÇÕES:
               - Título: {title}
               - Tom: {tone}
               - Palavras-chave: {keywords}
               
               ESTRUTURA PEDAGÓGICA:
               1. INTRODUÇÃO MOTIVADORA: Desperte curiosidade e estabeleça expectativas
               2. CONTEXTO E IMPORTÂNCIA: Por que este conhecimento é fundamental
               3. FUNDAMENTOS BÁSICOS: Conceitos essenciais explicados de forma clara
               4. EXEMPLOS PRÁTICOS: 4-5 exemplos reais e aplicáveis
               5. EXERCÍCIOS REFLEXIVOS: Perguntas que estimulem o pensamento crítico
               6. APLICAÇÃO IMEDIATA: Como usar esse conhecimento hoje mesmo
               7. RESUMO E CONSOLIDAÇÃO: Reforce os pontos principais
               8. PREPARAÇÃO PARA PRÓXIMA ETAPA: Gere expectativa para o módulo 2
               
               FORMATAÇÃO:
               - <h2> para seções principais com ícones
               - <h3> para subsecções
               - Use classes: 'learning-objective', 'example-box', 'exercise-section'
               - Inclua ícones educativos antes de exercícios e exemplos
               
               PALAVRAS EXATAS: {wordCount}",
    
    'step2' => "Crie o segundo módulo do curso com aprofundamento e EXATAMENTE {wordCount} palavras.
               
               INFORMAÇÕES:
               - Título: {title}
               - Tom: {tone}
               - Palavras-chave: {keywords}
               
               ESTRUTURA AVANÇADA:
               1. REVISÃO CONECTIVA: Ligue com o módulo anterior
               2. APROFUNDAMENTO CONCEITUAL: Expanda o conhecimento base
               3. CASOS DE ESTUDO: 3-4 casos reais detalhados com análise
               4. TÉCNICAS AVANÇADAS: Métodos mais sofisticados
               5. ERROS COMUNS: O que evitar e por quê
               6. FERRAMENTAS E RECURSOS: Recursos práticos para implementação
               7. EXERCÍCIOS PRÁTICOS: Atividades hands-on
               8. AUTOAVALIAÇÃO: Como medir o próprio progresso
               9. PONTE PARA MÓDULO 3: Preparação para conteúdo avançado
               
               FORMATAÇÃO:
               - Use classes: 'case-study', 'advanced-tip', 'common-mistake'
               - Inclua ícones específicos para cada tipo de conteúdo
               
               PALAVRAS EXATAS: {wordCount}",
    
    'step3' => "Crie o módulo final de aprofundamento com EXATAMENTE {wordCount} palavras.
               
               INFORMAÇÕES:
               - Título: {title}
               - Tom: {tone}
               - Palavras-chave: {keywords}
               
               ESTRUTURA MASTERCLASS:
               1. SÍNTESE DOS MÓDULOS ANTERIORES: Conecte todo o aprendizado
               2. ESTRATÉGIAS AVANÇADAS: Técnicas de nível expert
               3. TENDÊNCIAS E FUTURO: Visão prospectiva da área
               4. IMPLEMENTAÇÃO SISTEMÁTICA: Plano de ação passo a passo
               5. SUPERAÇÃO DE OBSTÁCULOS: Soluções para desafios comuns
               6. MENTALIDADE DE EXPERT: Desenvolvimento de mindset avançado
               7. PROJETO PRÁTICO FINAL: Desafio de aplicação completa
               8. RECURSOS DE APROFUNDAMENTO: Materiais para continuidade
               9. PREPARAÇÃO PARA AÇÃO: Motivação para implementar
               
               FORMATAÇÃO:
               - Use classes: 'expert-strategy', 'implementation-plan', 'final-challenge'
               - Inclua ícones de conquista e progresso
               
               PALAVRAS EXATAS: {wordCount}",
    
    'registration' => "Crie uma página de registro ultra-persuasiva com EXATAMENTE {wordCount} palavras.
                      
                      INFORMAÇÕES:
                      - Título: {title}
                      - Tom: {tone}
                      - Palavras-chave: {keywords}
                      
                      ESTRUTURA DE CONVERSÃO:
                      1. RECAPITULAÇÃO DE VALOR: Relembre todo o valor apresentado
                      2. TRANSFORMAÇÃO PROMETIDA: Descreva a mudança de vida esperada
                      3. BENEFÍCIOS EXCLUSIVOS: O que apenas quem se registra recebe
                      4. PROCESSO PÓS-REGISTRO: O que acontece após se inscrever
                      5. SUPORTE E COMUNIDADE: Acompanhamento e networking
                      6. GARANTIAS ROBUSTAS: Elimine todos os riscos
                      7. DEPOIMENTOS E PROVAS: Social proof convincente
                      8. FAQ ESTRATÉGICO: Responda objeções principais
                      9. URGÊNCIA ÉTICA: Motive ação imediata
                      10. CTA FINAL IRRESISTÍVEL: Comando de ação definitivo
                      
                      FORMATAÇÃO:
                      - Use classes: 'value-recap', 'exclusive-benefit', 'guarantee-section'
                      - Inclua ícones de segurança e garantia
                      
                      PALAVRAS EXATAS: {wordCount}"
];

// Se for uma requisição AJAX
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) {
    header('Content-Type: application/json');
    
    try {
        $action = $_POST['action'];
        
        switch ($action) {
            case 'generate_suggestions':
                $keyword = trim($_POST['keyword'] ?? '');
                $pageType = trim($_POST['page_type'] ?? '');
                
                if (empty($keyword)) {
                    throw new Exception("A palavra-chave é obrigatória.");
                }
                
                if (!in_array($pageType, ['landing', 'step1', 'step2', 'step3', 'registration'])) {
                    throw new Exception("Tipo de página inválido.");
                }
                
                // Gerar sugestões
                $titles = $claudeAPI->generateMultipleTitles($keyword, $pageType, 5);
                $ctas = $claudeAPI->generateMultipleCTAs($keyword, $pageType, 5);
                $keywords = $claudeAPI->generateKeywords($keyword, 12);
                
                // Registrar geração bem-sucedida
                logInfo("Sugestões geradas com sucesso para '{$keyword}', tipo: {$pageType}");
                
                echo json_encode([
                    'success' => true,
                    'titles' => $titles,
                    'ctas' => $ctas,
                    'keywords' => $keywords
                ]);
                break;
                
            case 'generate_content':
                $title = trim($_POST['title'] ?? '');
                $pageType = trim($_POST['page_type'] ?? '');
                $keywords = trim($_POST['keywords'] ?? '');
                $tone = trim($_POST['tone'] ?? 'informativo');
                $wordCount = intval($_POST['word_count'] ?? 1000);
                
                if (empty($title)) {
                    throw new Exception("O título é obrigatório.");
                }
                
                if (!in_array($pageType, ['landing', 'step1', 'step2', 'step3', 'registration'])) {
                    throw new Exception("Tipo de página inválido.");
                }
                
                // Obter prompt específico para o tipo de página
                $prompt = $enhancedPrompts[$pageType];
                
                // Substituir placeholders no prompt
                $prompt = str_replace(['{title}', '{keywords}', '{tone}', '{wordCount}'], 
                                    [$title, $keywords, $tone, $wordCount], 
                                    $prompt);
                
                // Gerar conteúdo usando o prompt específico
                $generatedContent = $claudeAPI->generateContentWithPrompt($prompt);
                
                // Gerar excerpt e meta description
                $excerpt = $claudeAPI->generateExcerpt($generatedContent, 150);
                $metaDescription = $claudeAPI->generateMetaDescription($generatedContent, 160);
                
                // Gerar CTA específico se não fornecido
                $ctaText = '';
                switch ($pageType) {
                    case 'landing':
                        $ctaText = 'Comenzar Ahora Gratis';
                        break;
                    case 'step1':
                        $ctaText = 'Continuar a la Etapa 2';
                        break;
                    case 'step2':
                        $ctaText = 'Avanzar a la Etapa 3';
                        break;
                    case 'step3':
                        $ctaText = 'Ir al Registro Final';
                        break;
                    case 'registration':
                        $ctaText = 'Registrarse Ahora';
                        break;
                }
                
                // Contar palavras do conteúdo gerado (sem tags HTML)
                $contentText = strip_tags($generatedContent);
                $actualWordCount = str_word_count($contentText);
                
                // Calcular métricas de qualidade
                $readabilityScore = calculateReadabilityScore($generatedContent);
                $seoScore = calculateSEOScore($generatedContent, $keywords);
                
                // Registrar geração bem-sucedida
                logInfo("Conteúdo gerado com sucesso: '{$title}', tipo: {$pageType}, palavras: {$actualWordCount}");
                
                echo json_encode([
                    'success' => true,
                    'content' => $generatedContent,
                    'excerpt' => $excerpt,
                    'meta_description' => $metaDescription,
                    'cta_text' => $ctaText,
                    'word_count' => $actualWordCount,
                    'readability_score' => $readabilityScore,
                    'seo_score' => $seoScore,
                    'page_type' => $pageType
                ]);
                break;
                
            default:
                throw new Exception("Ação inválida.");
        }
        
    } catch (Exception $e) {
        logError("Erro na geração de conteúdo: " . $e->getMessage());
        echo json_encode([
            'success' => false,
            'message' => $e->getMessage()
        ]);
    }
    
    exit;
}

// Funções auxiliares
function calculateReadabilityScore($content) {
    $text = strip_tags($content);
    $sentences = preg_split('/[.!?]+/', $text);
    $words = str_word_count($text);
    $avgWordsPerSentence = $words / max(count($sentences), 1);
    
    if ($avgWordsPerSentence <= 15) return 'Excelente';
    if ($avgWordsPerSentence <= 20) return 'Bom';
    if ($avgWordsPerSentence <= 25) return 'Regular';
    return 'Difícil';
}

function calculateSEOScore($content, $keywords) {
    $text = strtolower(strip_tags($content));
    $keywordArray = array_map('trim', explode(',', strtolower($keywords)));
    $score = 0;
    
    foreach ($keywordArray as $keyword) {
        if (!empty($keyword)) {
            $score += substr_count($text, $keyword) * 10;
        }
    }
    
    return min($score, 100);
}

// Incluir o header
require_once 'inc/header.php';
?>

<style>
    :root {
        --primary-color: #4F46E5;
        --secondary-color: #7C3AED;
        --accent-color: #EC4899;
        --dark-color: #1F2937;
        --light-color: #F8FAFC;
        --text-color: #1F2937;
        --border-color: #E5E7EB;
        --gradient: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
    }

    body {
        font-family: 'Poppins', sans-serif;
        background: #f5f7fa;
        color: var(--text-color);
    }

    .container-fluid {
        max-width: 1400px;
    }

    .card {
        border-radius: 15px;
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
        border: none;
        background: white;
        animation: fadeInUp 0.5s ease-out forwards;
    }

    .card-body {
        padding: 2rem;
    }

    .step-indicator {
        display: flex;
        justify-content: center;
        margin-bottom: 2rem;
    }

    .step {
        width: 40px;
        height: 40px;
        border-radius: 50%;
        background: #e0e0e0;
        display: flex;
        align-items: center;
        justify-content: center;
        font-weight: 600;
        position: relative;
        margin: 0 20px;
        transition: all 0.3s ease;
    }

    .step.active {
        background: var(--primary-color);
        color: white;
        transform: scale(1.1);
    }

    .step.completed {
        background: #10B981;
        color: white;
    }

    .step::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 60px;
        width: 40px;
        height: 2px;
        background: #e0e0e0;
        transform: translateY(-50%);
    }

    .step:last-child::after {
        display: none;
    }

    .step.completed::after {
        background: #10B981;
    }

    .generation-step {
        display: none;
    }

    .generation-step.active {
        display: block;
        animation: fadeInUp 0.5s ease-out forwards;
    }

    .nav-tabs {
        border-bottom: 1px solid var(--border-color);
        margin-bottom: 2rem;
    }

    .nav-tabs .nav-link {
        border: none;
        border-radius: 8px 8px 0 0;
        color: var(--text-color);
        font-weight: 500;
        padding: 0.75rem 1.5rem;
        transition: all 0.3s ease;
    }

    .nav-tabs .nav-link.active {
        background: var(--primary-color);
        color: white;
    }

    .nav-tabs .nav-link:hover {
        background: rgba(79, 70, 229, 0.1);
        color: var(--primary-color);
    }

    .form-label {
        font-weight: 500;
        color: var(--dark-color);
        font-size: 0.9rem;
        margin-bottom: 0.5rem;
    }

    .form-control, .form-select {
        border-radius: 8px;
        padding: 0.75rem 1rem;
        border: 1px solid var(--border-color);
        background: #F9FAFB;
        font-size: 0.95rem;
        transition: all 0.3s ease;
    }

    .form-control:focus, .form-select:focus {
        border-color: var(--primary-color);
        box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1);
        background: white;
    }

    .btn {
        border-radius: 8px;
        padding: 0.75rem 1.5rem;
        font-weight: 500;
        transition: all 0.3s ease;
    }

    .btn-primary {
        background: var(--gradient);
        border: none;
    }

    .btn-primary:hover {
        background: linear-gradient(135deg, #4338CA, #6D28D9);
        transform: translateY(-2px);
        box-shadow: 0 5px 15px rgba(79, 70, 229, 0.4);
    }

    .btn-success {
        background: #10B981;
        border: none;
    }

    .btn-success:hover {
        background: #059669;
        transform: translateY(-2px);
        box-shadow: 0 5px 15px rgba(16, 185, 129, 0.4);
    }

    .btn-outline-secondary {
        border-color: var(--border-color);
        color: var(--text-color);
    }

    .btn-outline-secondary:hover {
        background: var(--light-color);
    }

    .results-container {
        display: none;
    }

    .results-card {
        border-radius: 12px;
        border: 1px solid var(--border-color);
        margin-bottom: 1.5rem;
    }

    .results-header {
        background: #F8FAFC;
        padding: 0.75rem 1rem;
        border-bottom: 1px solid var(--border-color);
        border-radius: 12px 12px 0 0;
        font-weight: 600;
    }

    .results-body {
        padding: 1rem;
    }

    .suggestion-item {
        padding: 0.75rem;
        border-radius: 8px;
        background: #F8FAFC;
        margin-bottom: 0.75rem;
        border: 1px solid var(--border-color);
        position: relative;
        transition: all 0.2s ease;
        cursor: pointer;
    }

    .suggestion-item:hover {
        background: #EFF6FF;
        border-color: #BFDBFE;
    }

    .suggestion-item.selected {
        background: rgba(79, 70, 229, 0.1);
        border-color: var(--primary-color);
    }

    .copy-btn {
        position: absolute;
        top: 0.5rem;
        right: 0.5rem;
        width: 28px;
        height: 28px;
        border-radius: 6px;
        background: rgba(79, 70, 229, 0.1);
        border: none;
        color: var(--primary-color);
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        opacity: 0;
        transition: all 0.2s ease;
    }

    .suggestion-item:hover .copy-btn {
        opacity: 1;
    }

    .copy-btn:hover {
        background: var(--primary-color);
        color: white;
    }

    .keywords-container {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .keyword-badge {
        background: rgba(79, 70, 229, 0.1);
        color: var(--primary-color);
        border-radius: 20px;
        padding: 0.25rem 0.75rem;
        font-size: 0.85rem;
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        cursor: pointer;
        transition: all 0.2s ease;
    }

    .keyword-badge:hover {
        background: var(--primary-color);
        color: white;
    }

    .keyword-badge.selected {
        background: var(--primary-color);
        color: white;
    }

    .loading-spinner {
        display: none;
        margin: 2rem auto;
        text-align: center;
    }

    .spinner {
        width: 40px;
        height: 40px;
        border: 4px solid rgba(79, 70, 229, 0.1);
        border-radius: 50%;
        border-top-color: var(--primary-color);
        animation: spin 1s linear infinite;
    }

    .content-preview {
        max-height: 400px;
        overflow-y: auto;
        border: 1px solid var(--border-color);
        border-radius: 8px;
        padding: 1rem;
        background: white;
    }

    .word-count-badge {
        display: inline-block;
        background: rgba(16, 185, 129, 0.1);
        color: #059669;
        padding: 0.25rem 0.5rem;
        border-radius: 12px;
        font-size: 0.75rem;
        font-weight: 600;
    }

    .alert {
        border-radius: 10px;
        padding: 1rem;
        font-weight: 500;
        animation: fadeIn 0.3s ease-out forwards;
        margin-bottom: 1rem;
    }

    .alert-success {
        background: rgba(16, 185, 129, 0.1);
        color: #059669;
        border: 1px solid rgba(16, 185, 129, 0.2);
    }

    .alert-danger {
        background: #FEF2F2;
        color: #991B1B;
        border: 1px solid rgba(239, 68, 68, 0.2);
    }

    .alert-warning {
        background: rgba(245, 158, 11, 0.1);
        color: #D97706;
        border: 1px solid rgba(245, 158, 11, 0.2);
    }

    .metrics-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 1rem;
        margin-bottom: 1.5rem;
    }

    .metric-card {
        background: #F8FAFC;
        border-radius: 8px;
        padding: 1rem;
        text-align: center;
        border: 1px solid var(--border-color);
    }

    .metric-value {
        font-size: 1.5rem;
        font-weight: 700;
        color: var(--primary-color);
        margin-bottom: 0.25rem;
    }

    .metric-label {
        font-size: 0.85rem;
        color: #6B7280;
    }

    @keyframes spin {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }

    @keyframes fadeInUp {
        from { opacity: 0; transform: translateY(20px); }
        to { opacity: 1; transform: translateY(0); }
    }

    @keyframes fadeIn {
        from { opacity: 0; }
        to { opacity: 1; }
    }

    /* Responsividade */
    @media (max-width: 768px) {
        .container-fluid {
            padding: 1rem;
        }

        .card-body {
            padding: 1.5rem;
        }

        .step {
            margin: 0 10px;
            width: 35px;
            height: 35px;
        }

        .step::after {
            width: 20px;
            left: 45px;
        }

        .btn {
            width: 100%;
            margin-bottom: 0.5rem;
        }

        .metrics-grid {
            grid-template-columns: repeat(2, 1fr);
        }
    }
</style>

<div class="container-fluid py-4">
    <div class="row">
        <div class="col-12">
            <div class="card">
                <div class="card-body">
                    <!-- Indicador de Etapas -->
                    <div class="step-indicator">
                        <div class="step active" data-step="1">1</div>
                        <div class="step" data-step="2">2</div>
                        <div class="step" data-step="3">3</div>
                    </div>
                    
                    <!-- Container de Alertas -->
                    <div id="alerts-container"></div>
                    
                    <!-- Etapa 1: Gerar Sugestões -->
                    <div id="step1" class="generation-step active">
                        <h3 class="mb-3">Etapa 1: Configuração e Sugestões</h3>
                        <p class="text-muted mb-4">Insira as informações básicas do curso para gerar sugestões personalizadas.</p>
                        
                        <form id="suggestionsForm">
                            <div class="row">
                                <div class="col-md-6 mb-3">
                                    <label for="keyword" class="form-label">Palavra-chave do Curso</label>
                                    <input type="text" class="form-control" id="keyword" name="keyword" placeholder="Ex: Curso de Marketing Digital" required>
                                    <div class="form-text">Informe o tema ou palavra-chave principal do curso.</div>
                                </div>
                                <div class="col-md-6 mb-3">
                                    <label for="page_type" class="form-label">Tipo de Página</label>
                                    <select class="form-control" id="page_type" name="page_type" required>
                                        <option value="landing">Landing Page</option>
                                        <option value="step1">Primeira Etapa</option>
                                        <option value="step2">Segunda Etapa</option>
                                        <option value="step3">Terceira Etapa</option>
                                        <option value="registration">Página de Registro</option>
                                    </select>
                                </div>
                            </div>
                            <button type="submit" class="btn btn-primary">
                                <i class="fas fa-lightbulb me-2"></i>Gerar Sugestões
                            </button>
                        </form>
                    </div>
                    
                    <!-- Etapa 2: Selecionar Sugestões -->
                    <div id="step2" class="generation-step">
                        <h3 class="mb-3">Etapa 2: Selecionar Sugestões</h3>
                        <p class="text-muted mb-4">Escolha as melhores sugestões ou clique para selecioná-las.</p>
                        
                        <!-- Títulos -->
                        <div class="results-card">
                            <div class="results-header">
                                <i class="fas fa-heading me-2"></i>Sugestões de Títulos
                            </div>
                            <div class="results-body titles-container">
                                <!-- Títulos serão inseridos aqui -->
                            </div>
                        </div>
                        
                        <!-- CTAs -->
                        <div class="results-card">
                            <div class="results-header">
                                <i class="fas fa-mouse-pointer me-2"></i>Sugestões de CTAs
                            </div>
                            <div class="results-body ctas-container">
                                <!-- CTAs serão inseridos aqui -->
                            </div>
                        </div>
                        
                        <!-- Palavras-chave -->
                        <div class="results-card">
                            <div class="results-header">
                                <i class="fas fa-tags me-2"></i>Palavras-chave Relacionadas
                            </div>
                            <div class="results-body">
                                <p class="small text-muted mb-2">Clique nas palavras-chave para adicioná-las à sua seleção:</p>
                                <div class="keywords-container">
                                    <!-- Palavras-chave serão inseridas aqui -->
                                </div>
                                <div class="mt-3">
                                    <label for="selected_keywords" class="form-label">Palavras-chave Selecionadas (separadas por vírgula)</label>
                                    <textarea class="form-control" id="selected_keywords" name="selected_keywords" rows="2" placeholder="As palavras-chave selecionadas aparecerão aqui..."></textarea>
                                </div>
                            </div>
                        </div>
                        
                        <div class="d-flex justify-content-between">
                            <button id="backToStep1" class="btn btn-outline-secondary">
                                <i class="fas fa-arrow-left me-2"></i>Voltar
                            </button>
                            <button id="proceedToStep3" class="btn btn-primary">
                                Gerar Conteúdo <i class="fas fa-arrow-right ms-2"></i>
                            </button>
                        </div>
                    </div>
                    
                    <!-- Etapa 3: Gerar Conteúdo Final -->
                    <div id="step3" class="generation-step">
                        <h3 class="mb-3">Etapa 3: Gerar Conteúdo Final</h3>
                        <p class="text-muted mb-4">Ajuste os parâmetros finais e gere o conteúdo completo da página.</p>
                        
                        <form id="contentForm">
                            <div class="row">
                                <div class="col-md-6 mb-3">
                                    <label for="final_title" class="form-label">Título Final</label>
                                    <input type="text" class="form-control" id="final_title" name="final_title" required>
                                </div>
                                <div class="col-md-6 mb-3">
                                    <label for="tone" class="form-label">Tom do Conteúdo</label>
                                    <select class="form-control" id="tone" name="tone">
                                        <option value="informativo">Informativo</option>
                                        <option value="persuasivo">Persuasivo</option>
                                        <option value="casual">Casual</option>
                                        <option value="formal">Formal</option>
                                        <option value="entusiasta">Entusiasta</option>
                                    </select>
                                </div>
                            </div>
                            
                            <div class="row">
                                <div class="col-md-6 mb-3">
                                    <label for="word_count" class="form-label">Quantidade de Palavras</label>
                                    <select class="form-control" id="word_count" name="word_count">
                                        <option value="500">500 palavras</option>
                                        <option value="1000" selected>1000 palavras</option>
                                        <option value="1500">1500 palavras</option>
                                        <option value="2000">2000 palavras</option>
                                        <option value="3000">3000 palavras</option>
                                    </select>
                                </div>
                                <div class="col-md-6 mb-3">
                                    <label for="final_cta" class="form-label">CTA Selecionado</label>
                                    <input type="text" class="form-control" id="final_cta" name="final_cta" readonly>
                                </div>
                            </div>
                            
                            <div class="mb-3">
                                <label for="final_keywords" class="form-label">Palavras-chave Finais</label>
                                <textarea class="form-control" id="final_keywords" name="final_keywords" rows="2" readonly></textarea>
                            </div>
                            
                            <div class="d-flex justify-content-between">
                                <button type="button" id="backToStep2" class="btn btn-outline-secondary">
                                    <i class="fas fa-arrow-left me-2"></i>Voltar
                                </button>
                                <button type="submit" class="btn btn-success">
                                    <i class="fas fa-magic me-2"></i>Gerar Conteúdo Final
                                </button>
                            </div>
                        </form>
                        
                        <!-- Indicador de loading -->
                        <div class="loading-spinner">
                            <div class="spinner"></div>
                            <p class="mt-3 text-muted" id="loading-text">Gerando conteúdo... Por favor, aguarde.</p>
                        </div>
                        
                        <!-- Resultados do Conteúdo Final -->
                        <div id="final-results" style="display: none;">
                            <hr class="my-4">
                            <h3 class="mb-3">Conteúdo Gerado com Sucesso!</h3>
                            
                            <!-- Métricas -->
                            <div class="metrics-grid">
                                <div class="metric-card">
                                    <div class="metric-value" id="final-word-count">0</div>
                                    <div class="metric-label">Palavras</div>
                                </div>
                                <div class="metric-card">
                                    <div class="metric-value" id="readability-score">-</div>
                                    <div class="metric-label">Legibilidade</div>
                                </div>
                                <div class="metric-card">
                                    <div class="metric-value" id="seo-score">0</div>
                                    <div class="metric-label">Score SEO</div>
                                </div>
                            </div>
                            
                            <div class="row">
                                <div class="col-md-8">
                                    <div class="results-card">
                                        <div class="results-header">
                                            <i class="fas fa-file-alt me-2"></i>Conteúdo Gerado
                                            <span class="word-count-badge ms-2" id="final-word-count-badge">0 palavras</span>
                                        </div>
                                        <div class="results-body">
                                            <div class="content-preview" id="generated-content">
                                                <!-- Conteúdo gerado aparecerá aqui -->
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-md-4">
                                    <div class="results-card">
                                        <div class="results-header">
                                            <i class="fas fa-info-circle me-2"></i>Informações da Página
                                        </div>
                                        <div class="results-body">
                                            <div class="mb-3">
                                                <label class="form-label">Resumo (Excerpt)</label>
                                                <textarea class="form-control" id="generated-excerpt" rows="3" readonly></textarea>
                                            </div>
                                            <div class="mb-3">
                                                <label class="form-label">Meta Description</label>
                                                <textarea class="form-control" id="generated-meta" rows="2" readonly></textarea>
                                            </div>
                                            <div class="mb-3">
                                                <label class="form-label">Texto do CTA</label>
                                                <input type="text" class="form-control" id="generated-cta" readonly>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            
                            <div class="d-flex justify-content-between mt-3">
                                <button id="startOver" class="btn btn-outline-secondary">
                                    <i class="fas fa-redo me-2"></i>Começar Novamente
                                </button>
                                <button id="saveAsPage" class="btn btn-success">
                                    <i class="fas fa-save me-2"></i>Salvar como Nova Página
                                </button>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Estado da aplicação
    let currentStep = 1;
    let selectedTitle = '';
    let selectedCta = '';
    let selectedKeywords = [];
    let currentPageType = 'landing';
    let generatedData = {};
    
    // Elementos do DOM
    const steps = document.querySelectorAll('.step');
    const stepContainers = document.querySelectorAll('.generation-step');
    const loadingSpinner = document.querySelector('.loading-spinner');
    const loadingText = document.getElementById('loading-text');
    
    // Formulários
    const suggestionsForm = document.getElementById('suggestionsForm');
    const contentForm = document.getElementById('contentForm');
    
    // Containers
    const titlesContainer = document.querySelector('.titles-container');
    const ctasContainer = document.querySelector('.ctas-container');
    const keywordsContainer = document.querySelector('.keywords-container');
    
    // Botões
    const backToStep1 = document.getElementById('backToStep1');
    const proceedToStep3 = document.getElementById('proceedToStep3');
    const backToStep2 = document.getElementById('backToStep2');
    const startOver = document.getElementById('startOver');
    const saveAsPage = document.getElementById('saveAsPage');
    
    // Event Listeners
    suggestionsForm.addEventListener('submit', handleSuggestionsSubmit);
    contentForm.addEventListener('submit', handleContentSubmit);
    backToStep1.addEventListener('click', () => goToStep(1));
    proceedToStep3.addEventListener('click', () => goToStep(3));
    backToStep2.addEventListener('click', () => goToStep(2));
    startOver.addEventListener('click', () => {
        resetAllData();
        goToStep(1);
    });
    saveAsPage.addEventListener('click', handleSaveAsPage);
    
    // Função para mudar de etapa
    function goToStep(step) {
        currentStep = step;
        
        // Atualizar indicadores visuais
        steps.forEach((s, index) => {
            s.classList.remove('active', 'completed');
            if (index + 1 < step) {
                s.classList.add('completed');
            } else if (index + 1 === step) {
                s.classList.add('active');
            }
        });
        
        // Mostrar/esconder containers de etapa
        stepContainers.forEach((container, index) => {
            container.classList.remove('active');
            if (index + 1 === step) {
                container.classList.add('active');
            }
        });
        
        // Esconder loading e resultados finais
        if (loadingSpinner) loadingSpinner.style.display = 'none';
        
        const finalResults = document.getElementById('final-results');
        if (finalResults && step !== 3) {
            finalResults.style.display = 'none';
        }
    }
    
    // Handle da submissão de sugestões
    function handleSuggestionsSubmit(e) {
        e.preventDefault();
        
        const formData = new FormData(suggestionsForm);
        formData.append('action', 'generate_suggestions');
        
        currentPageType = formData.get('page_type');
        
        showLoading('Gerando sugestões...');
        
        fetch('content-generator.php', {
            method: 'POST',
            body: formData
        })
        .then(response => response.json())
        .then(data => {
            hideLoading();
            
            if (data.success) {
                displaySuggestions(data);
                goToStep(2);
                showAlert('Sugestões geradas com sucesso!', 'success');
            } else {
                showAlert(data.message || 'Erro ao gerar sugestões.', 'danger');
            }
        })
        .catch(error => {
            hideLoading();
            showAlert('Erro na requisição: ' + error.message, 'danger');
        });
    }
    
    // Handle da submissão de conteúdo
    function handleContentSubmit(e) {
        e.preventDefault();
        
        const formData = new FormData(contentForm);
        formData.append('action', 'generate_content');
        formData.append('page_type', currentPageType);
        
        showLoading('Gerando conteúdo completo... Isso pode levar alguns minutos.');
        
        fetch('content-generator.php', {
            method: 'POST',
            body: formData
        })
        .then(response => response.json())
        .then(data => {
            hideLoading();
            
            if (data.success) {
                displayFinalContent(data);
                generatedData = data;
                document.getElementById('final-results').style.display = 'block';
                showAlert('Conteúdo gerado com sucesso!', 'success');
            } else {
                showAlert(data.message || 'Erro ao gerar conteúdo.', 'danger');
            }
        })
        .catch(error => {
            hideLoading();
            showAlert('Erro na requisição: ' + error.message, 'danger');
        });
    }
    
    // Exibir sugestões
    function displaySuggestions(data) {
        // Limpar containers
        titlesContainer.innerHTML = '';
        ctasContainer.innerHTML = '';
        keywordsContainer.innerHTML = '';
        
        // Adicionar títulos
        if (data.titles && data.titles.length > 0) {
            data.titles.forEach((title, index) => {
                const item = document.createElement('div');
                item.className = 'suggestion-item';
                item.innerHTML = `
                    ${title}
                    <button class="copy-btn" onclick="copyToClipboard('${escapeHtml(title)}')" title="Copiar">
                        <i class="fas fa-copy"></i>
                    </button>
                `;
                item.addEventListener('click', () => selectTitle(title, item));
                titlesContainer.appendChild(item);
            });
        }
        
        // Adicionar CTAs
        if (data.ctas && data.ctas.length > 0) {
            data.ctas.forEach((cta, index) => {
                const item = document.createElement('div');
                item.className = 'suggestion-item';
                item.innerHTML = `
                    ${cta}
                    <button class="copy-btn" onclick="copyToClipboard('${escapeHtml(cta)}')" title="Copiar">
                        <i class="fas fa-copy"></i>
                    </button>
                `;
                item.addEventListener('click', () => selectCta(cta, item));
                ctasContainer.appendChild(item);
            });
        }
        
        // Adicionar palavras-chave
        if (data.keywords && data.keywords.length > 0) {
            data.keywords.forEach((keyword, index) => {
                const badge = document.createElement('div');
                badge.className = 'keyword-badge';
                badge.innerHTML = `<i class="fas fa-tag"></i> ${keyword}`;
                badge.addEventListener('click', () => toggleKeyword(keyword, badge));
                keywordsContainer.appendChild(badge);
            });
        }
    }
    
    // Selecionar título
    function selectTitle(title, element) {
        selectedTitle = title;
        document.querySelectorAll('.titles-container .suggestion-item').forEach(item => {
            item.classList.remove('selected');
        });
        element.classList.add('selected');
        document.getElementById('final_title').value = title;
    }
    
    // Selecionar CTA
    function selectCta(cta, element) {
        selectedCta = cta;
        document.querySelectorAll('.ctas-container .suggestion-item').forEach(item => {
            item.classList.remove('selected');
        });
        element.classList.add('selected');
        document.getElementById('final_cta').value = cta;
    }
    
    // Alternar palavra-chave
    function toggleKeyword(keyword, element) {
        const index = selectedKeywords.indexOf(keyword);
        if (index > -1) {
            selectedKeywords.splice(index, 1);
            element.classList.remove('selected');
        } else {
            selectedKeywords.push(keyword);
            element.classList.add('selected');
        }
        
        // Atualizar textareas de palavras-chave
        const keywordsText = selectedKeywords.join(', ');
        document.getElementById('selected_keywords').value = keywordsText;
        document.getElementById('final_keywords').value = keywordsText;
    }
    
    // Exibir conteúdo final
    function displayFinalContent(data) {
        document.getElementById('generated-content').innerHTML = data.content || '';
        document.getElementById('generated-excerpt').value = data.excerpt || '';
        document.getElementById('generated-meta').value = data.meta_description || '';
        document.getElementById('generated-cta').value = data.cta_text || '';
        
        // Atualizar métricas
        document.getElementById('final-word-count').textContent = data.word_count || 0;
        document.getElementById('final-word-count-badge').textContent = `${data.word_count || 0} palavras`;
        document.getElementById('readability-score').textContent = data.readability_score || '-';
        document.getElementById('seo-score').textContent = data.seo_score || 0;
    }
    
    // Salvar como nova página
    function handleSaveAsPage() {
        if (!generatedData.content) {
            showAlert('Nenhum conteúdo foi gerado ainda.', 'warning');
            return;
        }
        
        // Preparar parâmetros para a página de criação
        const params = new URLSearchParams({
            generated: '1',
            title: document.getElementById('final_title').value,
            content: generatedData.content,
            excerpt: generatedData.excerpt || '',
            meta_description: generatedData.meta_description || '',
            cta_text: generatedData.cta_text || '',
            page_type: currentPageType,
            keywords: selectedKeywords.join(', ')
        });
        
        // Redirecionar para página de criação
        window.location.href = 'page-create.php?' + params.toString();
    }
    
    // Resetar todos os dados
    function resetAllData() {
        suggestionsForm.reset();
        contentForm.reset();
        selectedTitle = '';
        selectedCta = '';
        selectedKeywords = [];
        currentPageType = 'landing';
        generatedData = {};
        
        // Limpar campos
        document.getElementById('selected_keywords').value = '';
        document.getElementById('final_keywords').value = '';
        document.getElementById('final_title').value = '';
        document.getElementById('final_cta').value = '';
        
        // Limpar containers de sugestões
        if (titlesContainer) titlesContainer.innerHTML = '';
        if (ctasContainer) ctasContainer.innerHTML = '';
        if (keywordsContainer) keywordsContainer.innerHTML = '';
    }
    
    // Mostrar loading
    function showLoading(text) {
        loadingText.textContent = text;
        loadingSpinner.style.display = 'block';
    }
    
    // Esconder loading
    function hideLoading() {
        loadingSpinner.style.display = 'none';
    }
    
    // Mostrar alertas
    function showAlert(message, type) {
        const alertsContainer = document.getElementById('alerts-container');
        const alertId = 'alert-' + Date.now();
        
        const alertDiv = document.createElement('div');
        alertDiv.id = alertId;
        alertDiv.className = `alert alert-${type}`;
        alertDiv.innerHTML = `
            <i class="fas fa-${type === 'success' ? 'check-circle' : type === 'warning' ? 'exclamation-triangle' : 'exclamation-circle'} me-2"></i>
            ${message}
            <button type="button" class="btn-close" onclick="this.parentElement.remove()" style="background: none; border: none; color: inherit; margin-left: auto; cursor: pointer;">
                <i class="fas fa-times"></i>
            </button>
        `;
        
        alertsContainer.appendChild(alertDiv);
        
        // Auto-remover após 5 segundos
        setTimeout(() => {
            const alert = document.getElementById(alertId);
            if (alert) alert.remove();
        }, 5000);
    }
    
    // Copiar para clipboard
    function copyToClipboard(text) {
        navigator.clipboard.writeText(text).then(() => {
            showAlert('Texto copiado para o clipboard!', 'success');
        }).catch(err => {
            showAlert('Erro ao copiar texto.', 'danger');
        });
    }
    
    // Escape HTML
    function escapeHtml(text) {
        const div = document.createElement('div');
        div.textContent = text;
        return div.innerHTML;
    }
    
    // Expor funções globalmente para onclick handlers
    window.copyToClipboard = copyToClipboard;
    window.escapeHtml = escapeHtml;
});
</script>

<?php require_once 'inc/footer.php'; ?>