namespace Meezi.Core.Interfaces; /// /// 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. /// public interface IPushSender { /// /// Broadcasts to every device subscribed to a Pushe topic. /// Topics: city-{slug} (marketing / new cafés), /// cafe-{slug} (saved-café alerts). /// Task SendToTopicAsync( string topic, string title, string body, string? deepLink = null, CancellationToken cancellationToken = default); /// /// Sends to one or more specific device tokens — used for transactional /// order / reservation updates. /// Task SendToTokensAsync( IReadOnlyCollection tokens, string title, string body, string? deepLink = null, CancellationToken cancellationToken = default); }