using System.Collections.Generic;
using System.Threading.Tasks;
using GxPress.EnumConst;
using GxPress.Request._AdminVerify;
using GxPress.Result.App.AdminVerify;

namespace GxPress.Service.Interface.AdminVerify
{
    public interface IAdminVerifyService : IService
    {
        /// <summary>
        /// 清空
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task<bool> DeleteAllAsync(int userId);

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="id"></param>
        /// <param name="disposeTyeConst"></param>
        /// <returns></returns>
        Task<bool> UpdateAsync(int id, AdminVerifyTypeConst disposeTyeConst);

        /// <summary>
        /// 根据ID查询
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<Entity.AdminVerify> GetAsync(int id);

        /// <summary>
        /// 根据用户查询
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task<IEnumerable<AdminVerifySearchResult>> GetAllAsync(int userId);

        /// <summary>
        /// 查询未处理
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        Task<int> GetUDisposeCount(int userId);
        /// <summary>
        /// 添加好友
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<bool> AddFriendAsync(AdminVerifyInFriendsRequest request);
    }
}