package jnpf.cultivate.service.impl;

import com.baomidou.mybatisplus.extension.service.IService;
import jnpf.model.cultivate.po.position.FtbCultivatePosition;
import jnpf.model.cultivate.po.position.FtbCultivatePositionCourseIdentity;
import jnpf.model.cultivate.v2.position.vo.FtbCultivatePositionCourseIdentityWithNameVo;

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

public interface FtbCultivatePositionCourseIdentityService extends IService<FtbCultivatePositionCourseIdentity> {

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

    /**
     * 根据岗位学习ID查询所有有效鉴定
     */
    List<FtbCultivatePositionCourseIdentity> listByPostLearnId(String postLearnId);

    /**
     * 根据岗位学习ID和课程ID列表查询所有有效鉴定
     */
    List<FtbCultivatePositionCourseIdentity> listByPostLearnIdAndCourseIds(String postLearnId, List<String> courseIds,String gradeId);

    List<FtbCultivatePositionCourseIdentity> queryAllPositionLearnIdentityLists();

    List<String> queryPositionBindItem(FtbCultivatePosition cultivatePosition, String gradeId);

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

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