package com.ym.mec.biz.service;

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

import com.ym.mec.biz.dal.entity.ImGroupMember;
import com.ym.mec.common.service.BaseService;

public interface ImGroupMemberService extends BaseService<Long, ImGroupMember> {

	/**
	 * 加入群组
	 * @param imGroupId 群编号
	 * @param userId 用户编号
	 * @param roleType 角色类型
	 * @param isAdmin 是否是管理员
	 * @return
	 */
	boolean join(Long imGroupId, Integer userId, String roleType, boolean isAdmin);

	/**
	 * 批量加入群组
	 * @param imGroupId 群组编号
	 * @param userRoleMap key-用户编号  value-角色类型
	 * @return
	 */
	boolean join(Long imGroupId, Map<Integer, String> userRoleMap);

	/**
	 * 指定用户退出群组
	 * @param imGroupId 群组编号
	 * @param userId 指定的用户编号
	 * @return
	 */
	boolean quit(Long imGroupId, Integer userId);

	/**
	 * 退出指定群组
	 * @param imGroupIdList 群组编号列表
	 * @param userId 用户编号
	 * @return
	 */
	boolean quit(List<Long> imGroupIdList, Integer userId);

	/**
	 * 用户批量退出群组
	 * @param imGroupId 群组编号
	 * @param userIdList 学生编号
	 * @return
	 */
	boolean quit(Long imGroupId, List<Integer> userIdList);

	/**
	 * 修改角色类型
	 * @param imGroupId 群组编号
	 * @param userId 用户编号
	 * @param roleType 角色类型
	 * @return
	 */
	boolean updateRoleType(Long imGroupId, Integer userId, String roleType);

}