<?php

namespace gatewayapi;
$GatewayAPI_path = __DIR__;
$GatewayAPI_config_path = $GatewayAPI_path . '/config';
/** Universal */
require_once $GatewayAPI_path . '/config/gatewayapi_enabled_c.php';
require_once $GatewayAPI_path . '/config/gatewayapi_api_key_c.php';
require_once $GatewayAPI_path . '/config/gatewayapi_api_secret_c.php';
require_once $GatewayAPI_path . '/config/gatewayapi_sender_c.php';
require_once $GatewayAPI_path . '/config/gatewayapi_api_token_c.php';

use gatewayapi\config\gatewayapi_api_key_c;
use gatewayapi\config\gatewayapi_api_secret_c;
use gatewayapi\config\gatewayapi_api_token_c;
use gatewayapi\config\gatewayapi_enabled_c;
use gatewayapi\config\gatewayapi_sender_c;
use traits\module_config_t;

class gatewayapi_c
{
    use module_config_t;

    /**
     * The status of the module
     * @var gatewayapi_enabled_c
     */
    public gatewayapi_enabled_c $enabled;

    /**
     * The API key for the module
     * @var gatewayapi_api_key_c
     */
    public gatewayapi_api_key_c $api_key;
    /**
     * The API secret for the module
     * @var gatewayapi_api_secret_c
     */
    public gatewayapi_api_secret_c $api_secret;
    /**
     * The sender for the module
     * @var gatewayapi_sender_c
     */
    public gatewayapi_sender_c $sender;
    /**
     * The API token for the module
     * @var gatewayapi_api_token_c
     */
    public gatewayapi_api_token_c $api_token;


    public function __construct()
    {
        $this->setupConfig('GatewayAPI');
        $this->allowUpdate([
            gatewayapi_enabled_c::class,
            gatewayapi_api_key_c::class,
            gatewayapi_api_secret_c::class,
            gatewayapi_sender_c::class,
            gatewayapi_api_token_c::class,
        ]);
        $this->enabled = new gatewayapi_enabled_c();
        $this->api_key = new gatewayapi_api_key_c();
        $this->api_secret = new gatewayapi_api_secret_c();
        $this->sender = new gatewayapi_sender_c();
        $this->api_token = new gatewayapi_api_token_c();
    }

}