<?php
// includes/intro-welcome.php

if ( ! defined( 'ABSPATH' ) ) { exit; }

/**
 * 1. ENVIAR E-MAIL DE BOAS-VINDAS
 *
 * Mantido inalterado — usado pelo fluxo de onboarding inicial (verificação
 * de email no perfil). Não tem a ver com compras VIP — vê o ponto 4 mais
 * abaixo para o sistema de modal de compra.
 */
function rmbz_send_welcome_email($to_email, $artist_name) {
    $site_name = get_bloginfo('name');
    $subject = '🎉 Bem-vindo à Família 1MZ For Artists!';

    $body = "Olá {$artist_name},\n\n";
    $body .= "Parabéns! O seu e-mail foi confirmado com sucesso. Estamos muito felizes por tê-lo connosco.\n\n";
    $body .= "A 1MZ For Artists é o seu novo quartel-general. Veja o que tem à sua disposição:\n\n";
    $body .= "🎬 Projetos de Videoclipe: Envie a sua música, receba um roteiro e orçamento.\n";
    $body .= "🌍 Distribuição Global: Colocamos as suas faixas no Spotify, Apple Music e TikTok.\n";
    $body .= "💰 Carteira e Royalties: Levante os seus lucros para o seu M-Pesa ou E-Mola.\n\n";
    $body .= "Não perca tempo! Aceda ao seu painel e envie o seu primeiro trabalho.\n\n";
    $body .= "Um abraço,\nA Equipa {$site_name}";

    if ( function_exists('rmbz_build_html_email') ) {
        $html_body = rmbz_build_html_email($body);
        $headers = ['Content-Type: text/html; charset=UTF-8'];
    } else {
        $html_body = $body;
        $headers = [];
    }

    wp_mail($to_email, $subject, $html_body, $headers);
}

/* ============================================================================
 * [1.6.118.60] SISTEMA DE MODAL CELEBRATÓRIO PÓS-COMPRA VIP
 *
 * Disparado pelo hook `rmbz_vip_plan_purchased` (definido no subscription
 * controller). Guarda uma transient com o tipo de evento + plano comprado.
 * Quando o user volta à página /minha-conta/, vê o modal e a transient é
 * consumida.
 *
 * Tipos de evento:
 *   - 'first_vip'      → primeira vez de sempre — texto celebratório fresco
 *   - 'renewed_active' → renovou enquanto activo — NÃO mostra modal
 *                        (o utilizador não passou pela jornada de regresso)
 *   - 'returned'       → voltou a ser VIP após expiração — texto de "bem-vindo
 *                        de volta" + recap de benefícios
 *
 * Tempo de vida da transient: 15 min — janela entre a compra e o redirect
 * da /minha-conta/. Se o utilizador comprar pelo app, depois entrar no site,
 * ainda vê (dentro de 15 min).
 * ============================================================================ */

/**
 * Hook que regista o evento de compra para consumo no próximo page load.
 * Chamado por do_action('rmbz_vip_plan_purchased', $tel, $plan_id, $preco, $event).
 */
function rmbz_vip_congrats_register_purchase( $telemovel, $plan_id, $preco, $event = 'first_vip' ) {
    // 'renewed_active' não mostra modal — utilizador já era VIP, é só estender
    if ( $event === 'renewed_active' ) return;
    if ( empty( $telemovel ) ) return;

    // Obter nome do plano para mostrar no modal
    $plan_name = '';
    if ( function_exists( 'rmbz_api_get_vip_packages' ) ) {
        $packages = rmbz_api_get_vip_packages( 'all' );
        foreach ( (array) $packages as $p ) {
            if ( isset( $p['id'] ) && (string) $p['id'] === (string) $plan_id ) {
                $plan_name = isset( $p['nome'] ) ? (string) $p['nome'] : '';
                break;
            }
        }
    }

    set_transient(
        'rmbz_vip_congrats_' . $telemovel,
        [
            'event'     => $event,
            'plan_id'   => (string) $plan_id,
            'plan_name' => $plan_name,
            'preco'     => (float) $preco,
            'at'        => time(),
        ],
        15 * MINUTE_IN_SECONDS
    );
}
add_action( 'rmbz_vip_plan_purchased', 'rmbz_vip_congrats_register_purchase', 10, 4 );

/**
 * Renderiza o modal celebratório no rodapé da página /minha-conta/ se houver
 * uma transient pendente. Consome (apaga) a transient ao mostrar.
 */
function rmbz_vip_congrats_render_modal() {
    if ( ! function_exists( 'rmbz_get_current_user_telemovel' ) ) return;
    $telemovel = rmbz_get_current_user_telemovel();
    if ( empty( $telemovel ) ) return;

    // Só na página minha-conta (igual ao slider antigo)
    global $post;
    if ( ! is_a( $post, 'WP_Post' ) || ! has_shortcode( $post->post_content, 'rmbz_minha_conta' ) ) return;

    $payload = get_transient( 'rmbz_vip_congrats_' . $telemovel );
    if ( ! is_array( $payload ) || empty( $payload['event'] ) ) return;

    // Consome — só mostra uma vez por compra
    delete_transient( 'rmbz_vip_congrats_' . $telemovel );

    $event     = (string) $payload['event'];
    $plan_name = isset( $payload['plan_name'] ) ? (string) $payload['plan_name'] : '';

    // Decidir textos por evento
    if ( $event === 'returned' ) {
        $emoji   = '👑';
        $title   = 'Bem-vindo de volta ao VIP!';
        $intro   = $plan_name !== ''
            ? sprintf( 'Obrigado por voltares — a tua subscrição <strong>%s</strong> está activa de novo.', esc_html( $plan_name ) )
            : 'Obrigado por voltares — a tua subscrição VIP está activa de novo.';
        $sub_msg = 'Tens novamente acesso a tudo. Aqui vai o que ganhas:';
    } else { // first_vip
        $emoji   = '🎉';
        $title   = 'Bem-vindo ao VIP!';
        $intro   = $plan_name !== ''
            ? sprintf( 'A tua subscrição <strong>%s</strong> está activa! Faz oficialmente parte da plataforma mais avançada para artistas em Moçambique.', esc_html( $plan_name ) )
            : 'A tua subscrição está activa! Faz oficialmente parte da plataforma mais avançada para artistas em Moçambique.';
        $sub_msg = 'Aqui está o que tens à tua disposição:';
    }
    ?>
    <div class="rmbz-vip-congrats-overlay" style="display:flex; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.96); z-index:999999; justify-content:center; align-items:center; padding:20px; box-sizing:border-box;">
        <div style="background:#111; border-radius:16px; max-width:480px; width:100%; border:2px solid #f0b90b; box-shadow: 0 20px 60px rgba(240, 185, 11, 0.25); overflow:hidden; position:relative;">

            <!-- SLIDE 1 — Parabéns / Bem-vindo de volta -->
            <div id="rmbz-vip-slide-1" class="rmbz-vip-slide" style="padding:36px 30px; text-align:center;">
                <div style="font-size:60px; margin-bottom:12px;"><?php echo $emoji; ?></div>
                <h2 style="color:#f0b90b; margin:0 0 12px 0; font-size:22px; font-weight:900;"><?php echo esc_html( $title ); ?></h2>
                <p style="color:#ccc; font-size:14px; line-height:1.6; margin:0 0 6px 0;"><?php echo $intro; ?></p>
                <p style="color:#aaa; font-size:13px; line-height:1.6; margin:14px 0 0 0;"><?php echo esc_html( $sub_msg ); ?></p>
                <button type="button" onclick="rmbzVipCongratsGo(2)" style="background:#f0b90b; color:#000; width:100%; padding:14px; border-radius:8px; font-weight:bold; border:none; cursor:pointer; margin-top:22px; font-size:14px;">Ver benefícios ➔</button>
            </div>

            <!-- SLIDE 2 — Videoclipes -->
            <div id="rmbz-vip-slide-2" class="rmbz-vip-slide" style="padding:36px 30px; text-align:center; display:none;">
                <div style="font-size:50px; margin-bottom:12px;">🎬</div>
                <h2 style="color:#fff; margin:0 0 12px 0; font-size:20px;">Projetos & Videoclipes</h2>
                <p style="color:#aaa; font-size:14px; line-height:1.6; margin:0;">Envia as tuas faixas e nós criamos o roteiro, orçamento e abrimos um chat directo com a nossa equipa de produção. Pagas a produção do teu bolso ou directo da carteira.</p>
                <button type="button" onclick="rmbzVipCongratsGo(3)" style="background:#f0b90b; color:#000; width:100%; padding:14px; border-radius:8px; font-weight:bold; border:none; cursor:pointer; margin-top:22px; font-size:14px;">Próximo ➔</button>
            </div>

            <!-- SLIDE 3 — Distribuição -->
            <div id="rmbz-vip-slide-3" class="rmbz-vip-slide" style="padding:36px 30px; text-align:center; display:none;">
                <div style="font-size:50px; margin-bottom:12px;">🌍</div>
                <h2 style="color:#fff; margin:0 0 12px 0; font-size:20px;">Distribuição Global</h2>
                <p style="color:#aaa; font-size:14px; line-height:1.6; margin:0;">Distribuímos a tua música para Spotify, Apple Music, TikTok, YouTube Music e mais — recolhemos os teus royalties em USD e convertemos para MT.</p>
                <button type="button" onclick="rmbzVipCongratsGo(4)" style="background:#f0b90b; color:#000; width:100%; padding:14px; border-radius:8px; font-weight:bold; border:none; cursor:pointer; margin-top:22px; font-size:14px;">Próximo ➔</button>
            </div>

            <!-- SLIDE 4 — Carteira -->
            <div id="rmbz-vip-slide-4" class="rmbz-vip-slide" style="padding:36px 30px; text-align:center; display:none;">
                <div style="font-size:50px; margin-bottom:12px;">💸</div>
                <h2 style="color:#fff; margin:0 0 12px 0; font-size:20px;">Carteira & M-Pesa</h2>
                <p style="color:#aaa; font-size:14px; line-height:1.6; margin:0;">Todos os teus lucros caem na tua Carteira Principal. Levanta directo para o teu M-Pesa ou E-Mola — sem burocracia.</p>
                <button type="button" onclick="rmbzVipCongratsClose()" style="background:#2ecc71; color:#fff; width:100%; padding:14px; border-radius:8px; font-weight:bold; border:none; cursor:pointer; margin-top:22px; font-size:15px;">Entrar no Painel 🚀</button>
            </div>

            <!-- DOTS -->
            <div style="text-align:center; padding:0 0 18px 0;">
                <span id="rmbz-vip-dot-1" class="rmbz-vip-dot" style="height:8px; width:8px; background:#f0b90b; border-radius:50%; display:inline-block; margin:0 3px;"></span>
                <span id="rmbz-vip-dot-2" class="rmbz-vip-dot" style="height:8px; width:8px; background:#333; border-radius:50%; display:inline-block; margin:0 3px;"></span>
                <span id="rmbz-vip-dot-3" class="rmbz-vip-dot" style="height:8px; width:8px; background:#333; border-radius:50%; display:inline-block; margin:0 3px;"></span>
                <span id="rmbz-vip-dot-4" class="rmbz-vip-dot" style="height:8px; width:8px; background:#333; border-radius:50%; display:inline-block; margin:0 3px;"></span>
            </div>

        </div>
    </div>

    <script>
    (function() {
        // Guard contra duplo bind (segurança defensiva — se o footer hook
        // for chamado 2x por algum motivo, não duplicamos handlers)
        if (window.__rmbzVipCongratsInit) return;
        window.__rmbzVipCongratsInit = true;

        window.rmbzVipCongratsGo = function(slideNumber) {
            document.querySelectorAll('.rmbz-vip-slide').forEach(function(el) { el.style.display = 'none'; });
            document.querySelectorAll('.rmbz-vip-dot').forEach(function(el) { el.style.background = '#333'; });
            var slide = document.getElementById('rmbz-vip-slide-' + slideNumber);
            var dot   = document.getElementById('rmbz-vip-dot-' + slideNumber);
            if (slide) slide.style.display = 'block';
            if (dot)   dot.style.background = '#f0b90b';
        };
        window.rmbzVipCongratsClose = function() {
            var overlay = document.querySelector('.rmbz-vip-congrats-overlay');
            if (overlay) overlay.style.display = 'none';
        };
    })();
    </script>
    <?php
}
// Auto-injecção no rodapé do WordPress
add_action( 'wp_footer', 'rmbz_vip_congrats_render_modal' );

/* ============================================================================
 * [LEGADO 1.6.118.60] As funções abaixo estão mantidas para compatibilidade
 * com chamadas antigas, mas o slider que mostravam (sempre visível ao 1º
 * login VIP, marcado como visto for-ever) foi substituído pelo sistema de
 * modal pós-compra acima — disparado pelo hook real de compra.
 *
 * Mantidas:
 *   - rmbz_mark_welcome_seen — handler do POST que persiste o flag legado
 *   - hook admin_post — para não dar 404 se algum browser ainda fizer o POST
 *
 * Removida:
 *   - rmbz_auto_inject_welcome_slider — substituída por rmbz_vip_congrats_render_modal
 * ============================================================================ */

function rmbz_mark_welcome_seen() {
    if ( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], 'rmbz_welcome_nonce' ) ) wp_die('Falha de segurança.');
    if ( function_exists('rmbz_get_current_user_telemovel') ) {
        $tel = rmbz_get_current_user_telemovel();
        update_option('rmbz_slider_v1_seen_' . $tel, 'yes');
    }
    wp_redirect(wp_get_referer() ? wp_get_referer() : home_url('/minha-conta/'));
    exit;
}
add_action('admin_post_rmbz_mark_welcome_seen', 'rmbz_mark_welcome_seen');
add_action('admin_post_nopriv_rmbz_mark_welcome_seen', 'rmbz_mark_welcome_seen');
