namespace BotPages.Core.Context; using BotPages.Core.Abstractions; /// /// Тип входящего обновления. /// [Flags] public enum UpdateKind { /// Неизвестное сообщение. None = 0, /// Текстовое сообщение. Text = 1 << 0, /// Файлы (один или несколько). File = 1 << 1, /// Нажатие кнопки. Button = 1 << 2, } /// /// Контекст входящего обновления от мессенджера. /// Содержит нормализованные данные для страниц. /// public sealed class UpdateContext { /// Тип мессенджера. public required string MessengerType { get; init; } /// /// Данные пользователя, от которого пришло обновление. /// public required UserContext User { get; init; } /// /// Данные чата, в котором произошло обновление. /// public required ChatContext Chat { get; init; } /// /// Тип обновления (текст, файлы, кнопка). /// public required UpdateKind Kind { get; init; } /// /// Текст сообщения, если Kind = Text. /// Payload кнопки, если Kind = Button. /// public string? Text { get; init; } /// /// Список файлов, если Kind = File. /// Может содержать один или несколько файлов. /// public List Files { get; init; } = new(); }