using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Datory;
using GxPress.Entity.Missive;
using GxPress.Request.App.Missive;
using GxPress.Result.App.Missive;

namespace GxPress.Repository.Interface.Missive
{
    public interface IMissiveAddresseeRepository : IRepository
    {
        Task<int> InsertAsync(MissiveAddressee missiveAddressee);

        Task<MissiveAddressee> GetAsync(int id);

        Task<bool> UpdateAsync(MissiveAddressee missiveAddressee);

        Task<bool> DeleteAsync(SqlKata.Query query);

        Task<bool> UpdateAsync(SqlKata.Query query);


        Task<IEnumerable<MissiveAddressee>> GetAllAsync(SqlKata.Query query);

          /// <summary>
        /// 获取站内信已读未读数据
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
       Task<IEnumerable<MissiveReadListResult>> GetMissiveReadListAsync(MissiveReadListRequest request);
        /// <summary>
        /// list 添加站内信收件人
        /// </summary>
        /// <param name="missiveAddressees"></param>
        /// <returns></returns>
        Task<bool> InsertAsync(List<MissiveAddressee> missiveAddressees);
    }
}
