using BotPages.Core.Messaging;
namespace BotPages.Core.Abstractions;
///
/// Универсальная структура запроса на отправку сообщения/файла, используемая адаптерами.
///
public sealed class SendRequest
{
/// Идентификатор чата/сессии в мессенджере.
public required string ChatId { get; init; }
/// Текст сообщения (если отправляется текст).
public string? Text { get; init; }
/// Формат текста (HTML/Markdown/Plain).
public MessageFormat? TextFormat { get; init; }
/// Inline кнопки (строки кнопок).
public IEnumerable>? Inline { get; init; }
/// Reply клавиатура (строки кнопок).
public IEnumerable>? Reply { get; init; }
/// Id редактируемого сообщения (если редактируем).
public string? MessageId { get; init; }
/// Файл для отправки (если отправляется файл).
public FileDescriptor? File { get; init; }
/// Подпись для файла.
public string? Caption { get; init; }
/// Формат подписи/подписи для файла.
public MessageFormat? CaptionFormat { get; init; }
///
/// Контейнер адаптер-специфичных опций.
/// Содержит имена/ключи адаптеров и соответствующие объекты опций.
///
public AdapterOptionsBag? AdapterOptions { get; init; }
}