using DysonNetwork.Shared.Models; using MagicOnion; using System.Collections.Generic; using System.Threading.Tasks; namespace DysonNetwork.Shared.Services; public interface INotificationService : IService { /// /// Unsubscribes a device from push notifications /// /// The device ID to unsubscribe Task UnsubscribePushNotifications(string deviceId); /// /// Subscribes a device to push notifications /// Task SubscribePushNotification( Account account, NotificationPushProvider provider, string deviceId, string deviceToken ); Task SendNotification( Account account, string topic, string? title = null, string? subtitle = null, string? content = null, Dictionary? meta = null, string? actionUri = null, bool isSilent = false, bool save = true ); Task DeliveryNotification(Notification notification); Task MarkNotificationsViewed(ICollection notifications); Task BroadcastNotification(Notification notification, bool save = false); Task SendNotificationBatch(Notification notification, List accounts, bool save = false); }