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);
}
}