<?php

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

add_shortcode('painel_artista', 'imz_render_artist_dashboard_shortcode');

function imz_render_artist_dashboard_shortcode() {
    $account_logged_in = function_exists('imz_rmbz_is_artist_logged_in')
        ? imz_rmbz_is_artist_logged_in()
        : is_user_logged_in();
    if (!$account_logged_in) {
        ob_start();
        ?>
        <div class="imz-form-container imz-login-prompt-container"> <h2>Acesso Restrito ao Painel</h2>
            <p class="imz-form-description">
                Entra com a tua conta 1MZ For Artists para aceder às músicas, ganhos e ferramentas do artista.
            </p>
            <div class="imz-login-prompt-buttons">
                <a href="<?php echo esc_url(function_exists('imz_rmbz_account_url') ? imz_rmbz_account_url() : wp_login_url(get_permalink())); ?>" class="imz-botao-principal">Entrar na conta 1MZ</a>
            </div>
        </div>
        <?php
        return ob_get_clean();
    }

    if ( defined( 'RMBZ_ARTISTS_EMBEDDED' )
         && function_exists( 'rmbz_get_current_user_telemovel' )
         && function_exists( 'rmbz_partnership_has_access' ) ) {
        $partnership_phone = (string) rmbz_get_current_user_telemovel();
        if ( ! rmbz_partnership_has_access( $partnership_phone ) ) {
            return function_exists( 'rmbz_render_partnership_program' )
                ? rmbz_render_partnership_program( $partnership_phone )
                : '<div class="imz-message imz-message-warning">O acesso a Músicas &amp; Ganhos requer aprovação no Programa de Parceria 1MZ.</div>';
        }
    }

    // =========================================================================
    // 1. BUSCA DE DADOS (DATA FETCHING)
    // =========================================================================
    global $wpdb;
    $artist_id = function_exists('imz_get_current_artist_user_id') ? imz_get_current_artist_user_id() : get_current_user_id();
    if (!$artist_id) {
        return '<div class="imz-message imz-message-error">Não foi possível associar esta conta ao painel de artista. Atualiza a página ou contacta o suporte.</div>';
    }
    $is_pro = function_exists('imz_is_artist_pro') && imz_is_artist_pro($artist_id);
    $account_status = function_exists('imz_rmbz_artist_account_status') ? imz_rmbz_artist_account_status($artist_id) : get_user_meta($artist_id, '_artist_account_status', true);

    // CORRECÇÃO: Verificar existência da tabela UMA VEZ em vez de 5x
    $purchases_table = $wpdb->prefix . 'imz_purchases';
    $purchases_table_exists = ($wpdb->get_var($wpdb->prepare('SHOW TABLES LIKE %s', $purchases_table)) == $purchases_table);
    $strikes = imz_get_valid_artist_strikes($artist_id);
    $payout_method = get_user_meta($artist_id, '_payout_method', true);

    // No módulo integrado, o Art Track é a fonte de propriedade. post_author
    // continua sincronizado por compatibilidade, mas não decide o catálogo.
    if ( defined( 'RMBZ_ARTISTS_EMBEDDED' ) && function_exists( 'rmbz_artists_get_art_track_for_user' ) ) {
        $art_track_id = rmbz_artists_get_art_track_for_user( $artist_id );
        $claimed_musics_args = [
            'post_type'      => 'post',
            'posts_per_page' => -1,
            'post_status'    => 'publish',
            'meta_query'     => [
                [ 'key' => '_imz_artista_id', 'value' => $art_track_id ?: -1, 'compare' => '=', 'type' => 'NUMERIC' ],
            ],
        ];
    } else {
        $claimed_musics_args = [
            'post_type' => 'post', 'author' => $artist_id, 'posts_per_page' => -1,
            'meta_key' => '_is_claimed', 'meta_value' => 'yes', 'post_status' => 'publish'
        ];
    }
    $claimed_musics = new WP_Query($claimed_musics_args);
    if ( defined( 'RMBZ_ARTISTS_EMBEDDED' ) && function_exists( 'rmbz_site_publication_is_visible' ) ) {
        $claimed_musics->posts = array_values( array_filter( $claimed_musics->posts, static function( $music ) {
            return rmbz_site_publication_is_visible( $music->ID );
        } ) );
        $claimed_musics->post_count = count( $claimed_musics->posts );
        $claimed_musics->found_posts = $claimed_musics->post_count;
        $claimed_musics->max_num_pages = $claimed_musics->post_count > 0 ? 1 : 0;
    }

    // --- LÓGICA DE ESTATÍSTICAS (ATUALIZADA PARA SQL) ---
    $total_downloads = 0;
    $total_boosts = 0;
    $music_ids = [];
    $region_counts = [];

    // Stats de Downloads
    $downloads_today_count = 0;
    $most_downloaded_monthly_id = null;

    // Stats de Impulsionamentos
    $boosts_today_count = 0;
    $most_boosted_monthly_id = null;

    if ($claimed_musics->have_posts()) {
        $music_ids = wp_list_pluck($claimed_musics->posts, 'ID');

        // Total de downloads (baseado no contador do post, que é atualizado a cada download)
        foreach ($music_ids as $music_id) {
            $total_downloads += (int) get_post_meta($music_id, '_imz_download_count', true);
        }

        if (!empty($music_ids)) {
            // --- OTIMIZAÇÃO: Cálculos de Downloads e Províncias via SQL (Tabela imz_analytics) ---
            $analytics_table = $wpdb->prefix . 'imz_analytics';
            $ids_placeholder = implode(',', array_fill(0, count($music_ids), '%d')); // Prepara IDs para query segura

            // 1. Downloads de Hoje
            $downloads_today_query = "SELECT COUNT(*) FROM $analytics_table 
                                      WHERE music_id IN ($ids_placeholder) 
                                      AND DATE(download_date) = CURDATE()";
            $downloads_today_count = $wpdb->get_var($wpdb->prepare($downloads_today_query, $music_ids));

            // 2. Top Províncias (Agrupado)
            $regions_query = "SELECT region, COUNT(*) as count FROM $analytics_table 
                              WHERE music_id IN ($ids_placeholder) 
                              AND region != '' AND region != 'N/A' 
                              GROUP BY region 
                              ORDER BY count DESC 
                              LIMIT 5";
            $regions_results = $wpdb->get_results($wpdb->prepare($regions_query, $music_ids));
            
            foreach ($regions_results as $row) {
                $region_counts[$row->region] = $row->count;
            }

            // 3. Música Mais Popular (Últimos 30 Dias)
            $popular_query = "SELECT music_id FROM $analytics_table 
                              WHERE music_id IN ($ids_placeholder) 
                              AND download_date > DATE_SUB(NOW(), INTERVAL 30 DAY) 
                              GROUP BY music_id 
                              ORDER BY COUNT(*) DESC 
                              LIMIT 1";
            $most_downloaded_monthly_id = $wpdb->get_var($wpdb->prepare($popular_query, $music_ids));
            // --- FIM DA OTIMIZAÇÃO ANALYTICS ---


            // --- Cálculos de Impulsionamentos (Mantém CPT por enquanto) ---
            $boosts_query = new WP_Query([
                'post_type' => 'impulsionamento',
                'post_status' => 'publish', 'posts_per_page' => -1,
                'meta_query' => [
                    ['key' => 'post_id_original', 'value' => $music_ids, 'compare' => 'IN'],
                    ['key' => 'status', 'value' => 'aprovado']
                ],
                'date_query' => [['after' => '30 days ago', 'inclusive' => true, 'column' => 'post_date']]
            ]);

            $boosts_monthly_map = [];

            if ($boosts_query->have_posts()) {
                 $today_date = date('Y-m-d');
                 while ($boosts_query->have_posts()) {
                    $boosts_query->the_post();
                    $m_id = get_post_meta(get_the_ID(), 'post_id_original', true);

                    if (!isset($boosts_monthly_map[$m_id])) $boosts_monthly_map[$m_id] = 0;
                    $boosts_monthly_map[$m_id]++;

                    if (get_the_date('Y-m-d') === $today_date) {
                        $boosts_today_count++;
                    }
                }
                wp_reset_postdata();

                if (!empty($boosts_monthly_map)) {
                    arsort($boosts_monthly_map);
                    $most_boosted_monthly_id = key($boosts_monthly_map);
                }
            }
             // Query separada para o total de impulsionamentos de sempre
            $total_boosts_query = new WP_Query([
                'post_type' => 'impulsionamento', 'post_status' => 'publish', 'posts_per_page' => -1,
                'meta_query' => [['key' => 'post_id_original', 'value' => $music_ids, 'compare' => 'IN'], ['key' => 'status', 'value' => 'aprovado']]
            ]);
            $total_boosts = $total_boosts_query->found_posts;
        }
        // Reset post data for the main query after finishing calculations
        wp_reset_postdata();
    }
    // --- FIM DA LÓGICA DE ESTATÍSTICAS ---

    // --- LÓGICA DE GANHOS ---
    $total_boost_earnings = 0; // Ganhos de Impulsionamentos (para saque)
    if ($claimed_musics->have_posts()) {
        $claimed_musics->rewind_posts();
        foreach($claimed_musics->posts as $music_post) {
            $total_boost_earnings += (float) get_post_meta($music_post->ID, '_artist_earnings', true);
        }
        $claimed_musics->rewind_posts(); // Prepara para o loop de exibição mais tarde
    }

    // Ganhos de Vendas de Músicas (Sales) - ATUALIZADO PARA SQL
    
    $total_sales_earnings = 0.00;
    
    // Verifica se a tabela existe antes de consultar (segurança)
    if($purchases_table_exists) {
        $total_sales_earnings = (float) $wpdb->get_var($wpdb->prepare(
            "SELECT SUM(price) FROM $purchases_table WHERE artist_id = %d AND status = 'usado'",
            $artist_id
        ));
    }

    $pending_payout = (float) get_user_meta($artist_id, '_artist_pending_payout', true); // Saldo pendente
    $available_balance = $total_boost_earnings - $pending_payout; // Saldo disponível (apenas boosts)
    // --- FIM DA LÓGICA DE GANHOS ---

    ob_start();

    if ($account_status === 'blocked') {
        echo '<div class="imz-message imz-message-error imz-account-blocked">A sua conta foi bloqueada por violação das nossas políticas de reivindicação de músicas. O acesso ao painel e aos saques foi desativado.</div>';
        return ob_get_clean();
    }

    if ($strikes > 0) {
        $avisos_texto = $strikes === 1 ? '1 aviso ativo' : $strikes . ' avisos ativos';
        echo '<div class="imz-message imz-message-warning"><strong>Atenção:</strong> Você tem ' . $avisos_texto . '. Avisos expiram após 30 dias. Com 3 avisos ativos, a sua conta será bloqueada.</div>';
    }
    ?>
    <?php 
    $user_theme = get_user_meta($artist_id, '_imz_theme_preference', true) ?: 'dark';
    ?>
    <div class="artist-dashboard" data-theme="<?php echo esc_attr($user_theme); ?>">
        <div class="imz-dashboard-header">
            <h2>Painel de Artista</h2>
            <button class="imz-theme-toggle" id="imz-theme-toggle" title="Alternar tema claro/escuro">
                <svg class="imz-icon-sun" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="20" height="20"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>
                <svg class="imz-icon-moon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="20" height="20"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>
            </button>
        </div>

        <div class="imz-stats-overview"> 
            <div class="imz-stat-card downloads">
                <div class="imz-stat-main">
                    <span class="imz-stat-value"><?php echo number_format($total_downloads); ?></span>
                    <span class="imz-stat-label">Downloads Totais</span>
                </div>
                <div class="imz-stat-details">
                    <div class="imz-sub-stat">
                        <span class="imz-sub-stat-label">Hoje</span>
                        <span class="imz-sub-stat-value"><?php echo number_format($downloads_today_count); ?></span>
                    </div>
                    <div class="imz-sub-stat">
                        <span class="imz-sub-stat-label">Popular (Mês)</span>
                        <?php
                        $title_clean = $most_downloaded_monthly_id ? get_post_field('post_title', $most_downloaded_monthly_id) : 'Nenhuma';
                        $title_with_badge = $most_downloaded_monthly_id ? get_the_title($most_downloaded_monthly_id) : 'Nenhuma';
                        ?>
                        <span class="imz-sub-stat-value" title="<?php echo esc_attr($title_clean); ?>"><?php echo $title_with_badge; ?></span>
                    </div>
                </div>
            </div>
            <div class="imz-stat-card boosts">
                 <div class="imz-stat-main">
                    <span class="imz-stat-value"><?php echo number_format($total_boosts); ?></span>
                    <span class="imz-stat-label">Impulsionamentos</span>
                </div>
                <div class="imz-stat-details">
                    <div class="imz-sub-stat">
                        <span class="imz-sub-stat-label">Hoje</span>
                        <span class="imz-sub-stat-value"><?php echo number_format($boosts_today_count); ?></span>
                    </div>
                    <div class="imz-sub-stat">
                        <span class="imz-sub-stat-label">Popular (Mês)</span>
                         <?php
                        $title_clean = $most_boosted_monthly_id ? get_post_field('post_title', $most_boosted_monthly_id) : 'Nenhuma';
                        $title_with_badge = $most_boosted_monthly_id ? get_the_title($most_boosted_monthly_id) : 'Nenhuma';
                        ?>
                        <span class="imz-sub-stat-value" title="<?php echo esc_attr($title_clean); ?>"><?php echo $title_with_badge; ?></span>
                    </div>
                </div>
            </div>
        </div>

        <div class="imz-locations-panel"> <h3>Top Províncias (Downloads)</h3>
            <div class="imz-locations-list">
                <?php if (!empty($region_counts)): ?>
                    <?php
                    $rank = 1;
                    $medals = ['🥇', '🥈', '🥉'];
                    foreach ($region_counts as $region => $downloads) : ?>
                        <div class="imz-location-item">
                            <span class="imz-location-rank"><?php echo $medals[$rank - 1] ?? $rank . 'º'; ?></span>
                            <span class="imz-location-name"><?php echo esc_html($region); ?></span>
                            <span class="imz-location-count"><?php echo number_format($downloads); ?> downloads</span>
                        </div>
                    <?php
                        $rank++;
                        if ($rank > 5) break;
                    endforeach; ?>
                <?php else: ?>
                    <p class="imz-no-data">Ainda não existem dados de localização suficientes para as suas músicas.</p>
                <?php endif; ?>
            </div>
        </div>

        <!-- GRÁFICO DE ATIVIDADE -->
        <div class="imz-chart-panel">
            <div class="imz-chart-header">
                <h3>Atividade Recente</h3>
                <div class="imz-chart-period-toggle">
                    <button class="imz-period-btn active" data-period="7days">7 Dias</button>
                    <button class="imz-period-btn" data-period="30days">30 Dias</button>
                </div>
            </div>
            <div class="imz-chart-container">
                <canvas id="imz-activity-chart" height="280"></canvas>
                <div class="imz-chart-loading" id="imz-chart-loading">
                    <div class="imz-chart-spinner"></div>
                    <span>A carregar gráfico...</span>
                </div>
            </div>
            <div class="imz-chart-legend">
                <span class="imz-legend-item"><span class="imz-legend-dot downloads"></span> Downloads</span>
                <span class="imz-legend-item"><span class="imz-legend-dot boosts"></span> Impulsionamentos</span>
            </div>
        </div>

        <?php
        if ($is_pro):
            $rmbz_expiry = function_exists('imz_rmbz_subscription_expiry_for_user') ? imz_rmbz_subscription_expiry_for_user($artist_id) : '';
            $expiration_timestamp = $rmbz_expiry !== '' ? strtotime($rmbz_expiry) : get_user_meta($artist_id, '_imz_pro_expiration_date', true);
            $days_remaining_text = '';
            if (!empty($expiration_timestamp)) {
                $seconds_remaining = (int)$expiration_timestamp - current_time('timestamp');
                if ($seconds_remaining > 0) {
                    $days_remaining = ceil($seconds_remaining / DAY_IN_SECONDS);
                    $days_plural = ($days_remaining > 1) ? 's' : '';
                    $days_remaining_text = ' A sua subscrição expira em <strong>' . $days_remaining . ' dia' . $days_plural . '</strong>.';
                } else {
                    $days_remaining_text = ' A sua subscrição <strong>expirou</strong>.';
                }
            }
        ?>
            <div class="imz-message imz-message-success"> <strong>Subscrição VIP 1MZ ativa!</strong> Tens acesso às funcionalidades profissionais deste painel.<?php echo $days_remaining_text; ?>
            </div>
        <?php else: ?>
            <div class="imz-message imz-message-warning" style="text-align: left;"> <strong>A tua conta 1MZ não tem uma subscrição VIP ativa.</strong> Ativa ou renova um plano para desbloquear as ferramentas profissionais.
                <ul style="margin: 10px 0 0 20px; padding: 0;">
                    <li>As suas músicas reivindicadas recebem o selo de <strong>Verificado</strong> e <strong>Monetizado</strong> instantaneamente!</li>
                    <li>Reivindique músicas <strong>ilimitadas</strong> (limite atual: <?php echo IMZ_FREE_ARTIST_MUSIC_LIMIT; ?> músicas).</li> <li>Receba <strong>70%</strong> dos ganhos (em vez de 20%).</li> <li>Controle os <strong>limites de download</strong> e veja <strong>estatísticas detalhadas</strong>.</li>
                    <li>Acesso ao serviço de <strong>Proteção Digital de Direitos Autorais</strong>.</li>
                    <li>Venda as suas músicas diretamente na plataforma (<strong>Download Pago</strong>).</li> </ul>
                <p style="text-align: center; margin-top: 15px;">
                    <a href="<?php echo esc_url(function_exists('imz_rmbz_account_url') ? imz_rmbz_account_url('perfil') : home_url('/tornar-se-artista-pro/')); ?>" class="imz-botao-principal imz-btn-compact">Ver planos VIP 1MZ</a> </p>
            </div>
        <?php
        endif;

        // Ponte para o painel de anúncios (só se o utilizador tiver anúncios)
        if (function_exists('imz_get_my_ads_page_url') && count_user_posts($artist_id, 'imz_anuncio') > 0) {
            $my_ads_url = imz_get_my_ads_page_url();
            if ($my_ads_url) {
                echo '<div class="imz-message imz-message-success">📢 Tem anúncios na plataforma. <a href="' . esc_url($my_ads_url) . '"><strong>Ver os meus anúncios e estatísticas →</strong></a></div>';
            }
        }

        // Formulário de Configuração do Método de Pagamento (só aparece uma vez)
        if (empty($payout_method)) :
        ?>
            <div class="imz-setup-box"> <h3>Configurar Método de Pagamento</h3>
                <p>Configure o seu método de pagamento. Esta ação só pode ser feita uma vez. Para futuras alterações, terá que contactar a administração.</p>
                <form method="post" id="imz-payout-method-form"> <?php wp_nonce_field('imz_save_payout_method_action', 'imz_save_payout_method_nonce'); ?> <p><label for="payout_method">Método de Pagamento:</label><br>
                        <select name="payout_method" id="payout_method" required class="imz-input">
                            <option value="">-- Selecione --</option><option value="mpesa">M-Pesa</option><option value="emola">e-Mola</option>
                        </select></p>
                    <p><label for="payout_details">Seu Número (9 dígitos):</label><br>
                        <input type="text" name="payout_details" id="payout_details" required pattern="[0-9]{9}" title="O número deve ter 9 dígitos." class="imz-input"></p>
                    <p><button type="submit" class="imz-botao-principal imz-mt0">Salvar Configuração</button></p>
                    <div class="imz-form-messages"></div> </form>
            </div>
        <?php else : ?>

            <?php
            // Secção de Monetização por Engajamento
            if (function_exists('imz_render_engagement_dashboard_section')) {
                imz_render_engagement_dashboard_section($artist_id);
            }
            ?>

            <h2>Suas Finanças</h2>
            <div class="imz-payout-section"> <div class="imz-balance-action-group">
                    <div class="imz-artist-earnings-summary main-balance"> <h4>Saldo Disponível (para Saque)</h4>
                        <p class="imz-earnings-amount"><?php echo esc_html(number_format($available_balance, 2)); ?> MT</p>
                    </div>
                    <div class="imz-payout-button-container"> <form method="post" id="imz-payout-request-form"> <?php wp_nonce_field('imz_request_payout_action', 'imz_request_payout_nonce'); ?> <button type="submit" class="imz-payout-button" <?php disabled($available_balance < IMZ_MIN_PAYOUT_AMOUNT); ?>>
                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" width="18" height="18"><path d="M10.75 10.81V14.25H9.25V10.81C8.16 10.45 7.75 9.43 7.75 8.19C7.75 6.68 8.71 6 10 6C11.29 6 12.25 6.68 12.25 8.19C12.25 9.43 11.84 10.45 10.75 10.81ZM10 4.5C6.41 4.5 3.5 7.41 3.5 11C3.5 14.59 6.41 17.5 10 17.5C13.59 17.5 16.5 14.59 16.5 11C16.5 7.41 13.59 4.5 10 4.5ZM10 16C7.24 16 5 13.76 5 11C5 8.24 7.24 6 10 6C12.76 6 15 8.24 15 11C15 13.76 12.76 16 10 16Z"></path></svg>
                                Pedir Pagamento
                            </button> <div class="imz-form-messages"></div>
                        </form>
                        <p class="imz-payout-notice">Mínimo para saque: <?php echo IMZ_MIN_PAYOUT_AMOUNT; ?> MT.</p>
                    </div>
                </div>

                <div class="imz-earnings-breakdown"> <div class="imz-earnings-detail"> <h4>Ganhos (Impulsos):</h4>
                        <p class="imz-earnings-value"><?php echo esc_html(number_format($total_boost_earnings, 2)); ?> MT</p>
                    </div>
                    <div class="imz-earnings-detail"> <h4>Ganhos (Vendas):</h4>
                        <p class="imz-earnings-value"><?php echo esc_html(number_format($total_sales_earnings, 2)); ?> MT</p>
                    </div>
                </div>

            </div>


            <div class="imz-dashboard-section-accordion"> <div class="imz-section-header imz-manage-button"> <span class="imz-section-title">Reivindicar uma Música</span>
                    <span class="imz-accordion-toggle-icon"></span>
                </div>
                <div class="imz-section-content imz-music-item-settings">
                    <div class="claim-section" style="margin-bottom: 0; border: none; padding: 0; background: none; box-shadow: none;">
                        <?php if ($is_pro): ?>
                            <p>Como Artista PRO, as suas músicas reivindicadas são <strong>automaticamente verificadas e monetizadas</strong>.</p>
                        <?php else: ?>
                            <p>No plano gratuito, a música precisa de 5+ impulsionamentos para ser elegível para reivindicação, ou você precisa de um plano PRO.</p>
                        <?php endif; ?>
                        <form method="post" class="imz-claim-form"> <?php wp_nonce_field('imz_claim_music_action', 'imz_claim_music_nonce'); ?> <label for="music_url">Link da Música:</label>
                            <input type="url" name="music_url" id="music_url" required>
                            <label for="claim_document_upload" class="imz-file-uploader"><div class="imz-file-uploader-label">Clique para selecionar o Documento de Registo<span>PDF ou JPG, até 5MB</span></div></label> <input type="file" id="claim_document_upload" accept=".pdf,.jpg,.jpeg">
                            <div class="imz-progress-container"><div class="imz-progress-bar"></div><span class="imz-progress-text">0%</span></div>
                            <p class="imz-file-notice"></p>
                            <input type="hidden" name="claim_document_id" id="claim_document_id" value="">
                            <button type="submit" class="imz-botao-principal">Reivindicar Música</button>
                            <div class="imz-form-messages"></div>
                        </form>
                    </div>
                </div>
            </div>

             <?php if ($is_pro): ?>
                <h2>Vendas de Músicas</h2>
                <div class="imz-dashboard-section-accordion sales-accordion">
                    <div class="imz-section-header imz-manage-button">
                        <span class="imz-section-title">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" width="20" height="20" style="vertical-align: middle; margin-right: 8px; opacity: 0.8;">
                                <path fill-rule="evenodd" d="M17.707 9.293a1 1 0 010 1.414l-7 7a1 1 0 01-1.414 0l-7-7A.997.997 0 012 10V5a1 1 0 011-1h12a1 1 0 011 1v5a.997.997 0 01-.293.707zM11 5H4v5.586l4.293 4.293a1 1 0 001.414 0L14 10.586V5z" clip-rule="evenodd" />
                                <path d="M9 8a1 1 0 11-2 0 1 1 0 012 0z" />
                            </svg>
                            Pedidos de Compra Pendentes
                            <?php
                            // ATUALIZADO: Contagem via SQL na nova tabela
                            $pending_purchase_count = 0;
                            if($purchases_table_exists) {
                                $pending_purchase_count = (int) $wpdb->get_var($wpdb->prepare(
                                    "SELECT COUNT(*) FROM $purchases_table WHERE artist_id = %d AND status = 'pendente'",
                                    $artist_id
                                ));
                            }

                            // Exibe a bolha de notificação se houver pedidos
                            if ($pending_purchase_count > 0) {
                                echo ' <span class="awaiting-mod"><span class="pending-count">' . number_format_i18n($pending_purchase_count) . '</span></span>';
                            }
                            ?>
                        </span>
                        <span class="imz-accordion-toggle-icon"></span>
                    </div>
                    <div class="imz-section-content imz-music-item-settings">
                        <?php
                        // ATUALIZADO: Query SQL para buscar pedidos pendentes
                        $pending_purchases_results = [];
                        if($purchases_table_exists) {
                            $pending_purchases_results = $wpdb->get_results($wpdb->prepare(
                                "SELECT * FROM $purchases_table WHERE artist_id = %d AND status = 'pendente' ORDER BY date ASC",
                                $artist_id
                            ));
                        }

                        if (!empty($pending_purchases_results)) :
                            foreach ($pending_purchases_results as $purchase) :
                                $request_id = $purchase->id;
                                $music_id = $purchase->music_id;
                                $user_name = $purchase->user_name;
                                $user_phone = $purchase->user_phone;
                                $verification_code_artist = $purchase->verification_code;
                        ?>
                            <div class="imz-music-item" id="purchase-request-<?php echo $request_id; ?>"> <div class="imz-music-item-header" style="display:block; cursor: default;">
                                     <?php
                                    remove_filter('the_title', 'imz_add_verified_badge_to_title', 10, 2);
                                    $music_title_clean = get_the_title($music_id);
                                    add_filter('the_title', 'imz_add_verified_badge_to_title', 10, 2);
                                    ?>
                                    <span class="imz-music-title"><?php echo esc_html($music_title_clean); ?></span> <p style="margin: 10px 0 0 0; font-size: 15px;">
                                        <strong>Comprador:</strong> <?php echo esc_html($user_name); ?><br>
                                        <strong>Contacto:</strong> <a href="https://wa.me/258<?php echo esc_attr($user_phone); ?>" target="_blank"><?php echo esc_html($user_phone); ?></a>
                                        <br><strong>Código de Verificação:</strong> <code style="font-size: 1.1em; padding: 2px 5px; background-color: #eee; border-radius: 3px;"><?php echo esc_html($verification_code_artist); ?></code>
                                    </p>
                                </div>
                                <div class="imz-music-item-settings" style="display:block; padding: 25px; max-height: none;"> <p><strong>Ação:</strong> Contacte o comprador. Após receber o pagamento, marque como "Contactado" para gerar o código de download.</p>
                                    <form class="imz-purchase-action-form" style="margin-bottom: 0;"> <input type="hidden" name="request_id" value="<?php echo $request_id; ?>">
                                        <div class="imz-action-row"> <button type="submit" name="action_type" value="contacted" class="imz-botao-principal imz-mt0 imz-btn-success">Marcar como Contactado (Gerar Código)</button> <button type="submit" name="action_type" value="cancel" class="imz-botao-secundario imz-mt0 imz-btn-danger-soft">Cancelar Pedido</button> </div>
                                        <div class="imz-form-messages"></div>
                                    </form>
                                </div>
                            </div>
                        <?php
                            endforeach;
                        else:
                            echo '<p>Nenhum pedido de compra pendente.</p>';
                        endif;
                        ?>

                        <hr style="margin: 30px 0;">
                        <h4 style="margin-bottom: 20px;">Histórico de Vendas Concluídas</h4>

                        <?php
                        // ATUALIZADO: Query SQL para buscar vendas concluídas
                        $completed_sales_results = [];
                        if($purchases_table_exists) {
                            $completed_sales_results = $wpdb->get_results($wpdb->prepare(
                                "SELECT * FROM $purchases_table WHERE artist_id = %d AND status = 'usado' ORDER BY date DESC LIMIT 10",
                                $artist_id
                            ));
                        }

                        if (!empty($completed_sales_results)) :
                            foreach ($completed_sales_results as $sale) :
                                $request_id_done = $sale->id;
                                $music_id_done = $sale->music_id;
                                $user_name_done = $sale->user_name;
                                $user_phone_done = $sale->user_phone;
                                $purchase_price_done = $sale->price;
                                $sale_date = date('d/m/Y', strtotime($sale->date));
                        ?>
                            <div class="imz-music-item imz-completed-sale" id="purchase-completed-<?php echo $request_id_done; ?>">
                                <div class="imz-music-item-header" style="display:block; cursor: default; background-color: #f9fafb;">
                                    <?php
                                    remove_filter('the_title', 'imz_add_verified_badge_to_title', 10, 2);
                                    $music_title_clean_done = get_the_title($music_id_done);
                                    add_filter('the_title', 'imz_add_verified_badge_to_title', 10, 2);
                                    ?>
                                    <span class="imz-music-title"><?php echo esc_html($music_title_clean_done); ?></span>
                                    <p style="margin: 10px 0 0 0; font-size: 14px; color: #6b7280;">
                                        <strong>Comprador:</strong> <?php echo esc_html($user_name_done); ?> |
                                        <strong>Contacto:</strong> <?php echo esc_html($user_phone_done); ?> |
                                        <strong>Valor:</strong> <?php echo esc_html(number_format((float)$purchase_price_done, 0)); ?> MT |
                                        <strong>Data:</strong> <?php echo $sale_date; ?>
                                    </p>
                                </div>
                            </div>
                        <?php
                            endforeach;
                        else:
                            echo '<p>Nenhuma venda concluída encontrada.</p>';
                        endif;
                        ?>
                    </div>
                </div>
            <?php endif; ?>
            
            <?php if ($is_pro): ?>
            <div class="imz-dashboard-section-accordion protection-accordion"> <div class="imz-section-header imz-manage-button"> <span class="imz-section-title">🛡️ Proteção Digital de Direitos Autorais</span>
                     <span class="imz-accordion-toggle-icon"></span>
                </div>
                <div class="imz-section-content imz-music-item-settings">
                    <div class="imz-protection-section" style="margin-top: 0; border: none; padding: 0; background: none; border-left: none; box-shadow: none;">
                        <p>Encontrou a sua música <strong>reivindicada</strong> a ser usada sem permissão? Submeta um pedido e a nossa equipa tratará da remoção.</p>

                        <form method="post" class="imz-takedown-form"> <?php wp_nonce_field('imz_submit_takedown_action', 'imz_submit_takedown_nonce'); ?> <div class="imz-form-group">
                                <label for="takedown_music_id">Selecione a sua música reivindicada</label>
                                <select name="takedown_music_id" id="takedown_music_id" required>
                                    <option value="">-- As suas músicas reivindicadas --</option>
                                    <?php
                                    if ($claimed_musics->have_posts()) :
                                        $claimed_musics->rewind_posts();
                                        while ($claimed_musics->have_posts()) : $claimed_musics->the_post();
                                            echo '<option value="' . get_the_ID() . '">' . get_the_title() . '</option>';
                                        endwhile;
                                        $claimed_musics->rewind_posts();
                                    endif;
                                    ?>
                                </select>
                            </div>
                            <div class="imz-form-group">
                                <label for="takedown_infringing_url">Link da Cópia Não Autorizada</label>
                                <input type="url" name="takedown_infringing_url" id="takedown_infringing_url" placeholder="https://exemplo.com/copia-da-minha-musica" required>
                            </div>
                            <div class="imz-form-group">
                                <label for="takedown_comments">Comentário Adicional (Opcional)</label>
                                <textarea name="takedown_comments" id="takedown_comments" rows="3" placeholder="Ex: A minha música está a ser vendida neste site sem permissão."></textarea>
                            </div>

                            <div class="imz-takedown-terms"> <p><strong>Política Anti-Fraude:</strong> Ao submeter este pedido, você declara sob juramento que é o proprietário dos direitos autorais e que o link fornecido é infrator.</p>
                                <p class="warning-text"><strong>Atenção:</strong> Fornecer links falsos com o intuito de prejudicar terceiros resultará no **enceramento imediato da sua conta** e na **perda total do controlo das suas músicas e de todos os seus ganhos**. Esta ação é irreversível.</p>
                                <label class="imz-terms-checkbox-label">
                                    <input type="checkbox" name="takedown_terms_agree" id="takedown_terms_agree">
                                    <span>Eu li, compreendo e concordo com a política anti-fraude.</span>
                                </label>
                            </div>

                            <button type="submit" class="imz-botao-principal" id="imz-takedown-submit-btn" disabled>Enviar Pedido de Proteção</button>
                            <div class="imz-form-messages"></div>
                        </form>

                        <hr style="margin: 40px 0 20px 0;">
                        <h3 style="margin-bottom: 20px;">Histórico de Pedidos</h3>
                        <?php
                        $takedown_requests = new WP_Query([
                            'post_type' => 'imz_takedown',
                            'author' => $artist_id,
                            'posts_per_page' => -1,
                            'orderby' => 'date',
                            'order' => 'DESC'
                        ]);

                        if ($takedown_requests->have_posts()) :
                            while ($takedown_requests->have_posts()) : $takedown_requests->the_post();
                                $takedown_id = get_the_ID();
                                $music_id = get_post_meta($takedown_id, '_music_id', true);
                                $infringing_url = get_post_meta($takedown_id, '_infringing_url', true);
                                $status = get_post_meta($takedown_id, '_takedown_status', true);
                                $log_entries = get_post_meta($takedown_id, '_takedown_log', true);
                                if (!is_array($log_entries)) $log_entries = [];

                                $status_text = ucfirst(str_replace('-', ' ', $status));
                                $status_class = 'status-' . esc_attr($status);
                        ?>
                            <div class="imz-takedown-item" id="takedown-<?php echo $takedown_id; ?>">
                                <div class="imz-takedown-item-header imz-manage-button"> <div class="imz-music-title-section">
                                        <span class="imz-music-title" style="font-size: 15px;">
                                            Música: <?php echo get_the_title($music_id); ?>
                                        </span>
                                        <span style="font-size: 13px; color: #6b7280; word-break: break-all;">
                                            Link: <?php echo esc_html($infringing_url); ?>
                                        </span>
                                    </div>
                                    <span class="imz-status-badge <?php echo $status_class; ?>">
                                        <?php echo esc_html($status_text); ?>
                                    </span>
                                </div>
                                <div class="imz-takedown-item-details imz-music-item-settings"> <h4>Histórico de Ações da Equipa:</h4>
                                    <?php if (!empty($log_entries)): ?>
                                        <ul class="imz-takedown-log-entries">
                                            <?php foreach (array_reverse($log_entries) as $entry): ?>
                                                <li>
                                                    <span class="log-date"><?php echo date_i18n('d/m/Y \à\s H:i', $entry['timestamp']); ?></span>
                                                    <p class="log-note"><?php echo esc_html($entry['note']); ?></p>
                                                </li>
                                            <?php endforeach; ?>
                                        </ul>
                                    <?php else: ?>
                                        <p>Nenhuma nota da equipa ainda. O seu pedido está pendente de análise.</p>
                                    <?php endif; ?>
                                </div>
                            </div>
                        <?php
                            endwhile;
                            wp_reset_postdata();
                        else :
                        ?>
                            <p class="imz-no-data" style="text-align: center; color: #6b7280; padding: 10px 0;">Nenhum pedido de proteção foi submetido ainda.</p>
                        <?php
                        endif;
                        ?>
                    </div>
                </div>
            </div>
            <?php endif; ?>

            <h2>Suas Músicas</h2>
            <div class="imz-dashboard-section-accordion"> <div class="imz-section-header imz-manage-button"> <span class="imz-section-title">Gestor de Músicas</span>
                    <span class="imz-accordion-toggle-icon"></span>
                </div>
                <div class="imz-section-content imz-music-item-settings">
                    <?php if ($claimed_musics->have_posts()) :
                        // CORRECÇÃO: Batch load de boosts e vendas para todas as músicas
                        // em vez de N+1 queries individuais
                        $boosts_by_music = [];
                        $sales_by_music = [];

                        if (!empty($music_ids)) {
                            // Boosts agrupados por música (uma única query SQL)
                            $ids_placeholder_boosts = implode(',', array_fill(0, count($music_ids), '%d'));
                            $boosts_results = $wpdb->get_results($wpdb->prepare(
                                "SELECT pm1.meta_value as music_id, COUNT(*) as cnt
                                 FROM {$wpdb->posts} p
                                 INNER JOIN {$wpdb->postmeta} pm1 ON p.ID = pm1.post_id AND pm1.meta_key = 'post_id_original'
                                 INNER JOIN {$wpdb->postmeta} pm2 ON p.ID = pm2.post_id AND pm2.meta_key = 'status' AND pm2.meta_value = 'aprovado'
                                 WHERE p.post_type = 'impulsionamento'
                                 AND p.post_status = 'publish'
                                 AND pm1.meta_value IN ($ids_placeholder_boosts)
                                 GROUP BY pm1.meta_value",
                                ...$music_ids
                            ));
                            foreach ($boosts_results as $row) {
                                $boosts_by_music[(int)$row->music_id] = (int)$row->cnt;
                            }

                            // Vendas agrupadas por música (uma única query SQL)
                            if ($purchases_table_exists) {
                                $sales_results = $wpdb->get_results($wpdb->prepare(
                                    "SELECT music_id, COUNT(*) as cnt FROM $purchases_table
                                     WHERE music_id IN ($ids_placeholder_boosts) AND status = 'usado'
                                     GROUP BY music_id",
                                    ...$music_ids
                                ));
                                foreach ($sales_results as $row) {
                                    $sales_by_music[(int)$row->music_id] = (int)$row->cnt;
                                }
                            }
                        }
                    ?>
                        <div class="imz-music-list">
                            <?php while ($claimed_musics->have_posts()) : $claimed_musics->the_post();
                                $post_id_manager = get_the_ID();
                                $music_downloads = (int) get_post_meta($post_id_manager, '_imz_download_count', true);
                                // Usar dados batch em vez de query individual
                                $music_boosts = $boosts_by_music[$post_id_manager] ?? 0;

                                // Campos de gestão PRO
                                $total_download_limit = get_post_meta($post_id_manager, '_imz_download_limit_per_post', true);
                                $daily_download_limit = get_post_meta($post_id_manager, '_imz_daily_download_limit', true);
                                $blocked_countries = get_post_meta($post_id_manager, '_imz_blocked_countries_per_post', true);
                                $digital_stores = get_post_meta($post_id_manager, '_imz_digital_stores', true);
                            ?>
                                <div class="imz-music-item">
                                    <div class="imz-music-item-header imz-manage-button"> <div class="imz-music-title-section">
                                            <span class="imz-music-title"><?php the_title(); ?></span>
                                            <div class="imz-music-item-stats"> <span class="imz-item-stat downloads">
                                                    <svg viewBox="0 0 24 24"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"></path></svg>
                                                    <?php echo number_format($music_downloads); ?>
                                                </span>
                                                <span class="imz-item-stat boosts">
                                                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="16px" height="16px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-1-13h2v6h-2zm0 8h2v-2h-2z"/></svg>
                                                    <?php echo number_format($music_boosts); ?>
                                                </span>
                                                <?php
                                                // Usar dados batch de vendas
                                                $music_sales_count = $sales_by_music[$post_id_manager] ?? 0;
                                                ?>
                                                <span class="imz-item-stat sales">
                                                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="16px" height="16px"><path d="M11.8 10.9c-2.27-.59-3-1.2-3-2.15 0-1.09 1.01-1.85 2.7-1.85 1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-1.94.42-3.5 1.68-3.5 3.61 0 2.31 1.91 3.46 4.7 4.13 2.5.6 3 1.48 3 2.41 0 .69-.49 1.79-2.7 1.79-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c1.95-.37 3.5-1.5 3.5-3.55 0-2.84-2.43-3.81-4.7-4.4z"></path></svg>
                                                    <?php echo number_format($music_sales_count); ?>
                                                </span>
                                            </div>
                                        </div>
                                        <button class="imz-manage-button-fake-btn">Gerir</button>
                                    </div>
                                    <div class="imz-music-item-settings"> <form method="post" class="imz-music-settings-form"> <?php wp_nonce_field('imz_save_music_settings_action', 'imz_save_music_settings_nonce'); ?> <input type="hidden" name="music_post_id" value="<?php echo $post_id_manager; ?>">

                                            <?php
                                                $enable_download_current = get_post_meta($post_id_manager, '_imz_enable_download', true);
                                                $enable_paid_download_current = get_post_meta($post_id_manager, '_imz_enable_paid_download', true);
                                                $paid_download_price_current = get_post_meta($post_id_manager, '_imz_paid_download_price', true);
                                            ?>
                                            <div class="imz-form-group">
                                                <label>
                                                    <input type="checkbox" class="imz-download-toggle" name="_imz_enable_download" value="yes" <?php checked($enable_download_current, 'yes'); ?>>
                                                    <strong>Ativar Download Gratuito</strong>
                                                </label>
                                                <p class="description">Permite que os visitantes baixem esta música gratuitamente (sujeito aos limites definidos).</p>
                                            </div>

                                            <div class="imz-form-group">
                                                <label>
                                                    <input type="checkbox" class="imz-paid-download-toggle" name="_imz_enable_paid_download" value="yes" <?php checked($enable_paid_download_current === 'yes' || $enable_paid_download_current === 'expired_pro', true); ?> <?php disabled(!$is_pro && $enable_paid_download_current !== 'expired_pro'); ?>>
                                                    <strong>Ativar Download Pago (Venda)</strong>
                                                    <?php if (!$is_pro && $enable_paid_download_current !== 'expired_pro') echo '<span style="color:red; font-size:smaller;"> (Exclusivo PRO)</span>'; ?>
                                                </label>
                                                <p class="description">Desativa o download gratuito e permite vender a música diretamente.</p>
                                            </div>

                                            <div class="imz-form-group imz-paid-price-group" style="display: <?php echo (($enable_paid_download_current === 'yes' || $enable_paid_download_current === 'expired_pro')) ? 'block' : 'none'; ?>;"> <label for="paid_download_price_<?php echo $post_id_manager; ?>">Preço da Música (MT)</label>
                                                <input type="number" id="paid_download_price_<?php echo $post_id_manager; ?>" name="_imz_paid_download_price" value="<?php echo esc_attr($paid_download_price_current); ?>" placeholder="Ex: 50" <?php disabled(!$is_pro && $enable_paid_download_current !== 'expired_pro'); ?>>
                                                <?php if ($enable_paid_download_current === 'expired_pro'): ?>
                                                    <p class="description" style="color: #f59e0b;"><strong>Atenção:</strong> O Download Pago está inativo porque a sua subscrição PRO expirou. Será reativado automaticamente se renovar.</p>
                                                <?php endif; ?>
                                            </div>
                                            <hr style="margin: 20px 0;">
                                            <div class="imz-form-group"><label for="total_download_limit_<?php echo $post_id_manager; ?>">Limite Total de Downloads (Gratuito)</label><input type="number" id="total_download_limit_<?php echo $post_id_manager; ?>" name="_imz_download_limit_per_post" value="<?php echo esc_attr($total_download_limit); ?>" placeholder="Ilimitado (Padrão: 0)" <?php disabled(!$is_pro); ?>><p class="description">Deixe em branco ou use 0 para downloads ilimitados.</p></div>
                                            <div class="imz-form-group"><label for="daily_download_limit_<?php echo $post_id_manager; ?>">Limite Diário de Downloads (Gratuito)</label><input type="number" id="daily_download_limit_<?php echo $post_id_manager; ?>" name="_imz_daily_download_limit" value="<?php echo esc_attr($daily_download_limit); ?>" placeholder="Usar padrão do site (Padrão: 0)" <?php disabled(!$is_pro); ?>><p class="description">Deixe em branco para usar o padrão do site. Use 0 para ilimitado.</p></div>
                                            <div class="imz-form-group"><label for="blocked_countries_<?php echo $post_id_manager; ?>">Bloquear Países (códigos ISO)</label><input type="text" id="blocked_countries_<?php echo $post_id_manager; ?>" name="_imz_blocked_countries_per_post" value="<?php echo esc_attr($blocked_countries); ?>" placeholder="Ex: US, GB, FR" <?php disabled(!$is_pro); ?>><p class="description">Use os códigos de 2 letras, separados por vírgula.</p></div>
                                            <div class="imz-form-actions">
                                                <button type="submit" class="imz-botao-principal">Salvar Alterações</button> <?php if (!$is_pro): ?><p class="pro-notice" style="margin-top:15px;">Funcionalidades avançadas (limites, bloqueios, venda) são exclusivas para Artistas PRO.</p><?php endif; ?>
                                                <div class="imz-form-messages"></div>
                                            </div>
                                        </form>

                                        <div style="margin-top: 20px; padding-top: 20px; border-top: 1px solid #e2e8f0;">
                                            <a href="<?php echo esc_url(imz_get_proof_document_link($post_id_manager)); ?>" target="_blank" class="button">Gerar Declaração de Titularidade</a> <p class="description" style="margin-top: 8px;">Gere um documento oficial para apresentar em lojas ou outras plataformas.</p>
                                        </div>

                                        <?php if (!empty($digital_stores) && is_array($digital_stores)):
                                            $predefined_stores_option = get_option('imz_predefined_stores', []);
                                            $predefined_stores = empty($predefined_stores_option) ? [] : array_column($predefined_stores_option, null, 'key');
                                        ?>
                                            <div class="imz-distribution-status"> <h4>Distribuída em:</h4>
                                                <div class="imz-stores-icon-list">
                                                <?php foreach($digital_stores as $store_entry):
                                                    $store_key = $store_entry['store_key'] ?? '';
                                                    if (isset($predefined_stores[$store_key])):
                                                        $store_info = $predefined_stores[$store_key];
                                                ?>
                                                    <a href="<?php echo esc_url($store_entry['url']); ?>" target="_blank" title="<?php echo esc_attr($store_info['name']); ?>"><img src="<?php echo esc_url($store_info['icon_url']); ?>" alt="<?php echo esc_attr($store_info['name']); ?>"></a>
                                                <?php endif; endforeach; ?>
                                                </div>
                                            </div>
                                        <?php endif; ?>
                                    </div>
                                </div>
                            <?php endwhile; ?>
                        </div>
                    <?php else: ?>
                        <p>Ainda não reivindicou nenhuma música.</p>
                    <?php endif; wp_reset_postdata(); ?>
                </div>
            </div>

            <h3>Histórico de Pedidos de Pagamento</h3>
            <div class="imz-analytics-table-container">
            <table class="imz-analytics-table">
                <thead><tr><th>Data</th><th>Valor</th><th>Status</th></tr></thead>
                <tbody>
                    <?php $payout_requests = new WP_Query(['post_type' => 'imz_payout', 'author' => $artist_id, 'posts_per_page' => 10, 'orderby' => 'date', 'order' => 'DESC']);
                    if ($payout_requests->have_posts()) : while ($payout_requests->have_posts()) : $payout_requests->the_post(); ?>
                        <tr>
                            <td data-label="Data"><?php echo get_the_date(); ?></td>
                            <td data-label="Valor"><?php echo esc_html(number_format((float)get_post_meta(get_the_ID(), '_payout_amount', true), 2)); ?> MT</td>
                            <td data-label="Status"><span class="imz-payout-status-<?php echo esc_attr(get_post_meta(get_the_ID(), '_payout_status', true)); ?>"><?php echo esc_html(ucfirst(get_post_meta(get_the_ID(), '_payout_status', true))); ?></span></td>
                        </tr>
                    <?php endwhile; wp_reset_postdata(); else : ?>
                        <tr><td colspan="3">Nenhum pedido de pagamento encontrado.</td></tr>
                    <?php endif; ?>
                </tbody>
            </table>
            </div>

        <?php endif; ?>
    </div>
<?php
    return ob_get_clean();
}
?>
