using System.Collections.Generic;
using System.Threading.Tasks;
using Abp.Application.Services;
using Abp.Application.Services.Dto;
using YGNT.Exam.Messages.Dto;

namespace YGNT.Exam.Messages
{
    /// <summary>
    /// 用户消息
    /// </summary>
    public interface IUserMessageAppService : IApplicationService
    {
        /// <summary>
        /// 获取用户未读消息数量
        /// </summary>
        /// <returns></returns>
        Task<long> GetNotReadCountAsync();

        /// <summary>
        /// 获取用户消息
        /// </summary>
        /// <returns></returns>
        Task<PagedResultDto<UserMessageDto>> GetUserMessageAsync(UserMessageSearchInputDto search);

        /// <summary>
        /// 删除消息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task DeleteAsync(long id);

        /// <summary>
        /// 删除消息
        /// </summary>
        /// <param name="idList"></param>
        /// <returns></returns>
        Task DeleteListAsync(List<long> idList);

        /// <summary>
        /// 读取消息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<UserMessageInfoDto> ReadAsync(long id);

    }
}