<?php
// includes/functions-setup.php

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

/**
 * ==========================================================================
 * 1. INSTALADOR WIZARD (Blindagem Completa - Prevenção de Erros Futuros)
 * ==========================================================================
 */
function rmbz_criar_tabelas() {
    global $wpdb;
    
    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    $charset_collate = $wpdb->get_charset_collate();
    $sql = [];

    // 1. Carteiras
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_wallets (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        user_telemovel varchar(20) NOT NULL,
        user_email varchar(100) NOT NULL,
        user_nome varchar(100) NOT NULL,
        user_provincia varchar(100),
        user_pin varchar(255) NOT NULL,
        balance decimal(10,2) DEFAULT 0.00 NOT NULL,
        is_banned tinyint(1) DEFAULT 0 NOT NULL,
        is_creator tinyint(1) DEFAULT 0 NOT NULL,
        referred_by varchar(20),
        extra_data longtext,
        last_updated datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY  (id),
        UNIQUE KEY user_telemovel (user_telemovel)
    ) $charset_collate;";

    // 2. Transações
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_wallet_transactions (
        transaction_id bigint(20) NOT NULL AUTO_INCREMENT,
        user_telemovel varchar(20) NOT NULL,
        amount decimal(10,2) NOT NULL,
        type varchar(50) NOT NULL,
        reference_id bigint(20),
        project_id bigint(20),
        details text,
        is_unlocked tinyint(1) DEFAULT 1 NOT NULL,
        unlock_date datetime,
        transaction_date datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY  (transaction_id)
    ) $charset_collate;";

    // 3. Subscrições
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_subscriptions (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        user_telemovel varchar(20) NOT NULL,
        start_date datetime NOT NULL,
        end_date datetime NOT NULL,
        last_payment_amount decimal(10,2) DEFAULT 0.00 NOT NULL,
        status varchar(20) DEFAULT 'active' NOT NULL,
        PRIMARY KEY  (id)
    ) $charset_collate;";

    // 4. Submissões
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_artist_submissions (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        artist_telemovel varchar(20) NOT NULL,
        music_title varchar(255) NOT NULL,
        music_file_url varchar(255) NOT NULL,
        music_genre varchar(50) NOT NULL,
        scenario_type varchar(50) NOT NULL,
        review_status varchar(20) DEFAULT 'pendente' NOT NULL,
        rejection_reason text,
        extra_data longtext,
        submission_date datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY  (id)
    ) $charset_collate;";

    // 5. Projetos / Videoclipes
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_artist_projects (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        submission_id bigint(20),
        artist_telemovel varchar(20) NOT NULL,
        project_title varchar(255),
        music_producer varchar(100),
        project_pitch text,
        demo_mp3_url varchar(255),
        project_link_opt varchar(255),
        scenario_type varchar(50) NOT NULL,
        scenario_cost decimal(10,2) DEFAULT 0.00 NOT NULL,
        scenario_details longtext,
        amount_paid decimal(10,2) DEFAULT 0.00 NOT NULL,
        is_paid tinyint(1) DEFAULT 0 NOT NULL,
        script_content longtext,
        production_status varchar(50) DEFAULT 'pre-production' NOT NULL,
        artist_feedback longtext,
        final_video_url varchar(255),
        youtube_url varchar(255),
        facebook_url varchar(255),
        release_date datetime,
        extra_data longtext,
        contract_date datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY  (id)
    ) $charset_collate;";

    // 6. Depósitos
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_deposit_requests (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        user_telemovel varchar(20) NOT NULL,
        amount decimal(10,2) NOT NULL,
        status varchar(20) DEFAULT 'pendente' NOT NULL,
        payment_method varchar(50) NOT NULL,
        transaction_id varchar(100) NOT NULL,
        proof_image varchar(255) NOT NULL,
        sender_phone varchar(20) NOT NULL,
        request_date datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        processed_date datetime,
        admin_notes text,
        source_platform varchar(20) DEFAULT 'site' NOT NULL,
        is_first_deposit tinyint(1) DEFAULT 0 NOT NULL,
        PRIMARY KEY  (id),
        KEY idx_source_platform (source_platform),
        KEY idx_first_deposit (is_first_deposit, status)
    ) $charset_collate;";

    // 7. Levantamentos
    // [FEAT 1.5.15] Nova coluna `source` registam se o dinheiro veio da
    // carteira (MT local) ou dos royalties (USD convertido para MT no pedido).
    // Permite mostrar ao artista e ao admin a origem no histórico.
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_withdrawal_requests (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        user_telemovel varchar(20) NOT NULL,
        amount decimal(10,2) NOT NULL,
        source varchar(20) DEFAULT 'wallet' NOT NULL,
        exchange_rate decimal(8,4) DEFAULT NULL,
        status varchar(20) DEFAULT 'pendente' NOT NULL,
        payment_method varchar(50) NOT NULL,
        payment_details varchar(255) NOT NULL,
        request_date datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        processed_date datetime,
        admin_notes text,
        PRIMARY KEY  (id),
        KEY idx_source (source)
    ) $charset_collate;";

    // 8. Lançamentos
    //
    // [BUG-SCHEMA3] Coluna list completa, incluindo:
    //   - extra_data (added 2026-04 — usada por release_type_manual etc.)
    //   - rejection_*, takedown_*, live_at, submitted_at (admin workflow)
    //   - returned_at, return_deadline, return_problems, return_count
    //     (return-to-artist workflow, antes só criadas via patch que falhava
    //      silenciosamente em algumas instalações)
    //
    // dbDelta adiciona automaticamente as colunas em falta sem perder dados,
    // desde que a versão `rmbz_db_version` seja bumpada.
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_distro_releases (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        artist_telemovel varchar(20) NOT NULL,
        title varchar(255) NOT NULL,
        release_type varchar(20) DEFAULT 'single',
        cover_image varchar(255),
        language varchar(50),
        primary_genre varchar(50),
        release_date date,
        label_name varchar(100),
        recording_location varchar(100),
        upc_code varchar(50),
        status varchar(20) DEFAULT 'incomplete' NOT NULL,
        extra_data longtext,
        rejection_reason varchar(50) DEFAULT NULL,
        rejection_note text,
        takedown_requested tinyint(1) DEFAULT 0 NOT NULL,
        takedown_reason text,
        live_at datetime DEFAULT NULL,
        submitted_at datetime DEFAULT NULL,
        returned_at datetime DEFAULT NULL,
        return_deadline datetime DEFAULT NULL,
        return_problems longtext DEFAULT NULL,
        return_count int NOT NULL DEFAULT 0,
        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY  (id),
        KEY idx_status (status),
        KEY idx_artist_status (artist_telemovel, status)
    ) $charset_collate;";

    // 9. Faixas
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_distro_tracks (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        release_id bigint(20) NOT NULL,
        track_title varchar(255) NOT NULL,
        feat_artists varchar(255),
        audio_url varchar(255) NOT NULL,
        isrc_code varchar(50),
        is_explicit tinyint(1) DEFAULT 0 NOT NULL,
        track_order int(11) DEFAULT 1 NOT NULL,
        extra_data longtext,
        PRIMARY KEY  (id),
        KEY idx_release (release_id),
        KEY idx_isrc (isrc_code)
    ) $charset_collate;";

    // 10. Ganhos / Stats
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_distro_stats (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        artist_telemovel varchar(20) NOT NULL,
        total_streams bigint(20) DEFAULT 0 NOT NULL,
        total_earnings decimal(10,2) DEFAULT 0.00 NOT NULL,
        withdrawn_amount decimal(10,2) DEFAULT 0.00 NOT NULL,
        current_balance decimal(10,2) DEFAULT 0.00 NOT NULL,
        last_updated datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY  (id)
    ) $charset_collate;";

    // 11. Logs de E-mail
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_email_logs (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        recipient_email varchar(100) NOT NULL,
        subject varchar(255) NOT NULL,
        body longtext NOT NULL,
        sent_date datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        status varchar(20) DEFAULT 'sucesso' NOT NULL,
        is_read tinyint(1) DEFAULT 0 NOT NULL,
        is_cleared tinyint(1) DEFAULT 0 NOT NULL,
        audience varchar(12) DEFAULT 'artist' NOT NULL,
        PRIMARY KEY  (id)
    ) $charset_collate;";

    // 12. Ganhos Não Reclamados
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_distro_unclaimed (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        isrc varchar(50),
        isrc_code varchar(50),
        upc_code varchar(50),
        artist_name varchar(255),
        track_title varchar(255),
        amount decimal(10,4) NOT NULL,
        report_date date,
        status varchar(20) DEFAULT 'pending' NOT NULL,
        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY  (id)
    ) $charset_collate;";
    
    // 13. Tabela de Cupões
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_coupons (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        coupon_code varchar(50) NOT NULL,
        reward_type varchar(50) NOT NULL,
        reward_value decimal(10,2) NOT NULL,
        usage_limit int(11) DEFAULT 0,
        used_count int(11) DEFAULT 0,
        expiry_date datetime DEFAULT NULL,
        status varchar(20) DEFAULT 'ativo',
        extra_data text DEFAULT NULL,
        created_at datetime DEFAULT CURRENT_TIMESTAMP,
        PRIMARY KEY  (id),
        UNIQUE KEY coupon_code (coupon_code)
    ) $charset_collate;";

    // 14. Tabela de Registo de Uso de Cupões
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_coupon_usage (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        coupon_id mediumint(9) NOT NULL,
        user_telemovel varchar(20) NOT NULL,
        used_at datetime DEFAULT CURRENT_TIMESTAMP,
        PRIMARY KEY  (id),
        UNIQUE KEY user_coupon (coupon_id, user_telemovel)
    ) $charset_collate;";

    // 15. [FEAT 1.5.22] Audit log de levantamentos (Guarda-Costas)
    // Regista TODAS as ações sobre um pedido de levantamento: criação,
    // visualizações, marcações de checklist, notas, aprovações, rejeições.
    // Imutável (só insere, nunca atualiza/delete via código). Para futura
    // prova legal e investigações de fraude.
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_withdrawal_audit_log (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        withdrawal_id bigint(20) NOT NULL,
        actor_login varchar(60) DEFAULT NULL,
        actor_ip varchar(45) DEFAULT NULL,
        action varchar(40) NOT NULL,
        details text,
        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY  (id),
        KEY idx_withdrawal (withdrawal_id),
        KEY idx_action (action),
        KEY idx_created (created_at)
    ) $charset_collate;";

    // 16. [FEAT 1.5.22] Estado da revisão (Guarda-Costas)
    // Guarda o estado atual da checklist + notas internas + score de risco
    // computado por pedido. 1 linha por pedido (criada lazy na primeira
    // abertura). Isto é o "estado mutável", o audit_log é o "histórico imutável".
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_withdrawal_review (
        withdrawal_id bigint(20) NOT NULL,
        checklist_json longtext,
        admin_notes text,
        risk_score tinyint UNSIGNED DEFAULT 0 NOT NULL,
        risk_flags_json longtext,
        first_viewed_at datetime DEFAULT NULL,
        last_viewed_by varchar(60) DEFAULT NULL,
        last_updated datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY  (withdrawal_id)
    ) $charset_collate;";

    // [1.5.131] Sistema de Convites/Referrals.
    // Estado: pending = amigo registou-se mas ainda falta aprovar 1º deposit
    //                   E comprar plano VIP. completed = comissão paga.
    //                   rejected = invalidado (ex: amigo apagou conta).
    // Trigger: comissão só é creditada quando AMBAS as condições se cumprem
    //          (1º depósito aprovado + compra VIP). Implementação em
    //          includes/referral-system.php.
    $sql[] = "CREATE TABLE {$wpdb->prefix}rmbz_referral_log (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        referrer_telemovel varchar(20) NOT NULL,
        buyer_telemovel varchar(20) NOT NULL,
        order_id varchar(100) DEFAULT NULL,
        rifa_id bigint(20) DEFAULT NULL,
        total_pedido decimal(10,2) DEFAULT 0.00 NOT NULL,
        commission_amount decimal(10,2) DEFAULT 0.00 NOT NULL,
        commission_type varchar(20) DEFAULT 'mt' NOT NULL,
        commission_days int DEFAULT 0 NOT NULL,
        status varchar(20) DEFAULT 'pending' NOT NULL,
        reason text,
        first_deposit_approved_at datetime DEFAULT NULL,
        plan_purchased_at datetime DEFAULT NULL,
        completed_at datetime DEFAULT NULL,
        log_date datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY  (id),
        KEY referrer_idx (referrer_telemovel),
        KEY buyer_idx (buyer_telemovel),
        KEY status_idx (status)
    ) $charset_collate;";

    // Dispara a criação e as novas atualizações sem apagar nada!
    foreach ( $sql as $query ) { dbDelta( $query ); }

    // [FEAT 1.5.22] Versão 2.1.4: adiciona tabelas audit_log e review.
    // [FEAT 1.5.35] Versão 2.1.5: adiciona coluna exchange_rate em
    //                rmbz_withdrawal_requests para reverter pedidos de
    //                royalties à fonte original (USD) em caso de rejeição.
    // [1.5.131] Versão 2.1.6: adiciona rmbz_referral_log (em falta) e novos
    //                campos de tracking duplo (first_deposit + plan_purchased).
    update_option( 'rmbz_db_version', '2.1.6' );
}

/**
 * ==========================================================================
 * 2. VERIFICADOR INTELIGENTE DE SAÚDE DA BASE DE DADOS (Tabelas Desaparecidas)
 * ==========================================================================
 */
function rmbz_verificar_tabelas_em_falta() {
    global $wpdb;
    $tabelas = [
        $wpdb->prefix . 'rmbz_wallets',
        $wpdb->prefix . 'rmbz_wallet_transactions',
        $wpdb->prefix . 'rmbz_subscriptions',
        $wpdb->prefix . 'rmbz_artist_submissions',
        $wpdb->prefix . 'rmbz_artist_projects',
        $wpdb->prefix . 'rmbz_deposit_requests',
        $wpdb->prefix . 'rmbz_withdrawal_requests',
        $wpdb->prefix . 'rmbz_distro_releases',
        $wpdb->prefix . 'rmbz_distro_tracks',
        $wpdb->prefix . 'rmbz_distro_stats',
        $wpdb->prefix . 'rmbz_email_logs',
        $wpdb->prefix . 'rmbz_distro_unclaimed',
        $wpdb->prefix . 'rmbz_coupons',
        $wpdb->prefix . 'rmbz_coupon_usage',
        $wpdb->prefix . 'rmbz_referral_log'
    ];

    $em_falta = [];
    foreach ( $tabelas as $tabela ) {
        if ( $wpdb->get_var("SHOW TABLES LIKE '$tabela'") != $tabela ) {
            $em_falta[] = $tabela;
        }
    }
    return $em_falta;
}

/**
 * ==========================================================================
 * 3. EXIBIR AVISO DE CORREÇÃO (ADMIN NOTICE PARA TABELAS EM FALTA)
 * ==========================================================================
 */
function rmbz_aviso_tabelas_em_falta() {
    if ( ! current_user_can( 'manage_options' ) ) return;

    $tabelas_em_falta = rmbz_verificar_tabelas_em_falta();

    if ( ! empty( $tabelas_em_falta ) ) {
        $url_corrigir = wp_nonce_url( admin_url( 'admin-post.php?action=onemz_run_db_update' ), 'onemz_db_update_nonce' );
        
        echo '<div class="notice notice-error" style="border-left-color: #e74c3c; padding: 15px; background: #fff;">';
        echo '<h3 style="margin-top:0; color:#e74c3c; display:flex; align-items:center; gap:8px;"><span style="font-size:24px;">⚠️</span> 1MZ For Artists: Banco de Dados Incompleto</h3>';
        echo '<p style="font-size:14px;">O sistema detetou que <strong>' . count($tabelas_em_falta) . ' tabela(s)</strong> essenciais não existem na sua base de dados.</p>';
        echo '<p style="color:#666; font-size:12px; background:#f9f9f9; padding:8px; border-radius:4px; border:1px solid #eee;"><strong>Falta:</strong> <em>' . implode(', ', $tabelas_em_falta) . '</em></p>';
        echo '<p style="margin-top:15px;"><a href="' . esc_url($url_corrigir) . '" class="button button-primary" style="background:#e74c3c; border-color:#c0392b; padding:4px 20px; text-shadow:none;">Corrigir e Instalar Banco de Dados Agora</a></p>';
        echo '</div>';
    }
    
    if ( isset($_GET['db_updated']) && $_GET['db_updated'] == 'true' ) {
        echo '<div class="notice notice-success is-dismissible" style="border-left-color: #2ecc71;">';
        echo '<p style="font-size:14px;">✅ <strong>Excelente!</strong> Todas as tabelas do 1MZ For Artists foram instaladas/corrigidas com sucesso! A plataforma está pronta a operar.</p>';
        echo '</div>';
    }
}
add_action( 'admin_notices', 'rmbz_aviso_tabelas_em_falta' );

/**
 * ==========================================================================
 * 4. ATUALIZADOR SILENCIOSO (Injeta colunas em falta automaticamente)
 * ==========================================================================
 */
function rmbz_auto_update_schema() {
    $version = get_option('rmbz_db_version', '1.0.0');

    // [FEAT 1.5.22] Bump 2.1.3 → 2.1.4 para criar as tabelas
    // rmbz_withdrawal_audit_log e rmbz_withdrawal_review do Guarda-Costas.
    // [FEAT 1.5.35] Bump 2.1.4 → 2.1.5 para adicionar coluna exchange_rate
    // em rmbz_withdrawal_requests (reversão correcta de pedidos de royalties).
    if ( version_compare($version, '2.1.5', '<') ) {
        rmbz_criar_tabelas();
    }

    // [1.6.118] Bump 2.1.5 → 2.1.6 — adicionar source_platform e
    // is_first_deposit em rmbz_deposit_requests.
    //
    // [1.6.118.8] **BUG FIX CRÍTICO**: a versão 2.1.6 já era usada por
    // outro update anterior (linha 340 em rmbz_criar_tabelas). Quando
    // o plugin foi actualizado para esta versão, `rmbz_db_version` já
    // estava em '2.1.6' → o `version_compare < 2.1.6` retornava FALSE
    // → a migration das 2 colunas NÃO CORREU → INSERTs ficavam sem
    // `is_first_deposit=1` → CRON antigo apagava em 1h.
    // Solução: bump para 2.1.7 e correr migration mesmo se já estava
    // em 2.1.6.
    if ( version_compare($version, '2.1.7', '<') ) {
        global $wpdb;
        $t = $wpdb->prefix . 'rmbz_deposit_requests';

        // Coluna source_platform
        $col_exists = $wpdb->get_var(
            "SHOW COLUMNS FROM $t LIKE 'source_platform'"
        );
        if ( ! $col_exists ) {
            $wpdb->query(
                "ALTER TABLE $t ADD COLUMN source_platform varchar(20) DEFAULT 'site' NOT NULL,
                 ADD INDEX idx_source_platform (source_platform)"
            );
        }

        // Coluna is_first_deposit
        $col_exists = $wpdb->get_var(
            "SHOW COLUMNS FROM $t LIKE 'is_first_deposit'"
        );
        if ( ! $col_exists ) {
            $wpdb->query(
                "ALTER TABLE $t ADD COLUMN is_first_deposit tinyint(1) DEFAULT 0 NOT NULL,
                 ADD INDEX idx_first_deposit (is_first_deposit, status)"
            );
        }

        // [1.6.118.8] Backfill: marcar como is_first_deposit=1 os
        // depósitos pendentes que parecem ser "primeiros" (1 só pendente
        // por user, sem outros aprovados, e user existe sem subscrição).
        // Defensivo: só corre se temos coluna criada.
        $col_check = $wpdb->get_var( "SHOW COLUMNS FROM $t LIKE 'is_first_deposit'" );
        if ( $col_check ) {
            $wpdb->query(
                "UPDATE $t d
                 SET is_first_deposit = 1
                 WHERE status = 'pendente'
                   AND is_first_deposit = 0
                   AND NOT EXISTS (
                       SELECT 1 FROM $t d2
                       WHERE d2.user_telemovel = d.user_telemovel
                         AND d2.status = 'aprovado'
                   )"
            );
        }

        update_option( 'rmbz_db_version', '2.1.7' );
    }
}
add_action('admin_init', 'rmbz_auto_update_schema');

/**
 * [1.6.118] Helper: este é o primeiro depósito deste user?
 *
 * "Primeiro" = não tem outros depósitos no BD (aprovado, rejeitado ou
 * pendente, qualquer status). Apenas conta depósitos.
 *
 * Critério adicional: a regra de "auto-delete em 24h" só se aplica a
 * users registados depois desta release (definir flag em
 * `rmbz_db_version >= 2.1.6` = users novos depois da migration).
 *
 * @param string $user_telemovel
 * @return bool true se nunca teve depósito anterior
 */
function rmbz_is_first_deposit_for_user( $user_telemovel ) {
    if ( empty( $user_telemovel ) ) return false;
    global $wpdb;
    $t = $wpdb->prefix . 'rmbz_deposit_requests';
    $count = (int) $wpdb->get_var( $wpdb->prepare(
        "SELECT COUNT(*) FROM $t WHERE user_telemovel = %s",
        $user_telemovel
    ) );
    return $count === 0;
}


/**
 * [1.6.118] Helper: este user é "novo" — registado depois desta release?
 *
 * Usamos o meta `rmbz_first_deposit_required` que é set no momento do
 * registo (em form-handler e auth-controller). Users antigos não têm
 * este meta, então NUNCA são apagados automaticamente.
 *
 * @param string $user_telemovel
 * @return bool
 */
function rmbz_user_is_first_deposit_enforced( $user_telemovel ) {
    if ( empty( $user_telemovel ) ) return false;
    $user = get_user_by( 'login', $user_telemovel );
    if ( ! $user ) return false;
    return (bool) get_user_meta( $user->ID, 'rmbz_first_deposit_required', true );
}
