using RMuseum.Models.Notification;
using RMuseum.Models.Notification.ViewModels;
using RSecurityBackend.Models.Generic;
using System;
using System.Threading.Tasks;
namespace RMuseum.Services
{
///
/// Internal messaging system interface
///
public interface IRNotificationService
{
///
/// Add Notification
///
///
///
///
///
Task> PushNotification(Guid userId, string subject, string htmlText);
///
/// Get User Notifications
///
///
///
Task> GetUserNotifications(Guid userId);
///
/// Get Unread User Notifications Count
///
///
///
Task> GetUnreadUserNotificationsCount(Guid userId);
///
/// Switch Notification Status
///
///
///
/// updated notification object
Task> SwitchNotificationStatus(Guid notificationId, Guid userId);
///
/// Set All User Notifications Status
///
///
///
///
Task> SetAllNotificationsStatus(Guid userId, NotificationStatus status);
///
/// Delete Notification
///
/// if empty deletes all read notifications
///
///
Task> DeleteNotification(Guid notificationId, Guid userId);
}
}