<?php

/*
 | --------------------------------------------------------------------
 | 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

//Default값 정의
define('DEFAULTS', [
  'DELIMITER_FILE' => "||",
  'DELIMITER_ROLE' => ","
]);
define('MESSAGES', [
  'CREATED' => '생성되었습니다.',
  'UPDATED' => '수정되였습니다.',
  'DELETED' => '삭제되였습니다.',
  'SUCCESS'   => '작업이 성공적으로 완료되었습니다.',
  'FAILED'     => '작업이 실패하였습니다.',
  'NOT_FOUND' => '데이터가 존재하지 않습니다.',
  'NOT_AUTH'  => '권한이 없습니다.',
  'NOT_LOGIN' => '로그인이 필요합니다.',
  'NOT_MATCH' => '데이터가 일치하지 않습니다.',
  'NOT_EMPTY' => '데이터가 비어있습니다.',
  'NOT_UNIQUE' => '중복된 데이터가 존재합니다.',
  'NOT_DELETE' => '삭제할 수 없는 데이터가 존재합니다.',
  'NOT_UPDATE' => '수정할 수 없는 데이터가 존재합니다.',
  'NOT_CREATE' => '생성할 수 없는 데이터가 존재합니다.',
  'NOT_SYNC' => '동기화할 수 없는 데이터가 존재합니다.',
  'NOT_SYNC_RESULT' => '동기화 결과가 실패하였습니다.',
  'NOT_SYNC_SUCCESS' => '동기화 결과가 성공하였습니다.',
  'NOT_SYNC_ERROR' => '동기화 결과가 실패하였습니다.',
  'NOT_SYNC_NOTHING' => '동기화할 데이터가 없습니다.',
  'NOT_SYNC_NOTHING_RESULT' => '동기화 결과가 없습니다.',
  'NOT_SYNC_NOTHING_ERROR' => '동기화 결과가 없습니다.',
  'LOGIN' => '로그인 하셨습니다.',
  'LOGOUT' => '로그아웃 하셨습니다.'
]);
//URL
define('URLS', [
  'LOGIN' => '/auth/login',
  'GOOGLE_LOGIN' => '/auth/google_login',
  'SIGNUP' => '/auth/signup',
  'LOGOUT' => '/auth/logout',
]);
//SESSION 관련
define('SESSION_NAMES', [
  'RETURN_URL' => "return_url",
  'RETURN_MSG' => "return_message",
  'ISLOGIN' => "islogined",
  'AUTH' => 'auth',
]);
//메신저 관련
define("MESSENGERS", [
  "skype" => [
    "url" => "//join.skype.com/invite/uKUgXfZThSQC",
    "icon" => '<img src="/images/common/top_skype.png" alt="스카이프">',
    "id" => '',
  ],
  "discord" => [
    "url" => "//discord.gg/k6nQg84N",
    "icon" => '<img src="/images/common/discord.png" alt="디스코드">',
    "id" => '',
  ],
  "telegram" => [
    "url" => "//t.me/daemonidc",
    "icon" => '<img src="/images/common/telegram.png" alt="텔레그램">',
    "id" => '@daemonidc',
  ],
  "kakaotalk" => [
    "url" => "//t.me/daemonidc",
    "icon" => '<img src="/images/common/kakaotalk.png" alt="카카오톡">',
    "id" => '',
  ],
]);
//아이콘 및 Sound관련
define('ICONS', [
  'ADD' => '<i class="bi bi-plus-circle"></i>',
  'LOGO' => '<img src="/images/logo/android-icon-48x48.png">',
  'EXCEL' => '<img src="/images/common/excel.png"/>',
  'PDF' => '<img src="/images/common/pdf.png"/>',
  'GOOGLE' => '<img src="https://www.google.com/favicon.ico" alt="Google" width="20" height="20" class="me-2">',
  'MEMBER' => '<i class="bi bi-people"></i>',
  'LOGIN' => '<i class="bi bi-shield-check"></i>',
  'LOGOUT' => '<i class="bi bi-sign-stop-fill"></i>',
  'HOME' => '<i class="bi bi-house"></i>',
  'MENU' => '<i class="bi bi-menu-button"></i>',
  'NEW' => '<i class="bi bi-database-add"></i>',
  'REPLY' => '<i class="bi bi-arrow-return-right"></i>',
  'DATABASE' => '<i class="bi bi-database"></i>',
  'DISLIKE' => '<i class="bi bi-hand-thumbs-down"></i>',
  'LIKE' => '<i class="bi bi-hand-thumbs-up"></i>',
  'DOWNLOAD' => '<i class="bi bi-download"></i>',
  'UPLOAD' => '<i class="bi bi-upload"></i>',
  'COPY' => '<i class="bi bi-files"></i>',
  'PASTE' => '<i class="bi bi-clipboard"></i>',
  'EDIT' => '<i class="bi bi-pencil-square"></i>',
  'VIEW' => '<i class="bi bi-eye"></i>',
  'VIEW_OFF' => '<i class="bi bi-eye-slash"></i>',
  'PRINT' => '<i class="bi bi-printer"></i>',
  'SAVE' => '<i class="bi bi-save"></i>',
  'CANCEL' => '<i class="bi bi-x-circle"></i>',
  'CLOSE' => '<i class="bi bi-x-circle-fill"></i>',
  'CLIENT' => '<i class="bi bi-person-circle"></i>',
  'CHART' => '<i class="bi bi-bar-chart"></i>',
  'CHECK' => '<i class="bi bi-check-circle"></i>',
  'CHECK_OFF' => '<i class="bi bi-check-circle-fill"></i>',
  'CHECK_ON' => '<i class="bi bi-check2-circle"></i>',
  'CHECK_ALL' => '<i class="bi bi-check-all"></i>',
  'CHECK_NONE' => '<i class="bi bi-check2"></i>',
  'CHECK_SOME' => '<i class="bi bi-check2-square"></i>',
  'COUPON' => '<i class="bi bi-ticket-perforated"></i>',
  'HISTORY' => '<i class="bi bi-clock-history"></i>',
  'MODIFY' => '<i class="bi bi-pencil-square"></i>',
  'MODIFY_ALL' => '<i class="bi bi-pencil-square"></i>',
  'BATCHJOB' => '<i class="bi bi-clipboard-data"></i>',
  'DELETE' => '<i class="bi bi-trash"></i>',
  'REBOOT' => '<i class="bi bi-repeat"></i>',
  'RELOAD' => '<i class="bi bi-bootstrap-reboot"></i>',
  'SETUP' => '<i class="bi bi-gear"></i>',
  'FLAG' => '<i class="bi bi-send"></i>',
  'SEARCH' => '<i class="bi bi-search"></i>',
  'PLAY' => '<i class="bi bi-play-fill"></i>',
  'CART' => '<i class="bi bi-cart4"></i>',
  'CARD' => '<i class="bi bi-credit-card"></i>',
  'DEPOSIT' => '<i class="bi bi-cash-coin"></i>',
  'DESKTOP' => '<i class="bi bi-pc-display-horizontal"></i>',
  'DEVICE' => '<i class="bi bi-device-hdd"></i>',
  'UP' => '<i class="bi bi-arrow-up"></i>',
  'DOWN' => '<i class="bi bi-arrow-down"></i>',
  'LEFT' => '<i class="bi bi-arrow-left"></i>',
  'RIGHT' => '<i class="bi bi-arrow-right"></i>',
  'IMAGE_FILE' => '<i class="bi bi-file-earmark-image"></i>',
  'CLOUD' => '<i class="bi bi-cloud"></i>',
  'SIGNPOST' => '<i class="bi bi-signpost"></i>',
  'LOCK' => '<i class="bi bi-lock"></i>',
  'UNLOCK' => '<i class="bi bi-unlock"></i>',
  'BOX' => '<i class="bi bi-box"></i>',
  'BOXS' => '<i class="bi bi-boxes"></i>',
  'ONETIME' => '<i class="bi bi-1-circle-fill text-warning"></i>',
  'EMAIL' => '<i class="bi bi-mailbox"></i>',
  'MAIL' => '<i class="bi bi-envelope"></i>',
  'PHONE' => '<i class="bi bi-phone"></i>',
  'POINT' => '<i class="bi bi-coin"></i>',
  'ALRAM' => '<i class="bi bi-bell"></i>',
  'PAYMENT' => '<i class="bi bi-credit-card-2-back"></i>',
  'SALE_UP' => '<i class="bi bi-graph-up-arrow"></i>',
  'SALE_DOWN' => '<i class="bi bi-graph-down-arrow"></i>',
  'SERVICE' => '<i class="bi bi-gear-wide-connected"></i>',
  'SERVICE_ITEM' => '<i class="bi bi-gear-wide-connected"></i>',
  'SERVICE_ITEM_LINE' => '<i class="bi bi-chat-left-text"></i>',
  'SERVICE_ITEM_IP' => '<i class="bi bi-globe"></i>',
  'SERVICE_ITEM_SERVER' => '<i class="bi bi-server"></i>',
  'SERVICE_ITEM_CPU' => '<i class="bi bi-cpu"></i>',
  'SERVICE_ITEM_RAM' => '<i class="bi bi-memory"></i>',
  'SERVICE_ITEM_STORAGE' => '<i class="bi bi-hdd-stack"></i>',
  'SERVICE_ITEM_SOFTWARE' => '<i class="bi bi-box-seam"></i>',
  'SERVICE_ITEM_DEFENCE' => '<i class="bi bi-shield-lock"></i>',
  'SERVICE_ITEM_DOMAIN' => '<i class="bi bi-globe2"></i>',
  'SERVICE_ITEM_OTHER' => '<i class="bi bi-gear-wide-connected"></i>',

]);
//메신저 아이콘
define('MESSENGER_ICONS', [
  'WHATSAPP' => '<i class="bi bi-whatsapp"></i>',
  'VIBER' => '<i class="bi bi-viber"></i>',
  'LINE' => '<i class="bi bi-chat-left-text"></i>',
  'KAKAO' => '<i class="bi bi-chat-left-text"></i>',
  'DISCORD' => '<i class="bi bi-discord"></i>',
  'TELEGRAM' => '<i class="bi bi-telegram"></i>',
  'SKYPE' => '<i class="bi bi-skype"></i>',
  'YOUTUBE' => '<i class="bi bi-youtube"></i>',
  'FACEBOOK' => '<i class="bi bi-facebook"></i>',
  'TWITTER' => '<i class="bi bi-twitter"></i>',
  'INSTAGRAM' => '<i class="bi bi-instagram"></i>',
  'LINKEDIN' => '<i class="bi bi-linkedin"></i>',
  'GITHUB' => '<i class="bi bi-github"></i>',
  'GITLAB' => '<i class="bi bi-gitlab"></i>',
  'BITBUCKET' => '<i class="bi bi-bitbucket"></i>',
  'REDDIT' => '<i class="bi bi-reddit"></i>',
  'TIKTOK' => '<i class="bi bi-tiktok"></i>',
  'PINTEREST' => '<i class="bi bi-pinterest"></i>',
  'TUMBLR' => '<i class="bi bi-tumblr"></i>',
  'SNAPCHAT' => '<i class="bi bi-snapchat"></i>',
]);
//배너관련
define('TOP_BANNER', [
  'default' => '<img src="/images/banner/sub_visual1.jpg"/>',
  'aboutus' => '<img src="/images/banner/sub_visual1.jpg"/>',
  'member' => '<img src="/images/banner/sub_visual1.jpg"/>',
  'hosting' => '<img src="/images/banner/sub_visual2.jpg"/>',
  'serverdevice' => '<img src="/images/banner/sub_visual3.jpg"/>',
  'service' => '<img src="/images/banner/sub_visual3.jpg"/>',
  'support' => '<img src="/images/banner/sub_visual4.jpg"/>',
]);
//소리관련
define('AUDIOS', [
  'Alram_GetEmail' => '<object width=0 height=0 data="/sound/jarvis_email.mp3" type="audio/mpeg"></object>',
]);
//Layout관련
define('KEYWORD', '일본IDC 일본서버 일본 서버 일본호스팅 서버호스팅 디도스 공격 해외 호스팅 DDOS 방어 ddos 의뢰 디도스 보안 일본 단독서버 가상서버');
define('LAYOUTS', [
  'empty' => [
    'title' => KEYWORD,
    'path' => 'layouts' . DIRECTORY_SEPARATOR . 'empty',
    'metas' => [
      '<meta charset="UTF-8">',
      '<meta name="viewport" content="width=device-width, initial-scale=1.0">',
      '<meta http-equiv="X-UA-Compatible" content="IE=Edge">',
      '<meta name="subject" content="Daemon IDC">',
      '<meta name="description" content="' . KEYWORD . '">',
      '<meta name="keywords" content="' . KEYWORD . '">',
      '<meta property="og:type" content="website">',
      '<meta property="og:title" content="Daemon IDC">',
      '<meta property="og:description" content="' . KEYWORD . '">',
    ],
    'stylesheets' => [
      '<link rel="icon" href="/favicon.ico">',
      '<link href="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">',
      '<link rel="stylesheet" href="/css/common/style.css" />',
    ],
    'javascripts' => [
      '<script src="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>',
    ],
  ],
  'front' => [
    'title' => KEYWORD,
    'path' => 'layouts' . DIRECTORY_SEPARATOR . 'front',
    'topmenus' => ['aboutus', 'hosting', 'service', 'support'],
    'metas' => [
      '<meta charset="UTF-8">',
      '<meta name="viewport" content="width=device-width, initial-scale=1.0">',
      '<meta http-equiv="X-UA-Compatible" content="IE=Edge">',
      '<meta name="subject" content="Daemon IDC">',
      '<meta name="description" content="' . KEYWORD . '">',
      '<meta name="keywords" content="' . KEYWORD . '">',
      '<meta property="og:type" content="website">',
      '<meta property="og:title" content="Daemon IDC">',
      '<meta property="og:description" content="' . KEYWORD . '">',
    ],
    'stylesheets' => [
      '<link rel="icon" href="/favicon.ico">',
      '<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">',
      '<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">',
      '<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">',
      '<link rel="stylesheet" href="/css/common/style.css" />',
    ],
    'javascripts' => [
      '<script src="//cdn.jsdelivr.net/npm/jquery@3.7.0/dist/jquery.min.js"></script>',
      '<script src="//code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>',
      '<script src="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>',
      '<script src="//cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>',
    ],
  ],
  'admin' => [
    'title' => '관리자화면',
    'path' => 'layouts' . DIRECTORY_SEPARATOR . 'admin',
    'metas' => [
      '<meta charset="UTF-8">',
      '<meta name="viewport" content="width=device-width, initial-scale=1.0">',
      '<meta http-equiv="X-UA-Compatible" content="IE=Edge">',
      '<meta name="subject" content="Daemon IDC">',
      '<meta name="description" content="' . KEYWORD . '">',
      '<meta name="keywords" content="' . KEYWORD . '">',
      '<meta property="og:type" content="website">',
      '<meta property="og:title" content="Daemon IDC">',
      '<meta property="og:description" content="' . KEYWORD . '">',
    ],
    'stylesheets' => [
      '<link rel="icon" href="/favicon.ico">',
      '<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">',
      '<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">',
      '<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">',
      '<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css">',
      '<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/select2-bootstrap-5-theme@1.3.0/dist/select2-bootstrap-5-theme.min.css" />',
      '<link rel="stylesheet" href="/assets/tagify/dist/tagify.css">',
      '<link rel="stylesheet" href="/css/common/style.css" />',
    ],
    'javascripts' => [
      '<script src="//cdn.jsdelivr.net/npm/jquery@3.7.0/dist/jquery.min.js"></script>',
      '<script src="//code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>',
      '<script src="//cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>',
      '<script src="//cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>',
      '<script src="/assets/tinymce/tinymce.min.js" referrerpolicy="origin"></script>',
      '<script src="/assets/tagify/dist/tagify.js"></script>'
    ],
  ],
]);

//List의 Page당 갯수
define('DEFAULT_LIST_PERPAGE', $_ENV['LIST_PERPAGE'] ?? $_SERVER['LIST_PERPAGE'] ?? 20);

//신규서비스 Interval 
define('SERVICE_NEW_INTERVAL', $_ENV['SERVICE_NEW_INTERVAL'] ?? $_SERVER['SERVICE_NEW_INTERVAL'] ?? 7);

//서버 PartType
define("SERVER", [
  "PARTTYPES" => ['CPU', 'RAM', 'DISK', 'OS']
]);

//결제관련
define("PAYMENT", [
  'BILLING' => [
    'MONTH' => 'month',
    'ONETIME' => 'onetime'
  ],
  'PAY' => [
    'ACCOUNT' => 'account',
    'COUPON' => 'coupon',
    'POINT' => 'point'
  ]
]);

//서버아이템 정의
define("SERVER_LINK_ITEMS", [
  'CPU' => "CPU정보",
  'RAM' => "RAM정보",
  'DISK' => "DISK정보",
  'OS' => "OS정보",
  'SOFTWARE' => "기타SW정보",
  'IP' => "IP정보",
  'CS' => "CS정보",
]);
