namespace BotPages.Core
{
///
/// Middleware троттлинга для ограничений нагрузки.
///
public sealed class ThrottleMiddleware : IUpdateMiddleware
{
private readonly TimeSpan _delay;
///
/// Создаёт middleware троттлинга.
///
public ThrottleMiddleware(TimeSpan delay) => _delay = delay;
///
/// Добавляет искусственную задержку перед продолжением обработки.
///
public async Task InvokeAsync(UpdateContext ctx, Func next, CancellationToken ct)
{
await Task.Delay(_delay, ct);
await next();
}
}
}