using FrameworkDAL.DTO.EIPConversation; using FrameworkDAL.DTO.MessageHub.MessageHubGenerator; using GB5Shared.DTO.Framework.Login; using System.Threading; using System.Threading.Tasks; namespace FrameworkBLL.MessageHub.MessageHubPlatforms { #region INTERFACES /// /// Unified MessageHub Platform Interfaces /// ------------------------------------- /// Each platform has exactly two independent public methods: /// 1️⃣ Template (MessageHubEngine) /// 2️⃣ Conversation / NonTemplate (MessageHubConversationEngine) /// public interface IMessageHubPlatform { /// /// Postman Platform /// public interface IPostmanPlatform { Task SendPostmanTemplate( MessageHubDTO dto, LoginDTO login, CancellationToken ct); Task SendPostmanConversation( MessageHubDTO dto, LoginDTO login, CancellationToken ct); } /// /// WhatsApp Platform /// public interface IWhatsAppPlatform { Task SendWhatsappTemplate(MessageHubDTO dto, LoginDTO login, CancellationToken ct); Task SendWhatsappConversation(MessageHubDTO dto, LoginDTO login, CancellationToken ct); } /// /// Teams Platform /// public interface ITeamsPlatform { Task SendTeamsTemplate( MessageHubDTO dto, LoginDTO login, CancellationToken ct); Task SendTeamsConversation( MessageHubDTO dto, LoginDTO login, CancellationToken ct); } /// /// Telegram Platform /// public interface ITelegramPlatform { Task SendTelegramTemplate( MessageHubDTO dto, LoginDTO login, CancellationToken ct); Task SendTelegramConversation( MessageHubDTO dto, LoginDTO login, CancellationToken ct); } /// /// Slack Platform /// public interface ISlackPlatform { Task SendSlackTemplate( MessageHubDTO dto, LoginDTO login, CancellationToken ct); Task SendSlackConversation( MessageHubDTO dto, LoginDTO login, CancellationToken ct); } public interface IEmailPlatform { Task SendEmailConversation( MessageHubDTO dto, LoginDTO loginContext, CancellationToken ct); } public interface ISMSPlatform { Task SendSmsConversation( MessageHubDTO dto, LoginDTO loginContext, CancellationToken ct); } } #endregion }