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
}