package jnpf.cultivate.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import jnpf.model.cultivate.po.FtbCultivatePositionCourseCertificate;
import jnpf.model.cultivate.dto.learn.BatchCommonCountDto;
import jnpf.model.cultivate.v2.position.vo.FtbCultivatePositionCourseCertificateWithNameVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
*
*
*@Author: peng.hao
*@create: 2024/9/10:10:30
*/
public interface FtbCultivatePositionCourseCertificateMapper extends BaseMapper<FtbCultivatePositionCourseCertificate> {
    
    /**
     * 根据岗位学习 ID 列表统计证书数量
     */
    List<BatchCommonCountDto> countByPositionLearnIds(@Param("positionLearnIds") List<String> positionLearnIds);
    
    /**
     * 根据岗位学习 ID 查询证书列表（关联证书表，过滤上架且未删除）
     */
    List<FtbCultivatePositionCourseCertificate> listByPostLearnId(@Param("postLearnId") String postLearnId);
    
    /**
     * 根据岗位学习 ID 和课程 IDs 查询证书列表（关联证书表，过滤上架且未删除）
     */
    List<FtbCultivatePositionCourseCertificate> listByPostLearnIdAndCourseIds(@Param("postLearnId") String postLearnId, @Param("courseIds") List<String> courseIds);

    /**
     * 根据岗位学习ID查询证书列表（包含证书名称）
     *
     * @param postLearnId 岗位学习 ID
     * @return FtbCultivatePositionCourseCertificateWithNameVo 对象列表
     */
    List<FtbCultivatePositionCourseCertificateWithNameVo> listByPostLearnIdWithName(@Param("postLearnId") String postLearnId);

    /**
     * 根据岗位学习 ID 和课程 IDs 查询证书列表（包含证书名称）
     *
     * @param postLearnId 岗位学习 ID
     * @param courseIds   课程 ID 列表
     * @return FtbCultivatePositionCourseCertificateWithNameVo 对象列表
     */
    List<FtbCultivatePositionCourseCertificateWithNameVo> listByPostLearnIdAndCourseIdsWithName(
            @Param("postLearnId") String postLearnId,
            @Param("courseIds") List<String> courseIds);
}