using Microsoft.AspNetCore.Builder;
namespace Telegrator.Hosting.Web
{
///
/// Configuration options for Telegram bot behavior and execution settings.
/// Controls various aspects of bot operation including concurrency, routing, webhook receiving, and execution policies.
///
public class TelegramBotWebOptions : TelegratorOptions
{
///
/// Gets or sets HTTPS URL to send updates to. Use an empty string to remove webhook integration
///
public required string WebhookUri { get; set; }
///
/// A secret token to be sent in a header “X-Telegram-Bot-Api-Secret-Token” in every webhook request, 1-256 characters.
/// Only characters A-Z, a-z, 0-9, _ and - are allowed.
/// The header is useful to ensure that the request comes from a webhook set by you.
///
public string? SecretToken { get; set; }
///
/// The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery, 1-100. Defaults to 40.
/// Use lower values to limit the load on your bot's server, and higher values to increase your bot's throughput.
///
public int MaxConnections { get; set; } = 40;
///
/// Pass true to drop all pending updates
///
public bool DropPendingUpdates { get; set; }
///
public string[]? Args { get; init; }
///
public string? EnvironmentName { get; init; }
///
public string? ApplicationName { get; init; }
///
public string? ContentRootPath { get; init; }
///
public string? WebRootPath { get; init; }
internal WebApplicationOptions ToWebApplicationOptions() => new WebApplicationOptions()
{
ApplicationName = ApplicationName,
Args = Args,
ContentRootPath = ContentRootPath,
EnvironmentName = EnvironmentName,
WebRootPath = WebRootPath
};
}
}