package com.ym.mec.biz.service;

import java.util.List;
import java.util.Set;

import com.ym.mec.biz.dal.dto.ImUserFriendDto;
import com.ym.mec.biz.dal.entity.ImUserFriend;
import com.ym.mec.biz.dal.enums.GroupType;
import com.ym.mec.common.service.BaseService;

public interface ImUserFriendService extends BaseService<Long, ImUserFriend> {

	/**
	 * 添加好友
	 * @param userId 用户编号
	 * @param friendUserId 好友编号
	 * @param nickname 昵称
	 * @param memo 备注
	 * @return
	 */
	boolean addFriend(Integer userId, Integer friendUserId, String nickname, String memo);

	/**
	 * 删除好友
	 * @param userId 用户编号
	 * @param friendUserId 好友编号
	 * @return
	 */
	boolean deleteFriend(Integer userId, Integer friendUserId);

	/**
	 * 修改好友昵称
	 * @param userId 用户编号
	 * @param friendUserId 好友编号
	 * @param nickname 昵称
	 * @return
	 */
	boolean updateFriendNickname(Integer userId, Integer friendUserId, String nickname);

	/**
	 * 根据条件查询指定用户的好友列表
	 * @param userId 指定用户的编号
	 * @param search 搜索条件
	 * @return
	 */
	List<ImUserFriendDto> queryFriendListByUserId(Integer userId, String search);

	/**
	 * 查询当前用户的好友详情
	 * @param userId 当前用户编号
	 * @param friendUserId 好友编号
	 * @return
	 */
	ImUserFriendDto queryFriendDetail(Integer userId, Integer friendUserId);

	/**
	 * 用户通讯录新增
	 * @param imUserFriends
	 */
    void batchInsert(List<ImUserFriend> imUserFriends);

	/**
	 * 刷新班级通讯录
	 * @param courseScheduleId
	 * @author zouxuan
	 */
	void refreshCourseImUserFriend(Long courseScheduleId);

	/**
	 * 刷新班级通讯录
	 * @param classGroupId
	 * @author zouxuan
	 */
	void refreshClassImUserFriend(Integer classGroupId);

	/**
	 * 刷新课程组通讯录
	 * @param musicGroupId
	 * @param groupType
	 * @author zouxuan
	 */
	void refreshGroupImUserFriend(String musicGroupId,GroupType groupType);
}