package com.zcloud.safetyDutyList.persistence.repository.tasklist;

import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import com.zcloud.safetyDutyList.persistence.dataobject.tasklist.TaskDetailDO;

import java.util.List;
import java.util.Map;

/**
 * 任务详情仓储接口
 * <p>
 * 定义任务详情数据对象的持久化操作，继承MyBatis-Plus的BaseRepository，
 * 提供基础的CRUD操作及自定义查询方法。
 */
public interface TaskDetailRepository extends BaseRepository<TaskDetailDO> {

    /**
     * 分页查询任务详情列表
     *
     * @param params 查询参数（支持taskListId等筛选条件）
     * @return 分页结果
     */
    PageResponse<TaskDetailDO> listPage(Map<String, Object> params);

    /**
     * 根据清单业务ID查询该清单下所有任务详情
     *
     * @param taskListId 清单业务ID
     * @return 任务详情数据对象列表
     */
    List<TaskDetailDO> listByTaskListId(String taskListId);

    /**
     * 根据任务详情业务ID查询任务详情
     *
     * @param taskDetailId 任务详情业务ID
     * @return 任务详情数据对象
     */
    TaskDetailDO getByTaskDetailId(String taskDetailId);

    /**
     * 根据清单业务ID删除该清单下所有任务详情
     *
     * @param taskListId 清单业务ID
     * @return 操作结果
     */
    Boolean deleteByTaskListId(String taskListId);

    /**
     * 查询所有进行中的任务
     * <p>
     * 查询条件：task_status=1（进行中）
     * 用于定时任务2：反馈异常检测
     *
     * @return 进行中的任务详情数据对象列表
     */
    List<TaskDetailDO> listInProgress();
}
