<?php

namespace modules\edgegateway;

require_once WD . '/modules/edgegateway/config/edgegateway_enabled_c.php';
require_once WD . '/modules/edgegateway/config/edgegateway_default_release_channel_c.php';
require_once WD . '/modules/edgegateway/config/edgegateway_default_update_window_c.php';
require_once WD . '/modules/edgegateway/config/edgegateway_broker_url_c.php';
require_once WD . '/modules/edgegateway/config/edgegateway_public_broker_url_c.php';
require_once WD . '/modules/edgegateway/config/edgegateway_broker_auth_mode_c.php';
require_once WD . '/modules/edgegateway/config/edgegateway_broker_shared_secret_c.php';

use modules\edgegateway\config\edgegateway_broker_auth_mode_c;
use modules\edgegateway\config\edgegateway_broker_shared_secret_c;
use modules\edgegateway\config\edgegateway_broker_url_c;
use modules\edgegateway\config\edgegateway_default_release_channel_c;
use modules\edgegateway\config\edgegateway_default_update_window_c;
use modules\edgegateway\config\edgegateway_enabled_c;
use modules\edgegateway\config\edgegateway_public_broker_url_c;
use traits\module_config_t;

class edgegateway_c
{
    use module_config_t;

    public edgegateway_enabled_c $enabled;
    public edgegateway_default_release_channel_c $default_release_channel;
    public edgegateway_default_update_window_c $default_update_window;
    public edgegateway_broker_url_c $broker_url;
    public edgegateway_public_broker_url_c $public_broker_url;
    public edgegateway_broker_auth_mode_c $broker_auth_mode;
    public edgegateway_broker_shared_secret_c $broker_shared_secret;

    public function __construct()
    {
        $this->setupConfig('edgegateway');
        $this->allowUpdate([
            edgegateway_enabled_c::class,
            edgegateway_default_release_channel_c::class,
            edgegateway_default_update_window_c::class,
            edgegateway_broker_url_c::class,
            edgegateway_public_broker_url_c::class,
            edgegateway_broker_auth_mode_c::class,
        ]);
        $this->enabled = new edgegateway_enabled_c();
        $this->default_release_channel = new edgegateway_default_release_channel_c();
        $this->default_update_window = new edgegateway_default_update_window_c();
        $this->broker_url = new edgegateway_broker_url_c();
        $this->public_broker_url = new edgegateway_public_broker_url_c();
        $this->broker_auth_mode = new edgegateway_broker_auth_mode_c();
        $this->broker_shared_secret = new edgegateway_broker_shared_secret_c();
    }
}
