<?php

namespace limble;
require_once WD . '/modules/limble/config/limble_enabled_c.php';
require_once WD . '/modules/limble/config/limble_webhooks_enabled_c.php';
require_once WD . '/modules/limble/config/limble_client_id_c.php';
require_once WD . '/modules/limble/config/limble_client_secret_c.php';

use limble\config\limble_client_id_c;
use limble\config\limble_client_secret_c;
use limble\config\limble_enabled_c;
use limble\config\limble_webhooks_enabled_c;
use traits\module_config_t;

class limble_c
{
    use module_config_t;

    /**
     * The API URL for the limble module
     * @var string $api_url
     */
    public string $api_url = 'https://api.limblecmms.com:443/v2'; //;'https://eu-api.limblecmms.com:443/v2';
    /**
     * The status of the module
     * @var limble_enabled_c
     */
    public limble_enabled_c $enabled;
    /**
     * The status of the webhooks
     * @var limble_webhooks_enabled_c $webhooks_enabled
     */
    public limble_webhooks_enabled_c $webhooks_enabled;
    /**
     * The client ID for the limble module
     * @var limble_client_id_c
     */
    public limble_client_id_c $client_id;
    /**
     * The client secret for the limble module
     * @var limble_client_secret_c
     */
    public limble_client_secret_c $client_secret;

    public function __construct()
    {
        $this->setupConfig('limble');
        $this->allowUpdate([
            limble_enabled_c::class,
            limble_webhooks_enabled_c::class,
            limble_client_id_c::class,
            limble_client_secret_c::class,
        ]);
        $this->enabled = new limble_enabled_c();
        $this->webhooks_enabled = new limble_webhooks_enabled_c();
        $this->client_id = new limble_client_id_c();
        $this->client_secret = new limble_client_secret_c();
    }
}