Catalogger.NET/Catalogger.Backend/Config.cs
2024-08-24 19:02:19 +02:00

47 lines
No EOL
1.5 KiB
C#

using Serilog.Events;
namespace Catalogger.Backend;
public class Config
{
public LoggingConfig Logging { get; init; } = new();
public DatabaseConfig Database { get; init; } = new();
public DiscordConfig Discord { get; init; } = new();
public WebConfig Web { get; init; } = new();
public class LoggingConfig
{
public LogEventLevel LogEventLevel { get; init; } = LogEventLevel.Debug;
public bool LogQueries { get; init; } = false;
public int MetricsPort { get; init; } = 5001;
public bool EnableMetrics { get; init; } = true;
}
public class DatabaseConfig
{
public string Url { get; init; } = string.Empty;
public string? Redis { get; init; }
public int? Timeout { get; init; }
public int? MaxPoolSize { get; init; }
public string EncryptionKey { get; init; } = string.Empty;
}
public class DiscordConfig
{
public ulong ApplicationId { get; set; }
public string Token { get; init; } = string.Empty;
public bool SyncCommands { get; init; }
public ulong? CommandsGuildId { get; init; }
public ulong? GuildLogId { get; init; }
public int? ShardCount { get; init; }
}
public class WebConfig
{
public string Host { get; init; } = "localhost";
public int Port { get; init; } = 5000;
public string BaseUrl { get; init; } = null!;
public string Address => $"http://{Host}:{Port}";
}
}