<?php global $CONFIG_DB, $DEBUG, $ENCRYPTION_KEY, $CORS, $ECONOMIC_API, $WORDPRESS_STATIC_TOKEN, $USE_PROD_ECONOMIC_IN_DEBUG, $REDIS_CONFIG, $EMAIL_WASH_CERTIFICATE_TOKEN, $MINIO, $WORDPRESS_API_URL, $SLACK_DEFAULT_WEBHOOK;
$CONFIG_DB = [
    'host' => '', // IP address of the database server e.g. 127.0.0.1
    'user' => '', // Username of the database server e.g. root
    'password' => '', // Password of the database server e.g. password123
    'database' => '', // Name of the database e.g. my_database
    'ssl_mode' => 'DISABLED' // SSL mode for mysqldump: DISABLED, PREFERRED, REQUIRED, VERIFY_CA, VERIFY_IDENTITY
];
$DEBUG = true; // Set to true to enable debugging (Error messages will be shown, and this should never be used in production)
$USE_PROD_ECONOMIC_IN_DEBUG = true; // Set to true to use the production economic API in debug mode
$ENCRYPTION_KEY = ''; // 44 Characters long encryption key
$CORS = '*'; // Set to the domain that should be allowed to access the API e.g. https://example.com
$ECONOMIC_API = [
    'app_access_grant' => '', // Economic API access grant token (1)
    'app_access_grant2' => '', // Economic API access grant token (2)
    'app_secret_token' => '' // Economic API secret token
];
if ($DEBUG && !$USE_PROD_ECONOMIC_IN_DEBUG) {
    $ECONOMIC_API = [
        'app_access_grant' => '', // Development Economic API access grant token (1)
        'app_access_grant2' => '', // Development Economic API access grant token (2)
        'app_secret_token' => '' // Development Economic API secret token
    ];
}
$WORDPRESS_STATIC_TOKEN = ''; // Static token used to authenticate the WordPress plugin
$EMAIL_WASH_CERTIFICATE_TOKEN = ''; // Token used to authenticate the wash certificate generator
$WORDPRESS_API_URL = ''; // URL to the WordPress API ajax endpoint e.g. https://example.com/wp-admin/admin-ajax.php
$MINIO = [
    'endpoint' => '', // Minio endpoint e.g. http://0.0.0.0:9000
    'access_key' => '', // Minio access
    'secret_key' => '' // Minio secret key
];
$SLACK_DEFAULT_WEBHOOK = ''; // Default Slack webhook URL e.g. https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX
$REDIS_CONFIG = [
    'host' => '', // Redis host (IP address)
    'database' => 0, // Redis database number (0-15)
    'password' => '' // Redis password
];

// Set the timezone
date_default_timezone_set('Europe/Copenhagen');

/**
 * Check if the environment variables are set (If we are running in a Docker container)
 */
if (isset($_ENV['USE_ENV']) && $_ENV['USE_ENV'] === 'true') {
    // Set the configuration from the environment variables
    $ENV_VARIABLES = [
        'CONFIG_DB_HOST' => 'host',
        'CONFIG_DB_USER' => 'user',
        'CONFIG_DB_PASSWORD' => 'password',
        'CONFIG_DB_DATABASE' => 'database',
        'CONFIG_DB_SSL_MODE' => 'ssl_mode',
        'DEBUG' => 'DEBUG',
        'ENCRYPTION_KEY' => 'ENCRYPTION_KEY',
        'CORS' => 'CORS',
        'ECONOMIC_API_APP_ACCESS_GRANT' => 'app_access_grant',
        'ECONOMIC_API_APP_ACCESS_GRANT2' => 'app_access_grant2',
        'ECONOMIC_API_APP_SECRET_TOKEN' => 'app_secret_token',
        'WORDPRESS_STATIC_TOKEN' => 'WORDPRESS_STATIC_TOKEN',
        'EMAIL_WASH_CERTIFICATE_TOKEN' => 'EMAIL_WASH_CERTIFICATE_TOKEN',
        'WORDPRESS_API_URL' => 'WORDPRESS_API_URL',
        'MINIO_ENDPOINT' => 'endpoint',
        'MINIO_ACCESS_KEY' => 'access_key',
        'MINIO_SECRET_KEY' => 'secret_key',
        'SLACK_DEFAULT_WEBHOOK' => 'SLACK_DEFAULT_WEBHOOK',
        'REDIS_CONFIG_HOST' => 'host',
        'REDIS_CONFIG_DATABASE' => 'database',
        'REDIS_CONFIG_PASSWORD' => 'password'
    ];
    /**
     * Set the db configuration
     */
    $CONFIG_DB = [
        'host' => $_ENV['CONFIG_DB_HOST'],
        'user' => $_ENV['CONFIG_DB_USER'],
        'password' => $_ENV['CONFIG_DB_PASSWORD'],
        'database' => $_ENV['CONFIG_DB_DATABASE'],
        'ssl_mode' => $_ENV['CONFIG_DB_SSL_MODE'] ?? 'DISABLED'
    ];
    /**
     * Set the debug configuration
     */
    $DEBUG = $_ENV['DEBUG'];
    /**
     * Set the encryption key
     */
    $ENCRYPTION_KEY = $_ENV['ENCRYPTION_KEY'];
    /**
     * Set the CORS configuration
     */
    $CORS = $_ENV['CORS'];
    /**
     * Set the economic API configuration
     */
    $ECONOMIC_API = [
        'app_access_grant' => $_ENV['ECONOMIC_API_APP_ACCESS_GRANT'],
        'app_access_grant2' => $_ENV['ECONOMIC_API_APP_ACCESS_GRANT2'],
        'app_secret_token' => $_ENV['ECONOMIC_API_APP_SECRET_TOKEN']
    ];
    /**
     * Set the WordPress static token
     */
    $WORDPRESS_STATIC_TOKEN = $_ENV['WORDPRESS_STATIC_TOKEN'];
    /**
     * Set the email wash certificate token
     */
    $EMAIL_WASH_CERTIFICATE_TOKEN = $_ENV['EMAIL_WASH_CERTIFICATE_TOKEN'];
    /**
     * Set the WordPress API URL
     */
    $WORDPRESS_API_URL = $_ENV['WORDPRESS_API_URL'];
    /**
     * Set the Minio configuration
     */
    $MINIO = [
        'endpoint' => $_ENV['MINIO_ENDPOINT'],
        'access_key' => $_ENV['MINIO_ACCESS_KEY'],
        'secret_key' => $_ENV['MINIO_SECRET_KEY']
    ];
    /**
     * Set the Slack default webhook
     */
    $SLACK_DEFAULT_WEBHOOK = $_ENV['SLACK_DEFAULT_WEBHOOK'];
    /**
     * Set the Redis configuration
     */
    $REDIS_CONFIG = [
        'host' => $_ENV['REDIS_CONFIG_HOST'],
        'database' => $_ENV['REDIS_CONFIG_DATABASE'],
        'password' => $_ENV['REDIS_CONFIG_PASSWORD']
    ];

    // Set the timezone
        date_default_timezone_set($_ENV['CONFIG_TIMEZONE']) ?? 'Europe/Copenhagen';

}