using BotPages.Core.Context;
namespace BotPages.Core.Abstractions;
///
/// Контракт адаптера мессенджера.
/// Определяет операции отправки сообщений, файлов и прогресса.
///
public interface IMessengerAdapter
{
///
/// Доступные возможности мессенджера.
///
Capabilities Capabilities { get; }
///
/// Универсальный метод отправки с использованием общего описания запроса.
///
Task SendAsync(SendRequest request, CancellationToken ct = default);
///
/// Универсальный метод удаления сообщения.
///
Task DeleteAsync(string chatId, string messageId, CancellationToken ct = default);
///
/// Создать билдер альбома для отправки медиагруппы.
///
IAlbumBuilder CreateAlbumBuilder(PageContext ctx);
///
/// Вызывается при выходе со страницы.
///
Task OnLeaveAsync(PageContext ctx, CancellationToken ct);
}
///
/// Контракт конфигурации адаптера.
///
public interface IMessengerAdapterSetup : IMessengerAdapter
{
///
/// Запуск работы адаптера
///
///
///
///
Task StartAdapterAsync(Func onUpdate, List commands, CancellationToken ct);
}