package ${basePackage}.module.system.mgr;

import ${basePackage}.frame.auth.Token;
import ${basePackage}.module.system.req.DictCreateRequest;
import ${basePackage}.module.system.req.DictDeleteRequest;
import ${basePackage}.module.system.req.DictFindRequest;
import ${basePackage}.module.system.req.DictGetRequest;
import ${basePackage}.module.system.req.DictLoadRequest;
import ${basePackage}.module.system.req.DictUpdateRequest;
import ${basePackage}.module.system.rsp.DictCreateResponse;
import ${basePackage}.module.system.rsp.DictDeleteResponse;
import ${basePackage}.module.system.rsp.DictFindResponse;
import ${basePackage}.module.system.rsp.DictGetResponse;
import ${basePackage}.module.system.rsp.DictLoadResponse;
import ${basePackage}.module.system.rsp.DictUpdateResponse;

/**
 * 字典
 *
 * @author wangbing
 * @version 0.0.1
 * @since 2017-01-01
 */
public interface DictManager {

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

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

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

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

    /**
     * 获得对象
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    DictGetResponse get(DictGetRequest request, Token token);

    /**
     * 加载字典
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    DictLoadResponse load(DictLoadRequest request, Token token);
}
