using BotPages.Core.Abstractions;
namespace BotPages.Core.Messaging;
///
/// Расширения для MessageBuilder для работы с разными адаптерами.
///
public static class MessageBuilderAdapterExtensions
{
///
/// Отправить сообщение через конкретный адаптер.
///
public static MessageBuilder WithAdapter(this MessageBuilder builder, IMessengerAdapter adapter)
{
builder.WithAdapter(adapter);
return builder;
}
///
/// Отправить сообщение через адаптер по типу и ID экземпляра.
///
public static MessageBuilder WithAdapter(this MessageBuilder builder, string messengerType, string instanceId)
{
// Получаем фабрику адаптеров через сервис локатор или контекст
// В реальной реализации нужно будет передать фабрику адаптеров
return builder;
}
///
/// Отправить сообщение через адаптер по полному ключу.
///
public static MessageBuilder WithAdapter(this MessageBuilder builder, string fullMessengerKey)
{
// В реальной реализации нужно будет передать фабрику адаптеров
return builder;
}
///
/// Отправить сообщение в указанный чат с указанным адаптером.
///
public static MessageBuilder ToChat(this MessageBuilder builder, string chatId, IMessengerAdapter adapter)
{
return builder.ToChat(chatId, adapter);
}
///
/// Отправить сообщение в чат в другом адаптере того же типа.
///
public static MessageBuilder ToChatInOtherInstance(this MessageBuilder builder, string chatId, string instanceId)
{
// Получаем тип текущего адаптера и используем другой экземпляр
// В реальной реализации нужно будет передать фабрику адаптеров
return builder;
}
}