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; } /// /// ID сообщения, на которое отвечаем. /// public string? ReplyToMessageId { get; init; } /// /// Цитировать ли оригинальное сообщение при ответе. /// public bool QuoteReply { get; init; } = true; /// /// Заголовок цитаты (для некоторых мессенджеров). /// public string? QuoteTitle { get; init; } /// /// Показывать ли предпросмотр ссылок в сообщении. /// public bool DisableWebPagePreview { get; init; } = false; /// /// Отключает уведомление о сообщении. /// public bool DisableNotification { get; init; } = false; /// /// Защищает содержимое сообщения от пересылки и сохранения. /// public bool ProtectContent { get; init; } = false; /// /// Стиль разметки сообщения (для некоторых мессенджеров). /// public MessageStyle? Style { get; init; } /// /// Позволяет указать дату отправки сообщения (для планирования). /// public DateTime? ScheduleDate { get; init; } /// /// Тема сообщения (для форумов и тредов). /// public string? Topic { get; init; } } /// /// Стиль оформления сообщения. /// public enum MessageStyle { /// Обычный стиль. Default, /// Стиль заголовка. Heading, /// Стиль предупреждения. Warning, /// Стиль успеха. Success, /// Стиль ошибки. Error }