package jnpf.cultivate.service;

import com.baomidou.mybatisplus.extension.service.IService;
import jnpf.model.cultivate.dto.course.app.FtbUserLevelMessageReadDTO;
import jnpf.model.cultivate.po.course.app.CultivateCourseMsg;
import jnpf.model.cultivate.vo.course.app.FtbCheckJobGradeChangeVO;
import jnpf.model.cultivate.vo.course.app.FtbCultivateCourseMsgForAppVO;

import java.util.List;

/**
 * @Title:CultivateCourseMsgService
 * @Author:peng.hao
 * @create: 2023/12/2913:35
 */
public interface CultivateCourseMsgService extends IService<CultivateCourseMsg> {

    /**
     * 查询用户未读的培养课程消息
     *
     * @return 用户未读的培养课程消息列表
     */
    List<FtbCultivateCourseMsgForAppVO> queryUserUnreadMsg();

    /**
     * 检查岗位变化
     *
     * @param type 变化类型
     * @return 职务等级变化列表
     */
    List<FtbCheckJobGradeChangeVO> checkJobGradeChanges(Integer type);

    /**
     * 标记用户等级消息为已读
     *
     * @param ftbUserLevelMessageReadDTO 用户等级消息已读的详细信息
     */
    void userLevelMessageHasBeenRead(FtbUserLevelMessageReadDTO ftbUserLevelMessageReadDTO);

    /**
     * 查询用户未读的培养课程消息（根据课程ID进行更新）
     *
     * @param courseId 课程ID
     * @return 用户未读的培养课程消息列表（已更新）
     */
    List<FtbCultivateCourseMsgForAppVO> queryUserUnreadMsgUpdate(String courseId);

    List<FtbCultivateCourseMsgForAppVO> queryUserUnreadMsgV2( String courseId);

    void updateInfoByMsgIdV2(String courseId);
}
