using System.Threading.Tasks; using System.Collections.Generic; using NPP.SmartSchedue.Api.Contracts.Services.Notification.Input; using NPP.SmartSchedue.Api.Contracts.Services.Notification.Output; namespace NPP.SmartSchedue.Api.Contracts.Services.Notification; /// /// 系统消息服务接口 /// 决策点1:基础通知方式 - 系统消息通知 /// public interface ISystemMessageService { #region 单个消息发送 /// /// 发送系统消息 /// /// 发送系统消息输入模型 /// 发送结果 Task SendSystemMessageAsync(SendSystemMessageInput input); /// /// 发送带操作按钮的系统消息 /// /// 发送带操作按钮的系统消息输入模型 /// 发送结果 Task SendSystemMessageWithActionsAsync(SendSystemMessageWithActionsInput input); #endregion #region 批量消息发送 /// /// 批量发送系统消息 /// /// 批量发送系统消息输入模型 /// 批量发送结果 Task BatchSendSystemMessageAsync(BatchSendSystemMessageInput input); /// /// 个性化批量发送系统消息 /// 每个收件人可以有不同的消息内容 /// /// 消息项列表 /// 批量发送结果 Task BatchSendPersonalizedSystemMessageAsync(List messageItems); #endregion #region 消息模板 /// /// 使用模板发送系统消息 /// /// 使用模板发送系统消息输入模型 /// 发送结果 Task SendSystemMessageByTemplateAsync(SendSystemMessageByTemplateInput input); #endregion #region 消息管理 /// /// 标记消息为已读 /// /// 消息ID /// 接收人员ID /// 操作结果 Task MarkMessageAsReadAsync(long messageId, long recipientPersonnelId); /// /// 批量标记消息为已读 /// /// 消息ID列表 /// 接收人员ID /// 操作结果 Task BatchMarkMessagesAsReadAsync(List messageIds, long recipientPersonnelId); /// /// 删除消息 /// /// 消息ID /// 接收人员ID /// 操作结果 Task DeleteMessageAsync(long messageId, long recipientPersonnelId); /// /// 获取用户未读消息数量 /// /// 接收人员ID /// 未读消息数量 Task GetUnreadMessageCountAsync(long recipientPersonnelId); #endregion }