package com.seer.teach.common.data.permission.rule.role;

import com.seer.teach.common.data.permission.rule.DataPermissionCondition;

/**
 * 角色数据权限规则自定义器接口
 *
 * <p>该接口用于自定义角色数据权限规则，允许开发者根据业务需求对默认的权限规则进行扩展或修改。</p>
 *
 */
@FunctionalInterface
public interface RoleDataPermissionRuleCustomizer {

    /**
     * 自定义角色数据权限规则
     *
     * <p>通过此方法可以对传入的权限规则对象进行自定义配置，如添加额外的过滤条件、
     * 修改现有规则逻辑或扩展规则属性等。</p>
     *
     * @param rule 角色数据权限规则对象，不允许为null
     */
    void customize(RoleDataPermissionRule rule,DataPermissionCondition condition);

}