<?php

    date_default_timezone_set( 'Asia/Kolkata' );

    /*
    | --------------------------------------------------------------------
    | App Namespace
    | --------------------------------------------------------------------
    |
    | This defines the default Namespace that is used throughout
    | CodeIgniter to refer to the Application directory. Change
    | this constant to change the namespace that all application
    | classes should use.
    |
    | NOTE: changing this will require manually modifying the
    | existing namespaces of App\* namespaced-classes.
    */
    defined('APP_NAMESPACE') || define('APP_NAMESPACE', 'App');

    /*
    | --------------------------------------------------------------------------
    | Composer Path
    | --------------------------------------------------------------------------
    |
    | The path that Composer's autoload file is expected to live. By default,
    | the vendor folder is in the Root directory, but you can customize that here.
    */
    defined('COMPOSER_PATH') || define('COMPOSER_PATH', ROOTPATH . 'vendor/autoload.php');

    /*
    |--------------------------------------------------------------------------
    | Timing Constants
    |--------------------------------------------------------------------------
    |
    | Provide simple ways to work with the myriad of PHP functions that
    | require information to be in seconds.
    */
    defined('SECOND') || define('SECOND', 1);
    defined('MINUTE') || define('MINUTE', 60);
    defined('HOUR')   || define('HOUR', 3600);
    defined('DAY')    || define('DAY', 86400);
    defined('WEEK')   || define('WEEK', 604800);
    defined('MONTH')  || define('MONTH', 2_592_000);
    defined('YEAR')   || define('YEAR', 31_536_000);
    defined('DECADE') || define('DECADE', 315_360_000);

    /*
    | --------------------------------------------------------------------------
    | Exit Status Codes
    | --------------------------------------------------------------------------
    |
    | Used to indicate the conditions under which the script is exit()ing.
    | While there is no universal standard for error codes, there are some
    | broad conventions.  Three such conventions are mentioned below, for
    | those who wish to make use of them.  The CodeIgniter defaults were
    | chosen for the least overlap with these conventions, while still
    | leaving room for others to be defined in future versions and user
    | applications.
    |
    | The three main conventions used for determining exit status codes
    | are as follows:
    |
    |    Standard C/C++ Library (stdlibc):
    |       http://www.gnu.org/software/libc/manual/html_node/Exit-Status.html
    |       (This link also contains other GNU-specific conventions)
    |    BSD sysexits.h:
    |       http://www.gsp.com/cgi-bin/man.cgi?section=3&topic=sysexits
    |    Bash scripting:
    |       http://tldp.org/LDP/abs/html/exitcodes.html
    |
    */
    defined('EXIT_SUCCESS')        || define('EXIT_SUCCESS', 0);        // no errors
    defined('EXIT_ERROR')          || define('EXIT_ERROR', 1);          // generic error
    defined('EXIT_CONFIG')         || define('EXIT_CONFIG', 3);         // configuration error
    defined('EXIT_UNKNOWN_FILE')   || define('EXIT_UNKNOWN_FILE', 4);   // file not found
    defined('EXIT_UNKNOWN_CLASS')  || define('EXIT_UNKNOWN_CLASS', 5);  // unknown class
    defined('EXIT_UNKNOWN_METHOD') || define('EXIT_UNKNOWN_METHOD', 6); // unknown class member
    defined('EXIT_USER_INPUT')     || define('EXIT_USER_INPUT', 7);     // invalid user input
    defined('EXIT_DATABASE')       || define('EXIT_DATABASE', 8);       // database error
    defined('EXIT__AUTO_MIN')      || define('EXIT__AUTO_MIN', 9);      // lowest automatically-assigned error code
    defined('EXIT__AUTO_MAX')      || define('EXIT__AUTO_MAX', 125);    // highest automatically-assigned error code

    /**
     * @deprecated Use \CodeIgniter\Events\Events::PRIORITY_LOW instead.
     */
    define('EVENT_PRIORITY_LOW', 200);

    /**
     * @deprecated Use \CodeIgniter\Events\Events::PRIORITY_NORMAL instead.
     */
    define('EVENT_PRIORITY_NORMAL', 100);

    /**
     * @deprecated Use \CodeIgniter\Events\Events::PRIORITY_HIGH instead.
     */
    define('EVENT_PRIORITY_HIGH', 10);

    define( 'LOG_PATH', __DIR__ . '/../../logs/' );
    define( 'CONFIG_FILE_PATH', __DIR__ . '/../../config-file/' );

    define( 'DEFAULT_CONFIG_FILE_NAME', 'device_config_default.json' );
    define( 'LATEST_CONFIG_FILE_NAME', 'device_config_latest.json' );
    define( 'TEMP_CONFIG_FILE_NAME', 'device_config_temp.json' );
    
    define( 'USED_DEFAULT_CONFIG_FILE', 1 );
    define( 'USED_LATEST_CONFIG_FILE', 2 );
    define( 'USED_TEMP_CONFIG_FILE', 3 );

    define( 'PROJECT_NAME', 'EDGE-fx' );
    define( 'ABBR_PROJECT_NAME', 'Diligence Plus' );
    define( 'COMPANY_NAME', 'Diligence Plus' );
    
    define( 'LINUX_USER_GROUP', '' );    

    define( 'ENCRYPTION_TOKEN_KEY', 'diligence-raspberrypi-token@encrypter' );
    define( 'ENCRYPTION_PASSWORD_KEY', 'diligence-raspberrypi-password@encrypter' );

    define( 'ENVIRONMENT_DEVELOPMENT', 'development' );
    define( 'ENVIRONMENT_PRODUCTION', 'production' );

    define( 'AUTH_TYPE_APP', 'app' );

    define( 'CURRENT_DATETIME', date( 'Y-m-d H:i:s' ) );
    define( 'CURRENT_DATE', date( 'Y-m-d' ) );
    define( 'CURRENT_TIME', date( 'H:i:s' ) );

    define( 'COMMON_PASSWORD', 'diligence@123' );

    define( 'DEVICE_MODE_CONVERTER', 0 );
    define( 'DEVICE_MODE_GATEWAY', 1 );

    define( 'SPT_MODE_NONE', 0 );
    define( 'SPT_MODE_RSTP', 1 );
    define( 'SPT_MODE_STP', 2 );
    
    define( 'SPT_MODE_ENABLED', 1 );
    define( 'SPT_MODE_DISABLED', 0 );
    
    define( 'EHT_MODE_STATIC', 1 );
    define( 'EHT_MODE_DYNAMIC', 0 );

    define( 'TCPIP_SERVER', '1' );
    define( 'TCPIP_CLIENT', '2' );

    define( 'LAN1', 'lan1' );
    define( 'LAN2', 'lan2' );
    
    define( 'ACTIVE', 1 );
    define( 'INACTIVE', 0 );

    define( 'APPROVED', 1 );
    define( 'NOT_APPROVED', 0 );

    define( 'DELETED', 1 );
    define( 'NOT_DELETED', 0 );

    define( 'ENABLED', 1 );
    define( 'DISABLED', 0 );

    define( 'VERIFIED', 1 );
    define( 'NOT_VERIFIED', 0 );

    define( 'GENDER_MALE', 1 );
    define( 'GENDER_FEMALE', 2 );

    define( 'COUNTRY_INDIA', 101 );
    define( 'DEFAULT_STATE_ID', 22 );

    define( 'EMAIL_USER_TYPE_SUPPORT', 1 );
    define( 'EMAIL_USER_TYPE_PLACEMENT', 2 );
    define( 'EMAIL_USER_TYPE_ADMIN', 3 );
    define( 'EMAIL_USER_TYPE_HR', 4 );

    define( 'FACEBOOK_PAGE', 'https://www.facebook.com/reunionpcs/' );
    define( 'TWITTER_PAGE', 'https://twitter.com/ReunionPcs' );
    define( 'INSTAGRAM_PAGE', 'https://www.instagram.com/reunionpcs/?hl=en' );
    define( 'LINKEDIN_PAGE', 'https://www.linkedin.com/in/re-union-software-and-placements-2644a5214/' );

    define( 'GENERATED_BY_SYSTEM', 1 );
    define( 'GENERATED_BY_INTERNAL', 2 );
    define( 'GENERATED_BY_EXTERNAL', 3 );