<?php
if (!defined('ABSPATH')) exit;

class VS_Admin_Menu_Badge_V2 {

    public static function init() {
        add_action('admin_menu', [__CLASS__, 'add_pending_products_badge'], 20);
    }

    public static function add_pending_products_badge() {
        // التحقق من صلاحيات المستخدم
        if (!current_user_can('manage_options')) {
            return;
        }

        // الحصول على عدد المنتجات المعلقة وطلبات إضافة الفئات المعلقة
        $pending_count = self::get_pending_products_count();
        $pending_cat_requests = self::get_pending_category_requests_count();
        $total = $pending_count + $pending_cat_requests;

        // إضافة الشارة إذا كان هناك منتجات معلقة
        if ($total > 0) {
            global $menu;
            foreach ($menu as $key => $item) {
                if ($item[2] === 'vendor-space') {
                    $parts = [];
                    if ($pending_count > 0) {
                        $parts[] = sprintf(
                            ' <span class="update-plugins count-%d"><span class="plugin-count">%d</span></span>',
                            $pending_count,
                            $pending_count
                        );
                    }
                    if ($pending_cat_requests > 0) {
                        $parts[] = sprintf(
                            ' <span class="update-plugins vs-cat-requests count-%d"><span class="plugin-count">%d</span></span>',
                            $pending_cat_requests,
                            $pending_cat_requests
                        );
                    }
                    $menu[$key][0] = $item[0] . implode('', $parts);
                    break;
                }
            }
        }
    }

    private static function get_pending_products_count() {
        $args = [
            'post_type'   => 'product',
            'post_status' => 'pending',
            'numberposts' => -1,
            'fields'      => 'ids'
        ];
        $posts = get_posts($args);
        return count($posts);
    }

    private static function get_pending_category_requests_count() {
        $args = [
            'post_type'   => 'vs_category_request',
            'post_status' => 'pending',
            'numberposts' => -1,
            'fields'      => 'ids'
        ];
        $posts = get_posts($args);
        return count($posts);
    }
}

// تهيئة الفئة
VS_Admin_Menu_Badge_V2::init();
