package tech.easyflow.system.permission.resource;

import java.math.BigInteger;

/**
 * 可由统一资源权限服务判定可见性与动作权限的资源契约。
 */
public interface VisibilityResource {

    /**
     * 获取资源所属租户。
     *
     * @return 租户 ID
     */
    BigInteger getTenantId();

    /**
     * 获取资源创建者。
     *
     * @return 创建者账号 ID
     */
    BigInteger getCreatedBy();

    /**
     * 获取资源所属部门。
     *
     * @return 部门 ID
     */
    BigInteger getDeptId();

    /**
     * 获取资源所属分类。
     *
     * @return 分类 ID，未分类时可为空
     */
    BigInteger getCategoryId();

    /**
     * 获取资源可见范围。
     *
     * @return 可见范围编码
     */
    String getVisibilityScope();
}
