48 lines
1.7 KiB
C#
48 lines
1.7 KiB
C#
namespace BotPages.Core
|
|
{
|
|
/// <summary>
|
|
/// Универсальный контекст обновления, независимый от транспорта.
|
|
/// </summary>
|
|
public sealed class UpdateContext
|
|
{
|
|
/// <summary>
|
|
/// Клиент транспорта для отправки сообщений/файлов.
|
|
/// </summary>
|
|
public required IChatClient Client { get; init; }
|
|
|
|
/// <summary>
|
|
/// Контекст чата.
|
|
/// </summary>
|
|
public required ChatContext Chat { get; init; }
|
|
|
|
/// <summary>
|
|
/// Контекст пользователя.
|
|
/// </summary>
|
|
public required UserContext User { get; init; }
|
|
|
|
/// <summary>
|
|
/// Текст сообщения или полезная нагрузка колбэка, если доступна.
|
|
/// </summary>
|
|
public string? Text { get; init; }
|
|
|
|
/// <summary>
|
|
/// Список полученных файлов (если транспорт поддерживает).
|
|
/// </summary>
|
|
public IReadOnlyList<FileDescriptor>? IncomingFiles { get; init; }
|
|
|
|
/// <summary>
|
|
/// Сырой объект обновления транспорта (например, Telegram.Update).
|
|
/// </summary>
|
|
public object? RawUpdate { get; init; }
|
|
|
|
/// <summary>
|
|
/// Сервис навигации страниц.
|
|
/// </summary>
|
|
public required INavigationService Nav { get; init; }
|
|
|
|
/// <summary>
|
|
/// Хранилище состояния пользователя.
|
|
/// </summary>
|
|
public required IStateStore State { get; init; }
|
|
}
|
|
} |