using FrameworkDAL.DTO.EIPConversation; using GB5Shared.DTO.Framework.Login; using System.Threading; using System.Threading.Tasks; namespace FrameworkBLL.EIPConversation.EIPHandlers.ChannelHandler { /// /// Generic interface for all platform/channel handlers. /// Each handler implements this and specifies which channel/platform it supports. /// public interface IEIPChannelHandler { string ChannelName { get; } /// /// Determines if this handler can handle the given channel/platform. /// Example values: "SMS", "Teams", "Telegram", "Slack", "Postman", "WhatsApp". /// /// The platform/channel type /// True if this handler can send messages to the channel bool CanHandle(string channel); /// /// Sends a response/message to the target channel/platform. /// All platform-specific handlers implement this method. /// /// The response context containing message, recipient, buttons, etc. /// Login information for tenant/user /// Cancellation token for async operation /// Response object indicating success/failure of sending Task SendAsync( EIPResponseContext context, LoginDTO loginDTO, CancellationToken cancellationToken); } }