namespace Forwarder.Models;

/// <summary>
/// Настройки передатчика.
/// </summary>
public sealed class	ForwarderOptions
{
    [ConfigurationKeyName("TCP_PORT")]
    public ushort TcpPort { get; init; }

    [ConfigurationKeyName("UDP_PORT")]
    public ushort UdpPort { get; init; }

    [ConfigurationKeyName("MESSAGE_BULK_SIZE")]
    public int MessageBulkSize { get; init; }

	[ConfigurationKeyName("API_TOKEN")]
	public string ApiToken { get; init; } = string.Empty;

	[ConfigurationKeyName("API_URL")]
	public string ApiUrl { get; init; } = string.Empty;

	[ConfigurationKeyName("SENDING_INTERVAL_IN_SECONDS")]
    public int SendingIntervalInSeconds { get; init; }

	[ConfigurationKeyName("ENABLE_TEST_MESSAGE_SENDING")]
	public bool EnableTestMessageSending { get; init; } = true;

	[ConfigurationKeyName("TEST_MESSAGE_EVENT_CODE")]
	public int TestMessageEventCode { get; init; } = 6011;
}