<?php
declare(strict_types=1);

/**
 * /admin/_sidebar.php
 * Праве меню адмінпанелі (блоки-розділи).
 *
 * Оновлено:
 * - додано розділ "Економіка"
 * - VM Coins розбито на окремі пункти:
 *   - Зведення
 *   - Налаштування
 *   - Ручне коригування
 * - додано пункт "Реклама"
 * - додано окремий пункт "Кампанії реклами"
 * - додано окремий пункт "Антиспам"
 * - додано окремий пункт "Блокування"
 * - додано пункт "Текстові сторінки"
 */

require_once __DIR__ . '/_helpers.php';

if (!function_exists('admin_nav_item')) {
    function admin_nav_item(string $href, string $label, bool $active = false, string $hint = ''): string {
        $cls = 'list-group-item list-group-item-action d-flex align-items-center justify-content-between';
        if ($active) {
            $cls .= ' active';
        }

        $right = '';
        if (trim($hint) !== '') {
            $right = '<span class="badge text-bg-light ms-2">' . e($hint) . '</span>';
        }

        $aria = $active ? ' aria-current="page"' : '';

        return '<a class="' . e($cls) . '" href="' . e($href) . '"' . $aria . '>'
             . '<span>' . e($label) . '</span>'
             . $right
             . '</a>';
    }
}

if (!function_exists('admin_sidebar_is_active')) {
    function admin_sidebar_is_active(string $active, array $values): bool
    {
        return in_array($active, $values, true);
    }
}

if (!function_exists('admin_sidebar')) {
    function admin_sidebar(string $active = 'dashboard'): void {
        $secMain    = admin_tt('admin_main', 'Основне', 'Основное', 'Main');
        $secUsers   = admin_tt('admin_users_sec', 'Користувачі', 'Пользователи', 'Users');
        $secAttach  = admin_tt('admin_attach_sec', 'Вкладення', 'Вложения', 'Attachments');
        $secSec     = admin_tt('admin_security_sec', 'Безпека', 'Безопасность', 'Security');
        $secGroups  = admin_tt('admin_groups_sec', 'Групи', 'Группы', 'Groups');
        $secSEO     = admin_tt('admin_seo_sec', 'SEO', 'SEO', 'SEO');
        $secEconomy = admin_tt('admin_economy_sec', 'Економіка', 'Экономика', 'Economy');

        $dash             = admin_tt('admin_dashboard', 'Дашборд', 'Дашборд', 'Dashboard');
        $users            = admin_tt('users', 'Користувачі', 'Пользователи', 'Users');
        $posts            = admin_tt('posts', 'Пости', 'Посты', 'Posts');
        $comments         = admin_tt('comments', 'Коментарі', 'Комментарии', 'Comments');
        $groups           = admin_tt('groups', 'Групи', 'Группы', 'Groups');
        $attach           = admin_tt('admin_attachments', 'Вкладення', 'Вложения', 'Attachments');
        $security         = admin_tt('admin_security', 'Безпека', 'Безопасность', 'Security');
        $restrictions     = admin_tt('admin_restrictions', 'Блокування', 'Блокировки', 'Restrictions');
        $antispam         = admin_tt('admin_antispam', 'Антиспам', 'Антиспам', 'Anti-spam');
        $seo              = admin_tt('admin_seo', 'SEO оптимізація', 'SEO оптимизация', 'SEO Optimization');
        $board            = admin_tt('admin_board', 'Дошка оголошень', 'Доска объявлений', 'Classifieds');
        $textPages        = admin_tt('admin_text_pages', 'Текстові сторінки', 'Текстовые страницы', 'Text pages');

        $vmCoinsOverview  = admin_tt('admin_vmcoins_overview', 'VM Coins — Зведення', 'VM Coins — Сводка', 'VM Coins — Overview');
        $vmCoinsSettings  = admin_tt('admin_vmcoins_settings', 'VM Coins — Налаштування', 'VM Coins — Настройки', 'VM Coins — Settings');
        $vmCoinsAdjust    = admin_tt('admin_vmcoins_adjust', 'VM Coins — Коригування', 'VM Coins — Корректировка', 'VM Coins — Adjustment');

        $reclama          = admin_tt('admin_reclama', 'Реклама', 'Реклама', 'Advertising');
        $reclamaCampaigns = admin_tt(
            'admin_reclama_campaigns',
            'Кампанії реклами',
            'Кампании рекламы',
            'Ad campaigns'
        );
        ?>
        <div class="card card-app p-3">
            <div class="small text-muted fw-bold text-uppercase mb-2"><?= e($secMain) ?></div>
            <div class="list-group list-group-flush mb-3">
                <?= admin_nav_item('/admin/', $dash, admin_sidebar_is_active($active, ['dashboard'])) ?>
                <?= admin_nav_item('/admin/posts/', $posts, admin_sidebar_is_active($active, ['posts'])) ?>
                <?= admin_nav_item('/admin/comments/', $comments, admin_sidebar_is_active($active, ['comments'])) ?>
                <?= admin_nav_item('/admin/board/', $board, admin_sidebar_is_active($active, ['board', 'board_view'])) ?>
                <?= admin_nav_item('/admin/pages/', $textPages, admin_sidebar_is_active($active, ['pages'])) ?>
            </div>

            <div class="small text-muted fw-bold text-uppercase mb-2"><?= e($secUsers) ?></div>
            <div class="list-group list-group-flush mb-3">
                <?= admin_nav_item('/admin/users/', $users, admin_sidebar_is_active($active, ['users'])) ?>
            </div>

            <div class="small text-muted fw-bold text-uppercase mb-2"><?= e($secGroups) ?></div>
            <div class="list-group list-group-flush mb-3">
                <?= admin_nav_item('/admin/groups/', $groups, admin_sidebar_is_active($active, ['groups'])) ?>
            </div>

            <div class="small text-muted fw-bold text-uppercase mb-2"><?= e($secEconomy) ?></div>
            <div class="list-group list-group-flush mb-3">
                <?= admin_nav_item('/admin/coins/', $vmCoinsOverview, admin_sidebar_is_active($active, ['vmcoins', 'vmcoins_overview'])) ?>
                <?= admin_nav_item('/admin/coins/settings.php', $vmCoinsSettings, admin_sidebar_is_active($active, ['vmcoins_settings'])) ?>
                <?= admin_nav_item('/admin/coins/adjust.php', $vmCoinsAdjust, admin_sidebar_is_active($active, ['vmcoins_adjust'])) ?>
                <?= admin_nav_item('/admin/reclama/', $reclama, admin_sidebar_is_active($active, ['reclama'])) ?>
                <?= admin_nav_item('/admin/reclama/campaigns.php', $reclamaCampaigns, admin_sidebar_is_active($active, ['reclama_campaigns'])) ?>
            </div>

            <div class="small text-muted fw-bold text-uppercase mb-2"><?= e($secAttach) ?></div>
            <div class="list-group list-group-flush mb-3">
                <?= admin_nav_item('/admin/attachments/', $attach, admin_sidebar_is_active($active, ['attachments'])) ?>
            </div>

            <div class="small text-muted fw-bold text-uppercase mb-2"><?= e($secSec) ?></div>
            <div class="list-group list-group-flush mb-3">
                <?= admin_nav_item('/admin/security/', $security, admin_sidebar_is_active($active, ['security'])) ?>
                <?= admin_nav_item('/admin/restrictions/', $restrictions, admin_sidebar_is_active($active, ['restrictions'])) ?>
                <?= admin_nav_item('/admin/antispam/', $antispam, admin_sidebar_is_active($active, ['antispam'])) ?>
            </div>

            <div class="small text-muted fw-bold text-uppercase mb-2"><?= e($secSEO) ?></div>
            <div class="list-group list-group-flush">
                <?= admin_nav_item('/admin/seo/', $seo, admin_sidebar_is_active($active, ['seo'])) ?>
            </div>
        </div>
        <?php
    }
}