<?php
// uncomment the following to define a path alias
// Yii::setPathOfAlias('local','path/to/local-folder');

// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
$envMail = require(dirname(__FILE__) . '/params_email.php');
$envParams = require(dirname(__FILE__) . '/params_upload.php');

return array(

     // preloading 'log' component
    //'preload' => array('log'),
    // Asegúrate de que 'datosCompletos' esté en la lista de preload
    'preload' => array('log', 'datosCompletos'),
    'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..',
    'name' => 'SIDCAI - Sistema para Declaración y control de Aporte en Ciencia, Tecnología e Innovación',
    'defaultController' => 'inicio',



    // path aliases
    'aliases' => array(
        'bootstrap' => realpath(__DIR__ . '/../extensions/bootstrap'), // change this if necessary
    ),

    // autoloading model and component classes
  // autoloading model and component classes
	'import'=>array(
		'application.models.*',
		'application.components.*',
		'bootstrap.behaviors.*',
		'bootstrap.components.*',
		'bootstrap.helpers.*',
		'bootstrap.widgets.*',
		'bootstrap.form.*',
		'application.modules.admin.models.SidcaiPerfil',
		'application.modules.admin.models.SidcaiEstatus',
		'application.modules.admin.models.SidcaiUnidadtributaria',
		'application.modules.admin.models.SidcaiMoneda',
		'application.modules.admin.models.SidcaiParametro',
		'application.modules.admin.models.SidcaiFirmaPresidente',
		'application.modules.admin.models.SidcaiNombrePlantillaPdf',
		'application.modules.admin.models.SidcaiPlantillaPdf',
		'application.modules.admin.models.SidcaiCertificado',
		'application.modules.admin.models.SidcaiCertificadoError',
		'application.modules.admin.models.SidcaiRechazarPago',
		'application.modules.admin.models.SidcaiTipoNotificacion',
		'application.modules.analista.models.SidcaiTasainteres',
		'application.modules.analista.models.SidcaiMulta',
		'application.modules.analista.models.SidcaiRecaudoError',
		'application.modules.analista.models.SidcaiDeclaracionAnalista',
		'application.modules.analista.models.SidcaiMensajeAnalistaRecaudoRechazado',
		'application.modules.analista.models.SidcaiDeclaracionObservacion',
		'application.modules.analista.models.SidcaiNotificacion',
		'application.modules.analista.models.SidcaiAportanterecaudoAnalista',
	),

    'modules' => array(
        // uncomment the following to enable the Gii tool
        /*
        'gii' => array(
            'class' => 'system.gii.GiiModule',
            'password' => '123987465.gii',
            'ipFilters' => array('127.0.0.1', '::1'),
            'generatorPaths' => array('bootstrap.gii'),
        ),
        */
        'admin', // Módulo del Administrador
        'analista', // Módulo de los Analistas
    ),

    // application components
    'components' => array(
        /*
        'bootstrap' => array(
            'class' => 'bootstrap.components.TbApi',
            'cdnUrl' => 'https://stackpath.bootstrapcdn.com/bootstrap/3.4.1',
        ),
        */
      
       'datosCompletos' => array(
            'class' => 'application.components.DatosCompletosComponent',
        ),

        'session' => array(
            'autoStart' => true,
        ),

        'cache' => array(
			'class' => 'system.caching.CDummyCache', // No hace nada, solo implementa la interfaz
		),
    

        'ePdf' => array(
            'class' => 'ext.yii-pdf.EYiiPdf',
            'params' => array(
                'mpdf' => array(
                    'librarySourcePath' => 'application.vendors.mpdf.*',
                    'constants' => array(
                        '_MPDF_TEMP_PATH' => Yii::getPathOfAlias('application.runtime'),
                    ),
                    'class' => 'mpdf', // the literal class filename to be loaded from the vendors folder
                ),
            ),
        ),

        'user' => array(
            // enable cookie-based authentication
            'allowAutoLogin' => true,
            'class' => 'CWebUser',
            'authTimeout' => 9000, // session expires after 15 minutes of inactivity.
            'loginUrl' => array('inicio'), // Redirect to the main page/index
        ),

        // uncomment the following to enable URLs in path-format
        'urlManager' => array(
            'urlFormat' => 'path',
            'caseSensitive' => false,
            'showScriptName' => false,
            'rules' => array(
                'restablecer' => 'inicio/restablecer', // Reset password
                'nueva_clave' => 'inicio/nueva_clave', // New password
                'resetPassword' => 'inicio/resetPassword', // New password
                'logout' => 'inicio/logout',
                'sistema' => 'inicio/sistema', // Login for FONACIT personnel
                'nueva_clave_sistema' => 'inicio/nueva_clave_sistema', // New password for FONACIT personnel
                'restablecer_sistema' => 'inicio/restablecer_usuario_sistema', // Reset password for FONACIT personnel
                'resetPasswordSistema' => 'inicio/resetPasswordSistema', // New password
                'aportante/checkStatus' => 'aportante/checkStatus',
                'analista/aportante/reca/<id:\d+>' => 'analista/aportante/reca',
                'admin/<controller:\w+>/<id:\d+>' => 'admin/<controller>/view',
                'admin/<controller:\w+>/<action:\w+>/<id:\d+>' => 'admin/<controller>/<action>',
                'admin/<controller:\w+>/<action:\w+>' => 'admin/<controller>/<action>',
                'certificado/consultar/<id:\w+>' => 'certificado/consultar', // Consult certificates locti
                'api/consultarCertificado/<id:\w+>' => 'api/consultarCertificado', // API consult certificates locti
                'aportante/constancia_recaudo/<id:[a-zA-Z0-9-]+>' => 'aportante/constancia_recaudo', // Issue receipt certificate
                'reporte/aportante/<id:\d>' => 'reporte/aportante', // Aportantes reports
                'reporte/arcas/<id:\d>' => 'reporte/arcas', // Arcas reports
                'declaracion/subir_pago/<id:\d>' => 'declaracion/subir_pago', // Upload payment
                '<module:\w+>/<controller:\w+>/<id:\d+>' => '<module>/<controller>/view',
                '<module:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>' => '<module>/<controller>/<action>',
                '<module:\w+>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>',
                '<controller:\w+>/<id:\d+>' => '<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
                '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
            ),
        ),

        // database settings are configured in database.php
        'db' => require(dirname(__FILE__) . '/database.php'),
        'db2' => require(dirname(__FILE__) . '/historico_sidcai.php'),

        'errorHandler' => array(
            // use 'site/error' action to display errors
            'errorAction' => YII_DEBUG ? null : 'inicio/error',
        ),

        'log' => array(
            'class' => 'CLogRouter',
            'routes' => array(
                array(
                    'class' => 'CFileLogRoute',
                    'levels' => 'error, warning',
                ),
                // uncomment the following to show log messages on web pages
                /*
                array(
                    'class' => 'CWebLogRoute',
                ),
                */
            ),
        ),
    ),

    // application-level parameters that can be accessed
    // using Yii::app()->params['paramName']
    'params' => array_merge(
        $envMail,
        $envParams // Merge environment parameters
    ),
);
