package tech.easyflow.ai.enums;

import java.util.LinkedHashSet;
import java.util.Set;

/**
 * 知识库 Public API 产品权限范围。
 *
 * @author Codex
 * @since 2026-08-02
 */
public enum KnowledgeApiPermissionScope {

    /**
     * 知识库读取权限。
     */
    KNOWLEDGE_READ,

    /**
     * 知识库导入权限。
     */
    KNOWLEDGE_IMPORT,

    /**
     * 知识库维护权限。
     */
    KNOWLEDGE_MAINTENANCE;

    /**
     * 根据三个权限开关构造稳定 Scope 集合。
     *
     * @param readEnabled 是否开启读取
     * @param importEnabled 是否开启导入
     * @param maintenanceEnabled 是否开启维护
     * @return 已开启的权限 Scope
     */
    public static Set<String> enabledScopes(boolean readEnabled,
                                            boolean importEnabled,
                                            boolean maintenanceEnabled) {
        Set<String> scopes = new LinkedHashSet<>();
        if (readEnabled) {
            scopes.add(KNOWLEDGE_READ.name());
        }
        if (importEnabled) {
            scopes.add(KNOWLEDGE_IMPORT.name());
        }
        if (maintenanceEnabled) {
            scopes.add(KNOWLEDGE_MAINTENANCE.name());
        }
        return scopes;
    }
}
