package xyz.wbsite.module.admin.mgr;

import xyz.wbsite.module.admin.req.RulesCreateRequest;
import xyz.wbsite.module.admin.req.RulesDeleteRequest;
import xyz.wbsite.module.admin.req.RulesFindRequest;
import xyz.wbsite.module.admin.req.RulesUpdateRequest;
import xyz.wbsite.module.admin.rsp.RulesCreateResponse;
import xyz.wbsite.module.admin.rsp.RulesDeleteResponse;
import xyz.wbsite.module.admin.rsp.RulesFindResponse;
import xyz.wbsite.module.admin.rsp.RulesUpdateResponse;
import xyz.wbsite.frame.base.Token;

/**
 * 配置规则
 *
 * @author wangbing
 * @version 0.0.1
 * @since 2021-02-08
 */
public interface RulesManager {

    /**
     * 插入
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    RulesCreateResponse create(RulesCreateRequest request, Token token);

    /**
     * 逻辑删除
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    RulesDeleteResponse delete(RulesDeleteRequest request, Token token);

    /**
     * 更新
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    RulesUpdateResponse update(RulesUpdateRequest request, Token token);

    /**
     * 查询
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    RulesFindResponse find(RulesFindRequest request, Token token);
}
