package com.ozs.da.dao;

import com.ozs.da.entity.PageParams;
import com.ozs.da.entity.mail.ErrorJobInfo;
import com.ozs.da.entity.task.Task;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author 许明
 * on 2019/3/5.
 * @version 2.0.0
 */
@Repository
public interface TaskDao {

    void addTask(Task task);

    void deleteTaskById(@Param("taskId") String taskId);

    Task getTaskInfoById(@Param("taskId") String taskId);

    int updateTaskById(Task task);

    int updateTaskStatusById(@Param("id") String id, @Param("taskStatus") String taskStatus, @Param("nextRunDate") String nextRunDate);

    int updateTaskRunStatusById(@Param("id") String id, @Param("runStatus") String taskStatus, @Param("nextRunDate") String nextRunDate);

    List<Task> listTask(PageParams<Task> pageParams);

    List<Task> getAllInitJob();

    void deleteTaskErrorInfo(@Param("taskId") String taskId);

    void insertTaskErrorInfo(ErrorJobInfo errorJobInfo);

    /**
     * 获取任务报错信息
     * @param taskId
     * @return
     */
    ErrorJobInfo getErrorJobInfoById(@Param("taskId") String taskId);

    /**
     * 更新任务邮件发送标识
     * @param id
     * @param sendStatus
     */
    void updateSendedStatusById(@Param("id") String id, @Param("sendStatus") String sendStatus);

    String getTaskSendStatusById(@Param("taskId") String taskId);

    List<String> getSendMailsConfig();
}
