package jnpf.cultivate.service;

import com.baomidou.mybatisplus.extension.service.IService;
import jnpf.model.cultivate.po.learn.FtbCultivateLearnTask;
import jnpf.model.cultivate.v2.task.vo.V2MyCultivateLearnTaskListVo;

import java.util.List;

/**
*
*
*@Author: peng.hao
*@create: 2024/9/9:11:05
*
*/
public interface FtbCultivateLearnTaskService extends IService<FtbCultivateLearnTask> {


    /**
     * 查询用户未完成的学习任务列表
     *
     * @param userId 用户ID，用于标识查询哪个用户的未完成任务
     * @return V2MyCultivateLearnTaskListVo对象列表，包含用户的所有未完成学习任务信息
     */
    List<V2MyCultivateLearnTaskListVo> queryMyNoCompleteTaskListForUserId(String userId);

    /**
     * 查询指定考试ID在给定任务列表中已存在的任务ID列表
     *
     * @param taskIds 任务ID列表，需要检查的任务集合
     * @param examId 考试ID，用于匹配任务中是否包含该考试
     * @return 包含指定考试ID的任务ID字符串列表
     */
    List<String> queryTaskHasExam(List<String> taskIds, String examId);

    /**
     * 查询指定练习ID在给定任务列表中已存在的任务ID列表
     *
     * @param taskIds 任务ID列表，需要检查的任务集合
     * @param practiceId 练习ID，用于匹配任务中是否包含该练习
     * @return 包含指定练习ID的任务ID字符串列表
     */
    List<String> queryTaskHasPracticeId(List<String> taskIds, String practiceId);

    /**
     * 查询指定身份ID在给定任务列表中已存在的任务ID列表
     *
     * @param taskIds 任务ID列表，需要检查的任务集合
     * @param identityId 身份ID，用于匹配任务中是否包含该身份
     * @return 包含指定身份ID的任务ID字符串列表
     */
    List<String> queryTaskHasIdentityId(List<String> taskIds, String identityId);

    List<String> queryMyRunningTask(String userId, String courseId);
}
