package jnpf.cultivate.service;

import jnpf.base.vo.PageListVO;
import jnpf.model.cultivate.CultivatePage;
import jnpf.model.cultivate.dto.learn.FtbCultivateLearnTaskListDto;
import jnpf.model.cultivate.vo.learn.FtbCultivateLearnTaskFinishInfoVO;
import jnpf.model.cultivate.vo.learn.FtbCultivateLearnTaskFinishStatisticsVO;
import jnpf.model.cultivate.vo.learn.FtbCultivateLearnTaskInfoVO;
import jnpf.model.cultivate.vo.learn.FtbCultivateLearnTaskListVO;
import jnpf.model.cultivate.vo.learn.info.FtbCultivateLearnTaskUserFinishInfoVO;

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

/**
 * 学习任务详情信息保存接口
 * @Author: peng.hao
 * @create: 2024/9/9:14:47
 */
public interface FtbCultivateLearnTaskInfoService {
    /**
     * 任务内容详情
     */
    FtbCultivateLearnTaskInfoVO getLearnTaskInfo(String taskId);
    /**
     * 完成情况列表
     *
     * @param taskId 任务id
     * @return
     */
    PageListVO<FtbCultivateLearnTaskFinishInfoVO> getListOfCompletions(String taskId, CultivatePage page, List<String> ids);
    /**
     * 完成情况统计
     *
     * @param taskId 任务id
     * @return
     */
    FtbCultivateLearnTaskFinishStatisticsVO getCompletionStatistics(String taskId);
    /**
     * 查看任务完成情况
     *
     * @param taskId 任务id
     * @param userId 用户id
     */
    FtbCultivateLearnTaskUserFinishInfoVO viewTaskCompletion(String taskId, String userId);
    /**
     * 培训任务列表
     */
    PageListVO<FtbCultivateLearnTaskListVO> getTaskList(FtbCultivateLearnTaskListDto taskListDto);
    /**
     * 更新任务列表状态,更新对应任务人员状态
     */
    void updateUserFinishTime(String userId);

    /**
     * 培训任务列表列表小气泡计数
     * @param keyWords 任务名称
     * @return
     */
    Map<String, Integer> getTaskCount(String keyWords);
}
