-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

-- -----------------------------------------------------
-- Schema eod_authentication
-- -----------------------------------------------------
-- 인증 데이터베이스
-- -----------------------------------------------------
-- Schema eod_game
-- -----------------------------------------------------
-- 게임 데이터베이스
-- -----------------------------------------------------
-- Schema eod_log
-- -----------------------------------------------------
-- 로그 데이터베이스
-- -----------------------------------------------------
-- Schema eod_ranking
-- -----------------------------------------------------
-- 랭킹 데이터베이스
-- -----------------------------------------------------
-- Schema eod_community
-- -----------------------------------------------------
-- 커뮤니티 데이터베이스
-- -----------------------------------------------------
-- Schema eod_tool
-- -----------------------------------------------------
-- 서비스 관리도구용 데이터베이스
-- -----------------------------------------------------
-- Schema eod_configuration
-- -----------------------------------------------------
-- 서비스 설정 데이터베이스
-- -----------------------------------------------------
-- Schema eod_global
-- -----------------------------------------------------
-- 전역 서비스 관리 데이터베이스

-- -----------------------------------------------------
-- Schema eod_global
--
-- 전역 서비스 관리 데이터베이스
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `eod_global` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
USE `eod_global` ;

-- -----------------------------------------------------
-- Table `eod_global`.`table_application_contract`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_global`.`table_application_contract` (
  `application_identifier` VARCHAR(64) NOT NULL COMMENT '애플리케이션 식별 키',
  `sign_key` VARCHAR(256) NOT NULL DEFAULT '' COMMENT '인증키',
  `used` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '사용 여부',
  PRIMARY KEY (`application_identifier`))
ENGINE = InnoDB
COMMENT = '애플리케이션 키 등록 정보';


-- -----------------------------------------------------
-- Table `eod_global`.`table_player_nicknames`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_global`.`table_player_nicknames` (
  `application_identifier` VARCHAR(64) NOT NULL COMMENT '애플리케이션 식별 키',
  `category_code` INT(11) NOT NULL DEFAULT '0' COMMENT '마켓 분류 코드',
  `name` VARBINARY(256) NOT NULL COMMENT '이름',
  `name_description` VARCHAR(256) NOT NULL DEFAULT '' COMMENT '`Name` 필드의 이름을 사람이 알아볼 수 있도록 저장하는 필드',
  `register_key` VARCHAR(256) NOT NULL DEFAULT '' COMMENT '사전등록 키',
  `fixed` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '0 : 비확정\n1 : 확정',
  `time_seconds` BIGINT(20) NOT NULL DEFAULT '0' COMMENT '재사용 대기시간(초)',
  `generate_datetime` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록시간',
  PRIMARY KEY (`application_identifier`, `name`))
ENGINE = InnoDB
COMMENT = '등록한 플레이어 별명';


-- -----------------------------------------------------
-- Table `eod_global`.`table_guild_names`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_global`.`table_guild_names` (
  `application_identifier` VARCHAR(64) NOT NULL COMMENT '애플리케이션 식별 키',
  `category_code` INT(11) NOT NULL DEFAULT '0' COMMENT '마켓 분류 코드',
  `name` VARBINARY(256) NOT NULL COMMENT '이름',
  `name_description` VARCHAR(256) NOT NULL DEFAULT '' COMMENT '`Name` 필드의 이름을 사람이 알아볼 수 있도록 저장하는 필드',
  `register_key` VARCHAR(256) NOT NULL DEFAULT '' COMMENT '사전등록 키',
  `fixed` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '0 : 비확정\n1 : 확정',
  `time_seconds` BIGINT(20) NOT NULL DEFAULT '0' COMMENT '재사용 대기시간(초)',
  `generate_datetime` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록시간',
  PRIMARY KEY (`application_identifier`, `name`))
ENGINE = InnoDB
COMMENT = '등록한 길드 이름';


-- -----------------------------------------------------
-- Table `eod_global`.`table_promotion_log`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_global`.`table_promotion_log` (
  `server_code` INT NOT NULL DEFAULT '0' COMMENT '서버 코드',
  `user_id` BIGINT UNSIGNED NOT NULL DEFAULT '0' COMMENT '사용자 ID',
  `reward_key` VARCHAR(256) NOT NULL DEFAULT '' COMMENT '보상 키',
  `generate_datetime` DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
  INDEX `idx_table_promotion_log_user_id` (`user_id` ASC))
ENGINE = InnoDB
COMMENT = '프로모션 보상 지급 로그';


-- -----------------------------------------------------
-- Table `eod_global`.`table_promotion_data`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_global`.`table_promotion_data` (
  `user_id` BIGINT(20) UNSIGNED NOT NULL,
  `server_code` INT(11) NOT NULL,
  `unique_key` VARCHAR(256) NOT NULL,
  `character_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
  `event_application` VARCHAR(256) NOT NULL DEFAULT '',
  `reward_info` VARCHAR(256) NOT NULL DEFAULT '',
  `content_data` VARCHAR(256) NOT NULL DEFAULT '',
  `generate_datetime` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT '생성일시',
  PRIMARY KEY (`user_id`, `server_code`, `unique_key`))
ENGINE = InnoDB
COMMENT = '프로모션 데이터';


-- -----------------------------------------------------
-- Table `eod_global`.`table_igaworks_coupon`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_global`.`table_igaworks_coupon` (
  `campaign_key` VARCHAR(50) NOT NULL COMMENT '캠페인 키',
  `valid_nickname_creation_date` DATE NOT NULL,
  `reward1` INT(11) NOT NULL DEFAULT 0 COMMENT '보상 아이템의 식별 코드-1',
  `count1` INT(11) NOT NULL DEFAULT 0 COMMENT '보상 아이템의 수량-1',
  `is_lotto1` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '보상 아이템이 소환권인지 여부-1',
  `reward2` INT(11) NOT NULL DEFAULT 0 COMMENT '보상 아이템의 식별 코드-2',
  `count2` INT(11) NOT NULL DEFAULT 0 COMMENT '보상 아이템의 수량-1',
  `is_lotto2` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '보상 아이템이 소환권인지 여부-2',
  `reward3` INT(11) NOT NULL DEFAULT 0 COMMENT '보상 아이템의 식별 코드-3',
  `count3` INT(11) NOT NULL DEFAULT 0 COMMENT '보상 아이템의 수량-1',
  `is_lotto3` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '보상 아이템이 소환권인지 여부-3',
  `reward4` INT(11) NOT NULL DEFAULT 0 COMMENT '보상 아이템의 식별 코드-4',
  `count4` INT(11) NOT NULL DEFAULT 0 COMMENT '보상 아이템의 수량-1',
  `is_lotto4` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '보상 아이템이 소환권인지 여부-4',
  `reward5` INT(11) NOT NULL DEFAULT 0 COMMENT '보상 아이템의 식별 코드-5',
  `count5` INT(11) NOT NULL DEFAULT 0 COMMENT '보상 아이템의 수량-1',
  `is_lotto5` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '보상 아이템이 소환권인지 여부-5',
  `is_delete` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '삭제 여부',
  `deleted_administrator` VARCHAR(50) NOT NULL COMMENT '삭제한 운영자의 계정',
  `deleted_datetime` DATETIME NOT NULL COMMENT '삭제한 일시',
  `disposer` VARCHAR(50) NOT NULL COMMENT '폐기한 사람',
  `reason_text` VARCHAR(100) NOT NULL COMMENT '폐기한 사유',
  `creation_datetime` DATETIME NOT NULL COMMENT '생성한 일시',
  PRIMARY KEY (`campaign_key`))
ENGINE = InnoDB
COMMENT = 'IGAWorks 쿠폰 지급 내역';


-- -----------------------------------------------------
-- Table `eod_global`.`table_account_user_serial_codes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `eod_global`.`table_account_user_serial_codes` (
  `serial_code` VARCHAR(24) NOT NULL COMMENT '계정마다 부여하는 시리얼 코드\n\n- 각 글자마다 [A-Z], [0-9]인 16글자로 구성한다.\n: 영문자는 대문자만 사용한다.\n\n- 각 계정들은 반드시 하나의 시리얼 코드를 보유해야 한다.',
  `generate_datetime` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '생성 일시',
  PRIMARY KEY (`serial_code`))
ENGINE = InnoDB
COMMENT = '사용자 계정 시리얼 코드 등록 정보';


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
