package com.ym.mec.biz.service;

import com.ym.mec.biz.dal.dto.ImGroupDto;
import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
import com.ym.mec.biz.dal.dto.NameDto;
import com.ym.mec.biz.dal.entity.ImGroup;
import com.ym.mec.biz.dal.page.GroupMemberQueryInfo;
import com.ym.mec.common.page.PageInfo;
import com.ym.mec.common.service.BaseService;

import java.util.List;

public interface ImGroupService extends BaseService<String, ImGroup> {

	/**
	 * 创建群组
	 * @param id 群编号
	 * @param userId 创建人编号
	 * @param name 群名称
	 * @param introduce 群介绍
	 * @param memo 群备注
	 * @param tags 群标签
	 * @param img 群图像
	 * @param type 群类型
	 * @return
	 */
	ImGroup create(String id, Integer userId, String name, String introduce, String memo, String tags, String img, String type, ImGroup.GroupTypeEnum groupType);

	/**
	* @description: 创建非课程类型的业务群组
	* @return java.lang.String
	* @author zx
	* @date 2022/6/7 15:20
	*/
	String createGroup(ImGroupDto imGroupDto);

	/**
	 * 解散群组
	 * @param imGroupId
	 * @return
	 */
	boolean cancel(String imGroupId);

	/**
	 * 查询用户所在的群列表
	 * @param userId
	 * @param search
	 * @return
	 */
	List<ImGroup> queryByUserId(Integer userId, String search,String groupType);

	/**
	 * 查询群成员列表
	 * @param imGroupId
	 * @return
	 */
	List<ImGroupMemberDto> queryMemberById(String imGroupId);

	/**
	 * 查询指定用户在群众的信息
	 * @param imGroupId 群编号
	 * @param userId 指定的用户编号
	 * @return
	 */
	ImGroupMemberDto queryMember(String imGroupId, Integer userId);

	/**
	 * 修改用户在群、通讯录的备注
	 * @param userId
	 * @param nickName
	 * @return
	 */
    int updateNickName(Integer userId, String nickName);

	/**
	 * 修改用户在群、通讯录的备注
	 * @param userId
	 * @param nickName
	 * @return
	 */
	void updateNickName1(Integer userId, String nickName);

	void updateImGroup(ImGroup imGroup);

	//解散群组
	void dismissGroup(String imGroupId);

	/**
	* @description: 获取群聊、用户详情
	 * @param nameDto
	* @return java.lang.Object
	* @author zx
	* @date 2022/8/8 10:10
	*/
	List<NameDto> queryDetail(List<NameDto> nameDto);
}