using BotPages.Core.Abstractions;
using BotPages.Core.Context;
namespace BotPages.Core;
///
/// Базовый класс страницы.
///
public abstract class Page
{
/// Вход на страницу.
public virtual Task OnEnter(PageContext ctx, CancellationToken ct) => Task.CompletedTask;
/// Общий обработчик обновлений.
public virtual Task OnUpdate(PageContext ctx, UpdateContext update, CancellationToken ct) => Task.CompletedTask;
/// Обработка текста.
public virtual Task OnText(PageContext ctx, string text, CancellationToken ct) => Task.CompletedTask;
/// Обработка файлов.
public virtual Task OnFile(PageContext ctx, List files, CancellationToken ct) => Task.CompletedTask;
/// Обработка кнопки.
public virtual Task OnButton(PageContext ctx, string payload, CancellationToken ct) => Task.CompletedTask;
/// Выход со страницы.
public virtual Task OnLeave(PageContext ctx, CancellationToken ct) => Task.CompletedTask;
/// Таймаут бездействия.
public virtual Task OnTimeout(PageContext ctx, TimeSpan timeout, CancellationToken ct) => Task.CompletedTask;
/// Обработка ошибок.
public virtual Task OnError(PageContext ctx, Exception ex, CancellationToken ct) => Task.CompletedTask;
}