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

import ${basePackage}.frame.auth.Token;
import ${basePackage}.module.system.ent.TaskSql;
import ${basePackage}.module.system.req.TaskSqlCreateRequest;
import ${basePackage}.module.system.req.TaskSqlDeleteRequest;
import ${basePackage}.module.system.req.TaskSqlFindRequest;
import ${basePackage}.module.system.req.TaskSqlUpdateRequest;
import ${basePackage}.module.system.rsp.TaskSqlCreateResponse;
import ${basePackage}.module.system.rsp.TaskSqlDeleteResponse;
import ${basePackage}.module.system.rsp.TaskSqlFindResponse;
import ${basePackage}.module.system.rsp.TaskSqlUpdateResponse;

/**
 * SQL任务
 *
 * @author author
 * @version 0.0.1
 * @since 2020-05-24
 */
public interface TaskSqlManager {

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

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

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

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

    /**
     * 添加或替换Sql任务对象
     *
     * @param taskSql Sql任务对象
     * @return
     */
    boolean createOrRepeat(TaskSql taskSql);
}
