Добавьте файлы проекта.
This commit is contained in:
18
BotPages.Core/Context/ChatContext.cs
Normal file
18
BotPages.Core/Context/ChatContext.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
namespace BotPages.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Описывает чат/конверсацию для универсального контекста.
|
||||
/// </summary>
|
||||
public sealed class ChatContext
|
||||
{
|
||||
/// <summary>
|
||||
/// Уникальный идентификатор чата/диалога.
|
||||
/// </summary>
|
||||
public long Id { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Человеко-читаемое имя чата (если доступно).
|
||||
/// </summary>
|
||||
public string? Title { get; init; }
|
||||
}
|
||||
}
|
||||
12
BotPages.Core/Context/FileDescriptor.cs
Normal file
12
BotPages.Core/Context/FileDescriptor.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
namespace BotPages.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Универсальный дескриптор файла для операций загрузки/отправки.
|
||||
/// </summary>
|
||||
public sealed record FileDescriptor(
|
||||
string Id,
|
||||
string Name,
|
||||
string MimeType,
|
||||
Stream? Content = null
|
||||
);
|
||||
}
|
||||
48
BotPages.Core/Context/UpdateContext.cs
Normal file
48
BotPages.Core/Context/UpdateContext.cs
Normal file
@@ -0,0 +1,48 @@
|
||||
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; }
|
||||
}
|
||||
}
|
||||
18
BotPages.Core/Context/UserContext.cs
Normal file
18
BotPages.Core/Context/UserContext.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
namespace BotPages.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Описывает пользователя для универсального контекста.
|
||||
/// </summary>
|
||||
public sealed class UserContext
|
||||
{
|
||||
/// <summary>
|
||||
/// Уникальный идентификатор пользователя в транспортном слое.
|
||||
/// </summary>
|
||||
public long Id { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Отображаемое имя пользователя (если доступно).
|
||||
/// </summary>
|
||||
public string? DisplayName { get; init; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user