package xyz.wbsite.module.conf.mgr;

import xyz.wbsite.module.conf.req.MappingCreateRequest;
import xyz.wbsite.module.conf.req.MappingDeleteRequest;
import xyz.wbsite.module.conf.req.MappingFindRequest;
import xyz.wbsite.module.conf.req.MappingGetRequest;
import xyz.wbsite.module.conf.req.MappingUpdateRequest;
import xyz.wbsite.module.conf.rsp.MappingCreateResponse;
import xyz.wbsite.module.conf.rsp.MappingDeleteResponse;
import xyz.wbsite.module.conf.rsp.MappingFindResponse;
import xyz.wbsite.module.conf.rsp.MappingGetResponse;
import xyz.wbsite.module.conf.rsp.MappingUpdateResponse;
import xyz.wbsite.frame.auth.Token;

/**
 * 映射
 *
 * @author wangbing
 * @version 0.0.1
 * @since 2020-03-18
 */
public interface MappingManager {

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

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

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

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

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