public class AppConfiguration
{
    public static AppConfiguration Instance = new AppConfiguration();

    private AppConfiguration()
    {
        this.SignalAPIEndpointUri = Environment.GetEnvironmentVariable("SIGNAL_API_URI") ?? "http://192.168.1.108";
        this.SignalAPIEndpointPort = Environment.GetEnvironmentVariable("SIGNAL_API_PORT") ?? "8719";
        this.HostPhoneNumber = Environment.GetEnvironmentVariable("HOST_PHONE") ?? "+4367762751895";
        this.DatabaseUri = Environment.GetEnvironmentVariable("DB_URI") ?? "192.168.1.108";
        this.DatabasePort = Environment.GetEnvironmentVariable("DB_PORT") ?? "5477";
        this.DatabaseName = Environment.GetEnvironmentVariable("DB_NAME") ?? "sotd";
        this.DatabaseUser = Environment.GetEnvironmentVariable("DB_USER") ?? "sotd";
        this.DatabasePW = Environment.GetEnvironmentVariable("DB_PASS") ?? "SotdP0stgresP4ss";
        this.SignalGroupId = Environment.GetEnvironmentVariable("SIGNAL_GROUP_ID") ?? "group.Wmk1UTVQTnh0Sjd6a0xiOGhnTnMzZlNkc2p2Q3c0SXJiQkU2eDlNU0hyTT0=";
        this.WebUIBaseURL = Environment.GetEnvironmentVariable("WEB_BASE_URL") ?? "https://sotd.disi.dev/";
        this.UseBotTag = bool.Parse(Environment.GetEnvironmentVariable("USE_BOT_TAG") ?? "true");
    }

    public string SignalAPIEndpointUri
    {
        get; private set;
    }

    public string SignalAPIEndpointPort
    {
        get; private set;
    }

    public string DatabaseUri
    {
        get; private set;
    }

    public string DatabasePort
    {
        get; private set;
    }

    public string DatabaseName
    {
        get; private set;
    }

    public string DatabaseUser
    {
        get; private set;
    }

    public string DatabasePW
    {
        get; private set;
    }

    public string SignalGroupId
    {
        get; private set;
    }

    public string HostPhoneNumber
    {
        get; private set;
    }

    public string WebUIBaseURL
    {
        get; private set;
    }

    public bool UseBotTag
    {
        get; private set;
    }
}