using Microsoft.Extensions.Configuration; namespace MatrixContentFilter; public class MatrixContentFilterConfiguration { public MatrixContentFilterConfiguration(IConfiguration config) => config.GetRequiredSection("MatrixContentFilter").Bind(this); public List Admins { get; set; } = new(); public ConcurrencyLimitsConfiguration ConcurrencyLimits { get; set; } = new(); public string AppMode { get; set; } = "bot"; public string AsyncQueueImplementation { get; set; } = "lifo"; public SanityCheckConfiguration SanityCheck { get; set; } = new(); public OpenTelemetryConfiguration OpenTelemetry { get; set; } = new(); public class ConcurrencyLimitsConfiguration { public int Redactions { get; set; } = 1; public int LogMessages { get; set; } = 1; } public class SanityCheckConfiguration { public bool Enabled { get; set; } = false; public int MaxConcurrency { get; set; } = 1; public TimeSpan Interval { get; set; } = TimeSpan.FromMinutes(5); } public class OpenTelemetryConfiguration { public bool Enabled { get; set; } = false; public string Endpoint { get; set; } public string ServiceName { get; set; } public string Environment { get; set; } } }