using BotPages.Core.Abstractions; namespace BotPages.Core.Context; /// /// Контекст входящего обновления от мессенджера. /// Содержит нормализованные данные для страниц. /// public sealed class UpdateContext { /// Адаптер, от которого пришло обновление. public required IMessengerAdapter Adapter { 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; } /// /// ID сообщения, к которому относится обновление. /// public string? MessageId { get; init; } /// /// ID сообщения, на которое дан ответ (если есть). /// public string? ReplyToMessageId { get; init; } /// /// Список файлов, если Kind = File. /// Может содержать один или несколько файлов. /// public List Files { get; init; } = new(); /// /// Информация о редактировании (если Kind = Edit). /// public EditInfo? EditInfo { get; init; } /// /// Информация об удалении (если Kind = Delete). /// public DeleteInfo? DeleteInfo { get; init; } /// /// Информация о закреплении (если Kind = Pin). /// public PinInfo? PinInfo { get; init; } }