<?php

declare(strict_types=1);

/**
 * 本文件属于 DBErp 进销存系统。
 *
 * 版权所有 © 2026 北京珑大钜商科技有限公司。保留所有权利。
 *
 * 未经官方授权，不得删除、篡改或隐藏本文件中的版权声明、产品标识与来源信息。
 * 商业授权、官方更新与技术支持服务，请以珑大官方支持中心记录为准。
 *
 * @link https://support.loongdom.cn
 * @see  https://www.dberp.com.cn
 */

namespace App\Services\SupportCenter;

/**
 * 官方授权权益 → 面向 DBErp 业务的中文展示（阶段 1 不强调主题/模板权益）。
 */
final class HostSystemAuthorizationEntitlementPresenter
{
    /**
     * @var list<string>
     */
    private const PRIMARY_ENTITLEMENT_KEYS = [
        'can_check_system_update',
        'can_execute_system_update',
        'can_install_plugin',
        'can_update_plugin',
    ];

    /**
     * @return list<array{key: string, label: string, enabled: bool}>
     */
    public function primaryEntitlementsForDisplay(?array $entitlements): array
    {
        if ($entitlements === null || $entitlements === []) {
            return [];
        }

        $rows = [];

        foreach (self::PRIMARY_ENTITLEMENT_KEYS as $key) {
            if (! array_key_exists($key, $entitlements)) {
                continue;
            }

            $rows[] = [
                'key' => $key,
                'label' => $this->labelFor($key),
                'enabled' => (bool) $entitlements[$key],
            ];
        }

        return $rows;
    }

    public function labelFor(string $key): string
    {
        $translationKey = 'dberp.system_authorization.entitlements.'.$key;
        $label = __($translationKey);

        return $label !== $translationKey ? $label : (string) __('dberp.system_authorization.entitlements.unknown');
    }
}
