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

import ${basePackage}.frame.auth.Token;
import ${basePackage}.module.system.req.VisitorCreateRequest;
import ${basePackage}.module.system.req.VisitorDeleteRequest;
import ${basePackage}.module.system.req.VisitorFindRequest;
import ${basePackage}.module.system.req.VisitorUpdateRequest;
import ${basePackage}.module.system.rsp.VisitorCreateResponse;
import ${basePackage}.module.system.rsp.VisitorDeleteResponse;
import ${basePackage}.module.system.rsp.VisitorFindResponse;
import ${basePackage}.module.system.rsp.VisitorUpdateResponse;

/**
 * 应用接入
 *
 * @author wangbing
 * @version 0.0.1
 * @since 2020-06-25
 */
public interface VisitorManager {

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

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

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

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