<?php
// includes/admin/royalties/royalties-controller.php
//
// Controlador principal do módulo "💰 Royalties" dentro da tab Distribuição.
// Renderiza um sub-menu lateral com 6 áreas:
//   - dashboard        Visão geral, KPIs financeiros
//   - imports          Lista de importações + anular
//   - ledger           Extracto de todas as transacções
//   - payouts          Pagamentos aos artistas
//   - commissions      Comissões da 1MZ (margem da plataforma)
//   - reports          Relatórios exportáveis

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


function rmbz_render_royalties_module() {
    $sub = isset($_GET['rsub']) ? sanitize_key($_GET['rsub']) : 'dashboard';

    $tabs = [
        'dashboard'   => [ 'label' => 'Visão geral',      'icon' => '📊', 'color' => '#3498db' ],
        'imports'     => [ 'label' => 'Importações',      'icon' => '📥', 'color' => '#9b59b6' ],
        'by_dsp'      => [ 'label' => 'Por loja (DSP)',   'icon' => '📦', 'color' => '#06b6d4' ],
        'silent'      => [ 'label' => 'Faixas Silenciosas','icon' => '🔇', 'color' => '#e67e22' ],
        'ledger'      => [ 'label' => 'Extracto',         'icon' => '📒', 'color' => '#f0b90b' ],
        'payouts'     => [ 'label' => 'Pagamentos',       'icon' => '💸', 'color' => '#2ecc71' ],
        'commissions' => [ 'label' => 'Comissões 1MZ',    'icon' => '🏦', 'color' => '#e67e22' ],
        'reports'     => [ 'label' => 'Relatórios',       'icon' => '📄', 'color' => '#34495e' ],
        'health'      => [ 'label' => 'Saúde do sistema', 'icon' => '🩺', 'color' => '#10b981' ],
        'audit'       => [ 'label' => 'Log de auditoria', 'icon' => '📜', 'color' => '#6b7280' ],
    ];

    if ( ! isset($tabs[$sub]) ) $sub = 'dashboard';
    ?>

    <div class="rmbz-royalties-wrap">
        <div class="rmbz-ro-head">
            <div>
                <div class="kicker">Distribuição · Controlo financeiro</div>
                <h1>💰 Royalties</h1>
                <p>Todas as entradas, saídas, importações e pagamentos num só lugar.</p>
            </div>
        </div>

        <div class="rmbz-ro-layout">
            <nav class="rmbz-ro-sidebar">
                <?php foreach ( $tabs as $key => $info ):
                    $url = add_query_arg( [ 'rsub' => $key ] );
                    $active = ($sub === $key);
                ?>
                    <a href="<?php echo esc_url($url); ?>" class="nav-item <?php echo $active ? 'active' : ''; ?>"
                       style="<?php echo $active ? '--accent: ' . esc_attr($info['color']) . ';' : ''; ?>">
                        <span class="nav-icon"><?php echo $info['icon']; ?></span>
                        <span class="nav-label"><?php echo esc_html($info['label']); ?></span>
                    </a>
                <?php endforeach; ?>
            </nav>

            <main class="rmbz-ro-main">
                <?php
                switch ( $sub ) {
                    case 'dashboard':
                        if ( function_exists('rmbz_render_royalties_dashboard') ) rmbz_render_royalties_dashboard();
                        else echo '<p>Dashboard em construção.</p>';
                        break;
                    case 'imports':
                        if ( function_exists('rmbz_render_royalties_imports') ) rmbz_render_royalties_imports();
                        else echo '<p>Importações em construção.</p>';
                        break;
                    case 'silent':
                        if ( function_exists('rmbz_render_royalties_silent_tracks') ) rmbz_render_royalties_silent_tracks();
                        else echo '<p>Faixas Silenciosas em construção.</p>';
                        break;
                    case 'ledger':
                        if ( function_exists('rmbz_render_royalties_ledger') ) rmbz_render_royalties_ledger();
                        else echo '<p>Extracto em construção.</p>';
                        break;
                    case 'payouts':
                        if ( function_exists('rmbz_render_royalties_payouts') ) rmbz_render_royalties_payouts();
                        else echo '<p>Pagamentos em construção.</p>';
                        break;
                    case 'commissions':
                        if ( function_exists('rmbz_render_royalties_commissions') ) rmbz_render_royalties_commissions();
                        else echo '<p>Comissões 1MZ em construção.</p>';
                        break;
                    case 'reports':
                        if ( function_exists('rmbz_render_royalties_reports') ) rmbz_render_royalties_reports();
                        else echo '<p>Relatórios em construção.</p>';
                        break;
                    case 'artist_summary':
                        // [FEAT 1.6.24] Resumo financeiro mensal por artista
                        if ( function_exists('rmbz_render_royalties_artist_summary') ) rmbz_render_royalties_artist_summary();
                        else echo '<p>Resumo do artista em construção.</p>';
                        break;
                    case 'by_dsp':
                        // [FEAT 1.6.26] Visão por DSP (loja)
                        if ( function_exists('rmbz_render_royalties_by_dsp') ) rmbz_render_royalties_by_dsp();
                        else echo '<p>Visão por DSP em construção.</p>';
                        break;
                    case 'health':
                        // [FEAT 1.6.27] Saúde do sistema
                        if ( function_exists('rmbz_render_system_health') ) rmbz_render_system_health();
                        else echo '<p>Saúde do sistema em construção.</p>';
                        break;
                    case 'audit':
                        // [FEAT 1.6.28] Log de auditoria
                        if ( function_exists('rmbz_render_audit_log') ) rmbz_render_audit_log();
                        else echo '<p>Log de auditoria em construção.</p>';
                        break;
                }
                ?>
            </main>
        </div>
    </div>

    <style>
    /* [1.5.178] Removido max-width:1400px que limitava o dashboard num
       monitor grande. Agora ocupa toda a largura disponível dentro do
       wp-admin (que já tem padding nativo). Em monitores grandes, os
       cards ficam mais espaçados; em mobile, o flex/grid responde
       igual à largura do container. */
    .rmbz-royalties-wrap {
        font-family: var(--rmbz-font-body, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
        width: 100%;
        max-width: 100%;
    }
    .rmbz-ro-head { margin: 20px 0 24px 0; }
    .rmbz-ro-head .kicker { color: #888; font-size: 10px; text-transform: uppercase; letter-spacing: 1.2px; }
    .rmbz-ro-head h1 { font-size: 24px; margin: 4px 0 4px 0; font-weight: 500; }
    .rmbz-ro-head p { color: #666; margin: 0; font-size: 13px; }

    .rmbz-ro-layout { display: grid; grid-template-columns: 220px 1fr; gap: 20px; align-items: start; }
    @media (max-width: 900px) { .rmbz-ro-layout { grid-template-columns: 1fr; } }

    .rmbz-ro-sidebar { background: #fff; border: 1px solid #e5e5e5; border-radius: 8px; padding: 8px; position: sticky; top: 40px; }
    .rmbz-ro-sidebar .nav-item { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 6px; text-decoration: none; color: #333; font-size: 13px; transition: all 0.15s; }
    .rmbz-ro-sidebar .nav-item:hover { background: #f5f5f5; }
    .rmbz-ro-sidebar .nav-item.active { background: #f5f5ff; color: var(--accent, #0073aa); font-weight: 500; border-left: 3px solid var(--accent, #0073aa); padding-left: 9px; border-radius: 0 6px 6px 0; }
    .rmbz-ro-sidebar .nav-icon { font-size: 16px; width: 20px; text-align: center; }

    .rmbz-ro-main { min-width: 0; }
    </style>
    <?php
}
