<?php

/**
 * User: kkh0414
 * Date: 2020-06-10
 * Time: 오후 6:07
 */

// 해시 암호화 키
const ENCRYPT_KEY = '@@20120726CHrong';
const ENCRYPT_IV = '@@20120726CHrong';

// 관리자 페이지 경로
const ADMIN_PATH = 'admin';

// 새로운 글쓰기 시간
const NEW_POST_SECOND = 10; // 10회

// 현재 접속자 기준
const CURRENT_VISITOR_MINUTE = 5; // 5분

// 캐시 생성 시간(초)
const CACHE_EXPIRE_TIME = 300; // 5분

// 인증번호 만료시간(분)
const VERIFY_EXPIRES_AT = 5; // 5분

// 인증번호 발송 분당 제한 수
const VERIFY_SEND_LIMIT = 3; // 3번

// 한국수출입은행 API Key
const KOREA_EXIM_AUTH_KEY = 'OiZlh6SjbXGBlfbagekBpi6kAE4UyonP';

const SERP_API_KEY = '2a2fd42184c81786bce601b24d6d775a09498f3d6b47c866008a75fe719196ad';

// 프로필, 아이콘 이미지 크기 기본값
const THUMB_MAX_WIDTH = 96; // 가로
const THUMB_MAX_HEIGHT = 96; // 세로
const ICON_MAX_WIDTH = 16; // 가로
const ICON_MAX_HEIGHT = 16; // 세로

// 게시글 설정 값
const DEFAULT_LIST_PER_PAGE = 10; // 게시글 기본 보여줄 수
const DEFAULT_LIST_PAGE_COUNT = 10; // 게시글 기본 페이지 수

// 상품 이미지 크기 기본값
const SHOP_THUMBNAIL_MAX_WIDTH = 120; // 가로
const SHOP_THUMBNAIL_MAX_HEIGHT = 120; // 세로

// 신고기능 종류구분
const BLAME_TARGET_TYPE_POST = '1'; // 게시판
const BLAME_TARGET_TYPE_COMMENT = '2'; // 댓글
const BLAME_TARGET_TYPE_NOTE = '3'; // 쪽지

// 기본 이미지 경로
const NO_IMAGE_NORMAL_SRC = "/images/default/no_image.png"; // 이미지 없을때 일반 이미지 기본값
const NO_IMAGE_THUMB_SRC = "/images/default/thumb.gif"; // 이미지 없을때 프로필 이미지 기본값
const NO_IMAGE_ICON_SRC = "/images/default/icon.png"; // 이미지 없을때 Icon 이미지 기본값

// 파일첨부 경로
const UPLOAD_PATH_APP = "app";
const UPLOAD_PATH_PUBLIC = "public";                    // 외부 공개 저장 경로
const UPLOAD_PATH_STORAGE = "storage";                  // 내부 저장 경로
const UPLOAD_PATH_FAVICON = "favicon";                  // 파비콘
const UPLOAD_PATH_LOGO = "logo";                        // 로고
const UPLOAD_PATH_CACHE = "cache";                      // 캐시파일 저장경로
const UPLOAD_PATH_CAPTCHA = "captcha";                  // 자동등록방지번호
const UPLOAD_PATH_SHOP_PRODUCT = "shop/product";        // 상품
const UPLOAD_PATH_SHOP_PRODUCT_OPTION = "shop/option";  // 상품 옵션
const UPLOAD_PATH_NOTE = "note";                        // 쪽지
const UPLOAD_PATH_BANNER = "banner";                    // 배너
const UPLOAD_PATH_DOCUMENT = "document";                // 문서
const UPLOAD_PATH_FAQ = "faq";                          // FAQ
const UPLOAD_PATH_POPUP = "popup";                      // 팝업
const UPLOAD_PATH_POST = "post";                        // 게시글
const UPLOAD_PATH_COMMENT = "comment";                  // 댓글
const UPLOAD_PATH_EMOTICON = "emoticon";                // 에디터 이모티콘
const UPLOAD_PATH_EDITOR = "editor";                    // 게시판 에디터 첨부 이미지
const UPLOAD_PATH_USER_ICON = "user/icon";              // 회원 아이콘
const UPLOAD_PATH_USER_THUMB = "user/thumb";            // 회원 프로필
const USER_GROUP_IMAGE_PATH = "user/group";             // 회원 그룹 이미지 경로
const USER_GRADE_IMAGE_PATH = "user/grade";             // 회원 등급 이미지 경로
const USER_RANK_IMAGE_PATH = "user/level";              // 회원 레벨 이미지 경로
const GAME_RATING_IMAGE_PATH = "/images/game/rating";   // 게임이용등급 이미지 저장경로
const GAME_CONTENT_IMAGE_PATH = "/images/game/content"; // 게임내용표시 이미지 저장경로
const UPLOAD_PATH_MOBILE = "mobile";                    // 모바일 디렉토리

/*
 * 서버 호스트
 */
const LOCAL_HOST = '192.168.1.10:7070';
const DEV_HOST = '172.17.0.1:7070';

/*
 * 지원 브라우저 최소 버전 정의
 */
const BS_CHROME_VERSION = 59; // 크롬
const BS_EDGE_VERSION = 14; // 엣지
const BS_IE_VERSION = 8; // 인터넷 익스플로어
const BS_FIREFOX_VERSION = 54; // 파이어 폭스
const BS_SAFARI_VERSION = 10; // 사파리
const BS_OPERA_VERSION = 45; // 오페라

/*
 * 게시판 그룹 정의
 */
const BOARD_LAYOUT_NORMAL = 0; // 일반 게시판
const BOARD_LAYOUT_MEDIA = 1; // 사진/동영상 게시판

/*
 * 단말기 종류
 */
const DEVICE_TYPE_0 = 0; // 모든 기기
const DEVICE_TYPE_1 = 1; // PC
const DEVICE_TYPE_2 = 2; // Phone
const DEVICE_TYPE_3 = 3; // Mobile
const DEVICE_TYPE_4 = 4; // Tablet
const DEVICE_TYPE_5 = 5; // Robot
const MAP_DEVICE_TYPE = [
    DEVICE_TYPE_0 => 'ALL', DEVICE_TYPE_1 => 'PC', DEVICE_TYPE_2 => 'Phone', DEVICE_TYPE_3 => 'Mobile', DEVICE_TYPE_4 => 'Tablet', DEVICE_TYPE_5 => 'Robot'
];

// 단말기 아이콘 종류
const MAP_DEVICE_ICON_TYPE = [
    DEVICE_TYPE_0 => 'All',
    DEVICE_TYPE_1 => '<i class="fas fa-desktop"></i>',
    DEVICE_TYPE_2 => '<i class="fa-solid fa-mobile-screen-button"></i>',
    DEVICE_TYPE_3 => '<i class="fa-solid fa-mobile-screen-button"></i>',
    DEVICE_TYPE_4 => '<i class="fas fa-solid fa-tablet-screen-button"></i>',
    DEVICE_TYPE_5 => '<i class="fa-solid fa-robot"></i>'
];

/**
 * 입력값 검사 상수
 */
const _ALPHAUPPER_ = 1; // 영대문자
const _ALPHALOWER_ = 2; // 영소문자
const _ALPHABETIC_ = 4; // 영대,소문자
const _NUMERIC_ = 8; // 숫자
const _HANGUL_ = 16; // 한글
const _SPACE_ = 32; // 공백
const _SPECIAL_ = 64; // 특수문자
const _UNDER_ = 95; // `_` 언더바

/**
 * 1: 게시글, 2: 댓글, 3: 쪽지, 4: 신고, 5: 상품문의, 6: 상품후기, 7: 환불문의
 */
const EDITOR_IMG_TYPE_1 = 1;
const EDITOR_IMG_TYPE_2 = 2;
const EDITOR_IMG_TYPE_3 = 3;
const EDITOR_IMG_TYPE_4 = 4;
const EDITOR_IMG_TYPE_5 = 5;
const EDITOR_IMG_TYPE_6 = 6;
const EDITOR_IMG_TYPE_7 = 7;
const MAP_EDITOR_IMG_TYPE = [
    EDITOR_IMG_TYPE_1 => '게시글', EDITOR_IMG_TYPE_2 => '댓글', EDITOR_IMG_TYPE_3 => '쪽지', EDITOR_IMG_TYPE_4 => '신고',
    EDITOR_IMG_TYPE_5 => '상품문의', EDITOR_IMG_TYPE_6 => '상품후기', EDITOR_IMG_TYPE_7 => '환불문의'
];

const BOARD_LAYOUT_TYPE_0 = 0; // 일반
const BOARD_LAYOUT_TYPE_1 = 1; // 사진/동영상

/**
 * 1: 게시글, 2: 댓글, 3: 상품후기
 */
const TARGET_TYPE_1 = 1;
const TARGET_TYPE_2 = 2;
const TARGET_TYPE_3 = 3;
const MAP_TARGET_TYPE = [
    TARGET_TYPE_1 => '게시글', TARGET_TYPE_2 => '댓글', TARGET_TYPE_3 => '상품후기'
];

/**
 * 신고 사유 (1: 욕설, 2: 음란, 3: 불법, 4: 신분 사칭, 5: 현금거래유도, 6: 스팸/광고, 7: 도배, 8: 개인정보노출, 9: 기타)
 */
const BLAME_TYPE_1 = 1;
const BLAME_TYPE_2 = 2;
const BLAME_TYPE_3 = 3;
const BLAME_TYPE_4 = 4;
const BLAME_TYPE_5 = 5;
const BLAME_TYPE_6 = 6;
const BLAME_TYPE_7 = 7;
const BLAME_TYPE_8 = 8;
const BLAME_TYPE_9 = 9;
const MAP_BLAME_TYPE = [
    BLAME_TYPE_1 => '욕설', BLAME_TYPE_2 => '음란', BLAME_TYPE_3 => '불법', BLAME_TYPE_4 => '신분 사칭', BLAME_TYPE_5 => '현금거래유도',
    BLAME_TYPE_6 => '스팸/광고', BLAME_TYPE_7 => '도배', BLAME_TYPE_8 => '개인정보노출', BLAME_TYPE_9 => '기타'
];

/**
 * 게시판 접근 안내 문구
 *
 * 권한 구분값
 * 1. 로그인 사용자
 * 2. 특정 그룹 사용자
 * 3. 특정 등급 이상인자
 * 4. 특정 그룹 OR 특정 등급
 * 5. 특정 그룹 AND 특정 등급
 */
const BOARD_PERMIT_TYPE_1 = 'access_post_list'; // 목록
const BOARD_PERMIT_TYPE_2 = 'access_post_view'; // 글 열람
const BOARD_PERMIT_TYPE_3 = 'access_post_write'; // 글 작성
const BOARD_PERMIT_TYPE_4 = 'access_post_reply'; // 답변 작성
const BOARD_PERMIT_TYPE_5 = 'access_comment_write'; // 댓글 작성
const BOARD_PERMIT_TYPE_6 = 'access_image_upload'; // 파일 업로드
const BOARD_PERMIT_TYPE_7 = 'access_file_download'; // 파일 다운로드
const BOARD_PERMIT_TYPE_8 = 'blame'; // 게시물 신고
const BOARD_PERMIT_TYPE_9 = 'poll_write'; // 설문 등록
const BOARD_PERMIT_TYPE_10 = 'poll_append'; // 설문 참여
const BOARD_PERMIT_TYPE_11 = 'verification'; // 본인 인증
const BOARD_PERMIT_TYPE_12 = 'access_comment_list'; // 댓글 작성

const MAP_BOARD_PERMIT_ALERT_TYPE = [
    BOARD_PERMIT_TYPE_1 => '게시판에 접근할 수 있는 권한이 없습니다.',
    BOARD_PERMIT_TYPE_2 => '글을 읽을 권한이 없습니다.',
    BOARD_PERMIT_TYPE_3 => '글을 작성할 수 있는 권한이 없습니다.',
    BOARD_PERMIT_TYPE_4 => '답변을 작성할 수 있는 권한이 없습니다.',
    BOARD_PERMIT_TYPE_5 => '댓글을 작성할 수 있는 권한이 없습니다.',
    BOARD_PERMIT_TYPE_6 => '파일 업로드 권한이 없습니다.',
    BOARD_PERMIT_TYPE_7 => '파일 다운로드 권한이 없습니다.',
    BOARD_PERMIT_TYPE_8 => '게시물 신고 권한이 없습니다.',
    BOARD_PERMIT_TYPE_9 => '설문 등록 권한이 없습니다.',
    BOARD_PERMIT_TYPE_10 => '설문 참여 권한이 없습니다.',
    BOARD_PERMIT_TYPE_11 => '본인 인증이 필요한 게시판입니다.',
    BOARD_PERMIT_TYPE_12 => '댓글 확인 권한이 없습니다.'
];

/* 이메일 전송 양식 지정 */
const SEND_MAIL_FORM_TYPE_1 = 'send_email_register'; // 회원가입
const SEND_MAIL_FORM_TYPE_2 = 'send_email_changepw_form'; // 비밀번호 변경
const SEND_MAIL_FORM_TYPE_3 = 'send_email_withdraw_form'; // 회원탈퇴
const SEND_MAIL_FORM_TYPE_4 = 'send_email_auth_form'; // 이메일 인증
const SEND_MAIL_FORM_TYPE_5 = 'send_email_verify_code_form'; // 인증번호
const SEND_MAIL_FORM_TYPE_6 = 'send_email_find_form'; // 회원정보 찾기
const SEND_MAIL_FORM_TYPE_7 = 'send_email_post_form'; // 게시글 작성
const SEND_MAIL_FORM_TYPE_8 = 'send_email_post_comment_form'; // 댓글 작성
const SEND_MAIL_FORM_TYPE_9 = 'send_email_post_blame_form'; // 게시글 신고
const SEND_MAIL_FORM_TYPE_10 = 'send_email_post_comment_blame_form'; // 댓글 신고
const SEND_MAIL_FORM_TYPE_11 = 'send_email_post_personal_form'; // 1:1 문의 접수
const SEND_MAIL_FORM_TYPE_12 = 'send_email_post_personal_reply_form'; // 1:1 문의 답변
const SEND_MAIL_FORM_TYPE_13 = 'send_email_dormant_form'; // 휴면 예정
const SEND_MAIL_FORM_TYPE_14 = 'send_email_dormancy_form'; // 휴면 전환
const SEND_MAIL_FORM_TYPE_15 = 'send_email_recover_form'; // 휴면 해제
const MAP_SEND_MAIL_TYPE = [
    SEND_MAIL_FORM_TYPE_1, SEND_MAIL_FORM_TYPE_2, SEND_MAIL_FORM_TYPE_3, SEND_MAIL_FORM_TYPE_4,
    SEND_MAIL_FORM_TYPE_5, SEND_MAIL_FORM_TYPE_6, SEND_MAIL_FORM_TYPE_7, SEND_MAIL_FORM_TYPE_8,
    SEND_MAIL_FORM_TYPE_9, SEND_MAIL_FORM_TYPE_10, SEND_MAIL_FORM_TYPE_11, SEND_MAIL_FORM_TYPE_12,
    SEND_MAIL_FORM_TYPE_13, SEND_MAIL_FORM_TYPE_14, SEND_MAIL_FORM_TYPE_15
];

/*
 * 공감, 비공감
 */
const LIKE = 1;
const DISLIKE = 2;
const MAP_LIKE_TYPE = [
    LIKE => 'like', DISLIKE => 'dislike'
];

/**
 * 경험치 지급 구분값
 */
const EXP_TYPE_1 = 1; // 회원가입
const EXP_TYPE_2 = 2; // 로그인
const EXP_TYPE_3 = 3; // 회원가입 시 추천인
const EXP_TYPE_4 = 4; // 추천인 존재 시 가입자에게
const EXP_TYPE_5 = 5; // 출석
const EXP_TYPE_6 = 6; // 설문조사 참여
const EXP_TYPE_7 = 7; // 게시글 작성
const EXP_TYPE_8 = 8; // 댓글 작성
const EXP_TYPE_9 = 9; // 작성자 본인이 게시글 삭제
const EXP_TYPE_10 = 10; // 관리자가 게시글 삭제
const EXP_TYPE_11 = 11; // 작성자 본인이 댓글 삭제
const EXP_TYPE_12 = 12; // 관리자가 댓글 삭제
const EXP_TYPE_13 = 13; // 파일 업로드
const EXP_TYPE_14 = 14; // 파일 다운로드
const EXP_TYPE_15 = 15; // 파일 다운로드 시 업로더에게
const EXP_TYPE_16 = 16; // 게시글 조회
const EXP_TYPE_17 = 17; // 게시글 추천함
const EXP_TYPE_18 = 18; // 게시글 비추천함
const EXP_TYPE_19 = 19; // 게시글 추천 받음
const EXP_TYPE_20 = 20; // 게시글 비추천 받음
const EXP_TYPE_21 = 21; // 댓글 추천함
const EXP_TYPE_22 = 22; // 댓글 비추천함
const EXP_TYPE_23 = 23; // 댓글 추천 받음
const EXP_TYPE_24 = 24; // 댓글 비추천 받음
const EXP_TYPE_9999 = 9999; // 관리자
const MAP_EXP_TYPE = [
    EXP_TYPE_1 => 'exp_register', EXP_TYPE_2 => 'exp_login', EXP_TYPE_3 => 'exp_recommended', EXP_TYPE_4 => 'exp_recommender',
    EXP_TYPE_5 => 'exp_attendance', EXP_TYPE_6 => 'exp_poll', EXP_TYPE_7 => 'exp_write', EXP_TYPE_8 => 'exp_comment',
    EXP_TYPE_9 => 'exp_post_delete', EXP_TYPE_10 => 'exp_admin_post_delete', EXP_TYPE_11 => 'exp_comment_delete', EXP_TYPE_12 => 'exp_admin_comment_delete',
    EXP_TYPE_13 => 'exp_file_upload', EXP_TYPE_14 => 'exp_file_download', EXP_TYPE_15 => 'exp_file_download_uploader', EXP_TYPE_16 => 'exp_read',
    EXP_TYPE_17 => 'exp_post_like', EXP_TYPE_18 => 'exp_post_dislike', EXP_TYPE_19 => 'exp_post_liked', EXP_TYPE_20 => 'exp_post_disliked',
    EXP_TYPE_21 => 'exp_comment_like', EXP_TYPE_22 => 'exp_comment_dislike', EXP_TYPE_23 => 'exp_comment_liked', EXP_TYPE_24 => 'exp_comment_disliked',
    EXP_TYPE_9999 => 'exp_admin'
];
const MAP_EXP_CONTENT = [
    EXP_TYPE_1 => '회원가입', EXP_TYPE_2 => '로그인', EXP_TYPE_3 => '회원가입 시 추천인', EXP_TYPE_4 => '추천인 존재 시 가입자에게',
    EXP_TYPE_5 => '출석', EXP_TYPE_6 => '설문조사 참여', EXP_TYPE_7 => '게시글 작성', EXP_TYPE_8 => '댓글 작성',
    EXP_TYPE_9 => '작성자 본인이 게시글 삭제', EXP_TYPE_10 => '관리자가 게시글 삭제', EXP_TYPE_11 => '작성자 본인이 댓글 삭제', EXP_TYPE_12 => '관리자가 댓글 삭제',
    EXP_TYPE_13 => '파일 업로드', EXP_TYPE_14 => '파일 다운로드', EXP_TYPE_15 => '파일 다운로드 시 업로더에게', EXP_TYPE_16 => '게시글 조회',
    EXP_TYPE_17 => '게시글 추천함', EXP_TYPE_18 => '게시글 비추천함', EXP_TYPE_19 => '게시글 추천 받음', EXP_TYPE_20 => '게시글 비추천 받음',
    EXP_TYPE_21 => '댓글 추천함', EXP_TYPE_22 => '댓글 비추천함', EXP_TYPE_23 => '댓글 추천 받음', EXP_TYPE_24 => '댓글 비추천 받음',
    EXP_TYPE_9999 => '관리자'
];
