using System.Collections.Generic;
using System.Threading.Tasks;
using Datory;

namespace GxPress.Repository.Interface.Friends
{
    public interface IFriendsRepository : IRepository
    {
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        Task<int> AddAsync(Entity.Friends model);
        /// <summary>
        /// 删除我的好友
        /// </summary>
        /// <param name="friendsIds"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task<bool> DeleteAsync(IEnumerable<int> friendsIds, int userId);
        /// <summary>
        /// 获取好友数据
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="addressBookGroupId"></param>
        /// <returns></returns>
        Task<IEnumerable<int>> GetFriendsIdsAsync(int userId, int addressBookGroupId);

        /// <summary>
        /// 好友移动到自己分组
        /// </summary>
        /// <param name="friendsUserId"></param>
        /// <param name="userId"></param>
        /// <param name="addressBookGroupId"></param>
        /// <returns></returns>
        Task<bool> UpdateAddressBookGroupId(IEnumerable<int> friendsUserId, int userId, int addressBookGroupId);
        /// <summary>
        /// 是否是好友
        /// </summary>
        /// <param name="friendsUserId"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task<bool> ExistsAsync(int friendsUserId, int userId);
    }
}