Files
meezi/src/Meezi.Core/Interfaces/IPushSender.cs
T

33 lines
1.0 KiB
C#
Raw Normal View History

namespace Meezi.Core.Interfaces;
/// <summary>
/// Sends push notifications through the Pushe gateway (Iran-safe; FCM is
/// unreliable inside Iran). Topics are subscribed client-side via the native
/// Pushe SDK; this service triggers the actual sends from the backend.
/// </summary>
public interface IPushSender
{
/// <summary>
/// Broadcasts to every device subscribed to a Pushe topic.
/// Topics: <c>city-{slug}</c> (marketing / new cafés),
/// <c>cafe-{slug}</c> (saved-café alerts).
/// </summary>
Task SendToTopicAsync(
string topic,
string title,
string body,
string? deepLink = null,
CancellationToken cancellationToken = default);
/// <summary>
/// Sends to one or more specific device tokens — used for transactional
/// order / reservation updates.
/// </summary>
Task SendToTokensAsync(
IReadOnlyCollection<string> tokens,
string title,
string body,
string? deepLink = null,
CancellationToken cancellationToken = default);
}