package jnpf.cultivate.service;

import com.baomidou.mybatisplus.extension.service.IService;
import jnpf.model.cultivate.po.FtbCultivatePositionCourseCertificate;
import jnpf.model.cultivate.v2.position.vo.FtbCultivatePositionCourseCertificateWithNameVo;

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

/**
 * @Author: peng.hao
 * @create: 2024/9/10:10:30
 */
public interface FtbCultivatePositionCourseCertificateService extends IService<FtbCultivatePositionCourseCertificate> {

    /**
     * 根据岗位学习ID列表统计证书数量
     */
    Map<String, Long> countByPositionLearnIds(List<String> positionLearnIds);

    /**
     * 根据岗位学习ID查询所有有效证书
     */
    List<FtbCultivatePositionCourseCertificate> listByPostLearnId(String postLearnId);
    
    /**
     * 根据岗位学习ID和课程ID列表查询所有有效证书
     */
    List<FtbCultivatePositionCourseCertificate> listByPostLearnIdAndCourseIds(String postLearnId, List<String> courseIds);

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

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