<?php
/**
 * =====================================================
 * LANDING PAGE FUNCTIONS
 * Sistema de Editor Visual da Landing Page
 * =====================================================
 */

/**
 * Obtém uma configuração específica da landing page
 */
function getLandingConfig(PDO $pdo, string $key, string $default = ''): string {
    try {
        $stmt = $pdo->prepare("SELECT section_value FROM landing_page_config WHERE section_key = ? AND is_active = 1");
        $stmt->execute([$key]);
        $result = $stmt->fetch(PDO::FETCH_ASSOC);
        return $result ? $result['section_value'] : $default;
    } catch (PDOException $e) {
        return $default;
    }
}

/**
 * Obtém uma configuração JSON como array
 */
function getLandingConfigJson(PDO $pdo, string $key, array $default = []): array {
    $value = getLandingConfig($pdo, $key, '');
    if (empty($value)) return $default;
    $decoded = json_decode($value, true);
    return is_array($decoded) ? $decoded : $default;
}

/**
 * Salva uma configuração da landing page
 */
function saveLandingConfig(PDO $pdo, string $key, mixed $value, int $active = 1): bool {
    try {
        $stmt = $pdo->prepare("
            INSERT INTO landing_page_config (section_key, section_value, is_active) 
            VALUES (?, ?, ?) 
            ON DUPLICATE KEY UPDATE section_value = VALUES(section_value), is_active = VALUES(is_active)
        ");
        return $stmt->execute([$key, $value, $active]);
    } catch (PDOException $e) {
        return false;
    }
}

/**
 * Obtém todas as configurações da landing page
 */
function getAllLandingConfig(PDO $pdo): array {
    $config = [];
    
    // Valores padrão para caso o banco esteja vazio
    $defaults = getDefaultLandingConfig();
    
    try {
        $stmt = $pdo->query("SELECT section_key, section_value FROM landing_page_config WHERE is_active = 1");
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            $config[$row['section_key']] = $row['section_value'];
        }
    } catch (PDOException $e) {
        return $defaults;
    }
    
    // Merge com defaults (defaults são sobrescritos pelos valores do banco)
    return array_merge($defaults, $config);
}

/**
 * Retorna configurações padrão (fallback)
 */
function getDefaultLandingConfig(): array {
    return [
        // Header
        'header_logo' => '/assets/images/logo.png',
        'header_logo_text' => 'MontaLoja',
        'header_logo_type' => 'text',
        'header_btn_login_text' => 'Entrar',
        'header_btn_login_link' => '/pages/login.php',
        'header_btn_cta_text' => 'Começar Grátis',
        'header_btn_cta_link' => '#precos',
        'header_menu' => json_encode([
            ['label' => 'Recursos', 'url' => '#recursos', 'icon' => 'solar:star-bold', 'active' => true],
            ['label' => 'Preços', 'url' => '#precos', 'icon' => 'solar:tag-price-bold', 'active' => true],
            ['label' => 'Depoimentos', 'url' => '#depoimentos', 'icon' => 'solar:chat-round-like-bold', 'active' => true],
            ['label' => 'Contato', 'url' => '#contato', 'icon' => 'solar:phone-bold', 'active' => true]
        ]),
        
        // Hero
        'hero_badge' => '🚀 Plataforma #1 em E-commerce',
        'hero_title' => 'Crie sua Loja Virtual em Minutos',
        'hero_subtitle' => 'A plataforma mais completa para você vender online. Sem complicação, sem mensalidade, sem limites.',
        'hero_btn_primary_text' => 'Criar Minha Loja Grátis',
        'hero_btn_primary_link' => '/pages/register.php',
        'hero_btn_secondary_text' => 'Ver Demonstração',
        'hero_btn_secondary_link' => '#demo',
        'hero_image' => '/assets/images/hero-mockup.png',
        'hero_stats' => json_encode([
            ['value' => '2.500+', 'label' => 'Lojas Criadas'],
            ['value' => 'R$ 15M+', 'label' => 'Em Vendas'],
            ['value' => '4.9/5', 'label' => 'Avaliação']
        ]),
        
        // Features
        'features_title' => 'Tudo que você precisa para vender online',
        'features_subtitle' => 'Recursos poderosos para impulsionar suas vendas',
        'features_items' => json_encode([
            ['icon' => 'solar:shop-bold', 'title' => 'Loja Personalizada', 'description' => 'Template profissional e personalizável'],
            ['icon' => 'solar:card-bold', 'title' => 'Pagamentos Integrados', 'description' => 'PIX, Cartão e Boleto'],
            ['icon' => 'solar:chart-bold', 'title' => 'Dashboard Completo', 'description' => 'Relatórios em tempo real'],
            ['icon' => 'solar:smartphone-bold', 'title' => '100% Responsivo', 'description' => 'Perfeito em qualquer dispositivo'],
            ['icon' => 'solar:shield-check-bold', 'title' => 'SSL Grátis', 'description' => 'Certificado de segurança'],
            ['icon' => 'solar:rocket-bold', 'title' => 'CDN Global', 'description' => 'Carregamento ultra-rápido']
        ]),
        
        // Pricing
        'pricing_title' => 'Planos que cabem no seu bolso',
        'pricing_subtitle' => 'Comece grátis e escale conforme cresce',
        'pricing_plans' => json_encode([]),
        
        // Testimonials
        'testimonials_title' => 'O que nossos clientes dizem',
        'testimonials_subtitle' => 'Histórias reais de sucesso',
        'testimonials_items' => json_encode([]),
        
        // CTA
        'cta_title' => 'Pronto para começar?',
        'cta_subtitle' => 'Crie sua loja em menos de 5 minutos',
        'cta_btn_text' => 'Criar Minha Loja Agora',
        'cta_btn_link' => '/pages/register.php',
        
        // Footer
        'footer_text' => '© 2025 MontaLoja. Todos os direitos reservados.',
        'footer_links' => json_encode([]),
        'footer_social' => json_encode([]),
        
        // Styles
        'style_primary_color' => '#CCA43B',
        'style_secondary_color' => '#1A1A1A',
        'style_accent_color' => '#FFD700',
        'style_bg_color' => '#0A0A0A',
        'style_text_color' => '#FFFFFF',
        'style_font_family' => 'Inter, sans-serif',
        
        // SEO
        'seo_title' => 'MontaLoja - Crie sua Loja Virtual Grátis',
        'seo_description' => 'Plataforma completa para criar sua loja online.',
        'seo_keywords' => 'loja virtual, e-commerce, vender online',
        'seo_og_image' => '/assets/images/og-image.jpg'
    ];
}

/**
 * Upload de imagem para a landing page
 */
function uploadLandingImage(array $file, string $type = 'general'): ?string {
    $uploadDir = __DIR__ . '/../assets/uploads/landing/';
    
    if (!is_dir($uploadDir)) {
        mkdir($uploadDir, 0755, true);
    }
    
    $allowedTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/webp', 'image/svg+xml'];
    
    if (!in_array($file['type'], $allowedTypes)) {
        return ['success' => false, 'error' => 'Tipo de arquivo não permitido'];
    }
    
    $maxSize = 5 * 1024 * 1024; // 5MB
    if ($file['size'] > $maxSize) {
        return ['success' => false, 'error' => 'Arquivo muito grande (máx 5MB)'];
    }
    
    $ext = pathinfo($file['name'], PATHINFO_EXTENSION);
    $filename = $type . '_' . time() . '_' . uniqid() . '.' . $ext;
    $filepath = $uploadDir . $filename;
    
    if (move_uploaded_file($file['tmp_name'], $filepath)) {
        return [
            'success' => true, 
            'path' => '/assets/uploads/landing/' . $filename,
            'filename' => $filename
        ];
    }
    
    return ['success' => false, 'error' => 'Erro ao fazer upload'];
}
