namespace ROLAC.API.Services.Notifications;

/// <summary>
/// The Web Push channel — peer to <see cref="IEmailService"/> and <see cref="ILineNotificationService"/>.
/// Resolves every device subscription of the target members and pushes one notification to each,
/// pruning subscriptions the push service reports as gone and writing a NotificationLog per send.
/// </summary>
public interface IWebPushService
{
    Task<NotificationResult> SendToMembersAsync(
        IReadOnlyCollection<int> memberIds, WebPushPayload payload,
        string sentByUserId, CancellationToken ct = default);
}
