package jnpf.cultivate.service;


import com.baomidou.mybatisplus.extension.service.IService;
import jnpf.model.cultivate.dto.promotion.FtbCultivatePromotionMemberDto;
import jnpf.model.cultivate.po.promotion.FtbCultivatePromotionMember;
import jnpf.model.cultivate.vo.promotion.FtbCultivateMeberVO;
import jnpf.model.cultivate.vo.promotion.FtbCultivatePromotionVO;
import jnpf.permission.model.position.PositionGradesInfoBoundVO;
import jnpf.permission.model.userrelation.UserRelationPositionGrades;

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

/**
 * web晋升通道成员管理模块 service
 */
public interface FtbCultivatePromotionMemberService extends IService<FtbCultivatePromotionMember> {

    /**
     * 根据当前晋升通道id查询通道成员(包含未启用的通道成员,已启用的)
     * @param id
     * @return
     */
    FtbCultivateMeberVO queryChannelMembers(String id);

    /**
     * 根据用户id或者岗位id查询当前用户的晋升通道
     *
     * @param userId
     * @param postId
     * @return
     */
    List<FtbCultivatePromotionVO> queryPromotionByUserOrPostId(String userId, String postId);
    /**
     * 将成员添加到晋升通道
     *
     * @param dto 用户ID
     */
    void addMembersToProChannel(FtbCultivatePromotionMemberDto dto);
    /**
     * 根据用户ID和岗位ID查询培养晋升信息
     * 该方法用于根据特定的用户和岗位查询相关的培养晋升详情
     *
     * @param userId 用户ID
     * @param postId 岗位ID
     * @return 返回用户的培养晋升信息对象
     */
    FtbCultivatePromotionVO queryPromotionByUser(String userId, String postId);

    /**
     * 批量删除会员到专业通道的关联信息
     * 该方法用于从专业通道中批量删除会员的关联信息
     *
     * @param dto 包含会员ID的列表
     */
    void deleteMembersToProChannel(List<String> dto);

    /**
     * 删除组织和岗位等级的关系
     * 该方法用于删除特定组织和岗位等级之间的关系
     *
     * @param organizeId 组织ID
     * @param userRelationPositionGrades 用户和岗位等级的关系对象
     */
    void deleteRelation(String organizeId, UserRelationPositionGrades userRelationPositionGrades);

}
