/**
 * Descomplicar® Crescimento Digital
 * https://descomplicar.pt
 */

<?php

defined('BASEPATH') or exit('No direct script access allowed');

/**
 * Desk-Moloni Module Autoloader Configuration
 * 
 * Simple CodeIgniter-compatible autoload configuration
 * Avoids PSR-4 conflicts and follows Perfex CRM standards
 * 
 * @package    DeskMoloni
 * @version    3.0.0
 * @author     Descomplicar®
 */

// Define module constants if not already defined
if (!defined('DESK_MOLONI_MODULE_NAME')) {
    define('DESK_MOLONI_MODULE_NAME', 'desk_moloni');
}

if (!defined('DESK_MOLONI_MODULE_VERSION')) {
    define('DESK_MOLONI_MODULE_VERSION', '3.0.1');
}

if (!defined('DESK_MOLONI_MODULE_PATH')) {
    define('DESK_MOLONI_MODULE_PATH', dirname(dirname(__FILE__)) . '/');
}

/*
| -------------------------------------------------------------------
| AUTO-LOADER
| -------------------------------------------------------------------
| This file specifies which systems should be loaded by default.
|
| In order to keep the framework as light-weight as possible only the
| absolute minimal resources are loaded by default. For example,
| the database is not connected to automatically since no assumption
| is made regarding whether you intend to use it.  This file lets
| you globally define which systems you would like loaded with every
| request.
|
*/

/*
| -------------------------------------------------------------------
|  Auto-load Packages
| -------------------------------------------------------------------
| Prototype:
|
|  $autoload['packages'] = array(APPPATH.'third_party', '/usr/local/shared');
|
*/
$autoload['packages'] = array();

/*
| -------------------------------------------------------------------
|  Auto-load Libraries
| -------------------------------------------------------------------
| These are the classes located in system/libraries/ or your
| application/libraries/ folder, with the addition of the
| 'database' library, which is somewhat of a special case.
|
| Prototype:
|
|	$autoload['libraries'] = array('database', 'email', 'session');
|
| You can also supply an alternative library name to be assigned
| in the controller:
|
|	$autoload['libraries'] = array('user_agent' => 'ua');
*/
$autoload['libraries'] = array();

/*
| -------------------------------------------------------------------
|  Auto-load Drivers
| -------------------------------------------------------------------
| These classes are located in system/libraries/ or in your
| application/libraries/ folder, but are also placed inside their
| own subdirectory and they extend the CI_Driver_Library class. They
| offer multiple interchangeable driver options.
|
| Prototype:
|
|	$autoload['drivers'] = array('cache');
|
| You can also supply an alternative property name to be assigned in
| the controller:
|
|	$autoload['drivers'] = array('cache' => 'cch');
|
*/
$autoload['drivers'] = array();

/*
| -------------------------------------------------------------------
|  Auto-load Helper Files
| -------------------------------------------------------------------
| Prototype:
|
|	$autoload['helper'] = array('url', 'file');
*/
$autoload['helper'] = array();

/*
| -------------------------------------------------------------------
|  Auto-load Config files
| -------------------------------------------------------------------
| Prototype:
|
|	$autoload['config'] = array('config1', 'config2');
|
| NOTE: This item is intended for use ONLY if you have created custom
| config files.  Otherwise, leave it blank.
*/
$autoload['config'] = array();

/*
| -------------------------------------------------------------------
|  Auto-load Language files
| -------------------------------------------------------------------
| Prototype:
|
|	$autoload['language'] = array('lang1', 'lang2');
|
| NOTE: Do not include the "_lang" part of your file.  For example
| "codeigniter_lang.php" would be referenced as array('codeigniter');
*/
$autoload['language'] = array();

/*
| -------------------------------------------------------------------
|  Auto-load Models
| -------------------------------------------------------------------
| Prototype:
|
|	$autoload['model'] = array('first_model', 'second_model');
|
| You can also supply an alternative model name to be assigned
| in the controller:
|
|	$autoload['model'] = array('first_model' => 'first');
*/
$autoload['model'] = array();

/**
 * Module-specific library mapping for CodeIgniter compatibility
 * Maps class names to file paths for explicit loading
 */
$config['desk_moloni_libraries'] = array(
    'Moloni_oauth' => 'libraries/Moloni_oauth.php',
    'Moloni_api_client' => 'libraries/MoloniApiClient.php',
    'Client_sync_service' => 'libraries/ClientSyncService.php',
    'Invoice_sync_service' => 'libraries/InvoiceSyncService.php',
    'Queue_processor' => 'libraries/QueueProcessor.php',
    'Token_manager' => 'libraries/TokenManager.php'
    // Only include libraries present in this module
);

/**
 * Basic module configuration (lightweight)
 */
$config['desk_moloni'] = array(
    'module_name' => DESK_MOLONI_MODULE_NAME,
    'module_version' => DESK_MOLONI_MODULE_VERSION,
    'module_path' => DESK_MOLONI_MODULE_PATH,
    'api_timeout' => 30,
    'max_retries' => 3,
    'sync_enabled' => true,
    'log_enabled' => true
);