CREATE TABLE WB_BBS_FILE
(
  FILE_ID VARCHAR2(12) NOT NULL PRIMARY KEY,
  CREATE_DATE DATE NOT NULL,
  FILE_NAME VARCHAR2(255) NOT NULL,
  FILE_SIZE NUMERIC(10) NOT NULL,
  FILE_CONTENT BLOB
);

CREATE TABLE WB_BBS_POST
(
  BBS_ID VARCHAR2(12) NOT NULL,
  POST_DATE DATE NOT NULL,
  POST_USER VARCHAR2(12) NOT NULL,
  POST_ID VARCHAR2(12) NOT NULL,
  CONTENT CLOB
);
CREATE INDEX WB_BBS_POST_IDX1 ON WB_BBS_POST (BBS_ID, POST_DATE);
CREATE INDEX WB_BBS_POST_IDX2 ON WB_BBS_POST(POST_USER);

CREATE TABLE WB_BBS_TITLE
(
  BBS_ID VARCHAR2(12) NOT NULL PRIMARY KEY,
  TITLE VARCHAR2(255) NOT NULL,
  SET_TOP NUMERIC(1) NOT NULL,
  CREATE_DATE DATE NOT NULL,
  CREATE_USER VARCHAR2(50) NOT NULL,
  REPLY_COUNT NUMERIC(8) NOT NULL,
  VIEW_COUNT NUMERIC(8) NOT NULL,
  POST_DATE DATE NOT NULL,
  POST_USER VARCHAR2(12) NOT NULL,
  CONTENT CLOB
);
CREATE INDEX WB_BBS_TITLE_IDX1 ON WB_BBS_TITLE(SET_TOP, POST_DATE);
CREATE INDEX WB_BBS_TITLE_IDX2 ON WB_BBS_TITLE(CREATE_USER);
CREATE INDEX WB_BBS_TITLE_IDX3 ON WB_BBS_TITLE(POST_USER);

CREATE TABLE WB_CUST
(
  CUST_ID VARCHAR2(12) NOT NULL PRIMARY KEY,
  CUST_NO VARCHAR2(5) NOT NULL,
  COMPANY VARCHAR2(50),
  ADDR VARCHAR2(50),
  COUNTRY VARCHAR2(20),
  TAX_RATE NUMERIC(6,2),
  INVOICE_DATE DATE,
  REMARK CLOB
);

CREATE TABLE WB_DUAL
(
  DMY NUMERIC(1)
);

CREATE TABLE WB_KEY
(
  KEY_ID VARCHAR2(12) NOT NULL PRIMARY KEY,
  KEY_TYPE VARCHAR2(50) NOT NULL,
  KEY_NAME VARCHAR2(50) NOT NULL,
  KEY_VALUE VARCHAR2(200) NOT NULL
);
CREATE INDEX WB_KEY_IDX ON WB_KEY(KEY_TYPE);

CREATE TABLE WB_LOG
(
  LOG_DATE DATE NOT NULL,
  USER_NAME VARCHAR2(50) NOT NULL,
  IP VARCHAR2(50) NOT NULL,
  LOG_TYPE NUMERIC(1) NOT NULL,
  MSG VARCHAR2(255) NOT NULL
);
CREATE INDEX WB_LOG_IDX ON WB_LOG(LOG_DATE);

CREATE TABLE WB_META
(
  META_NAME VARCHAR2(30) NOT NULL PRIMARY KEY,
  META_TYPE VARCHAR2(50) NOT NULL,
  META_CONTENT CLOB NOT NULL,
  ORDER_INDEX NUMERIC(6) NOT NULL
);
CREATE INDEX WB_META_IDX ON WB_META(ORDER_INDEX);

CREATE TABLE WB_MODULE
(
  MODULE_ID VARCHAR2(12) NOT NULL PRIMARY KEY,
  PARENT_ID VARCHAR2(12) NOT NULL,
  MODULE_CONTENT CLOB,
  DISPLAY_NAME VARCHAR2(255),
  DISPLAY_ICON VARCHAR2(50),
  IS_HIDDEN NUMERIC(1),
  NEW_WIN NUMERIC(1),
  CREATE_USER VARCHAR2(12),
  CREATE_DATE DATE,
  LAST_MODIFY_USER VARCHAR2(12),
  LAST_MODIFY_DATE DATE,
  ORDER_INDEX NUMERIC(8)
);
CREATE INDEX WB_MODULE_IDX ON WB_MODULE(PARENT_ID, ORDER_INDEX);

CREATE TABLE WB_MODULE_HIS
(
  HIS_TITLE VARCHAR2(100) NOT NULL,
  MODULE_ID VARCHAR2(12) NOT NULL PRIMARY KEY,
  PARENT_ID VARCHAR2(12) NOT NULL,
  MODULE_CONTENT CLOB,
  DISPLAY_NAME VARCHAR2(255),
  DISPLAY_ICON VARCHAR2(50),
  IS_HIDDEN NUMERIC(1),
  NEW_WIN NUMERIC(1),
  CREATE_USER VARCHAR2(12),
  CREATE_DATE DATE,
  LAST_MODIFY_USER VARCHAR2(12),
  LAST_MODIFY_DATE DATE,
  ORDER_INDEX NUMERIC(8)
);
CREATE INDEX WB_MODULE_HIS_IDX ON WB_MODULE_HIS(HIS_TITLE);

CREATE TABLE WB_MODULE_ROLE
(
  MODULE_ID VARCHAR2(12) NOT NULL,
  ROLE_ID VARCHAR2(12) NOT NULL
);
CREATE INDEX WB_MODULE_ROLE_IDX ON WB_MODULE_ROLE(MODULE_ID);

CREATE TABLE WB_RESOURCE
(
  RES_ID VARCHAR2(200) NOT NULL PRIMARY KEY,
  RES_CONTENT BLOB
);

CREATE TABLE WB_ROLE
(
  ROLE_ID VARCHAR2(12) NOT NULL PRIMARY KEY,
  PARENT_ID VARCHAR2(12) NOT NULL,
  ROLE_NAME VARCHAR2(50) NOT NULL
);

CREATE TABLE WB_SALE
(
  RCV_DATE DATE NOT NULL,
  TXN_ID VARCHAR2(20) NOT NULL,
  PAYER_EMAIL VARCHAR2(127),
  MC_GROSS NUMERIC(9,2),
  MC_FEE NUMERIC(9,2),
  MC_CURRENCY VARCHAR2(10),
  FIRST_NAME VARCHAR2(64),
  LAST_NAME VARCHAR2(64),
  PAYMENT_DATE VARCHAR2(50),
  ADDRESS_COUNTRY VARCHAR2(64),
  ADDRESS_STATE VARCHAR2(40),
  ADDRESS_CITY VARCHAR2(40),
  ADDRESS_STREET VARCHAR2(200),
  ITEM_NAME VARCHAR2(127),
  RECEIVER_EMAIL VARCHAR2(127),
  REG_CODE VARCHAR2(20),
  USER_COUNT NUMERIC(7),
  OPT_SUPPORT NUMERIC(1)
);
CREATE INDEX WB_SALE_IDX1 ON WB_SALE(RCV_DATE);
CREATE INDEX WB_SALE_IDX2 ON WB_SALE(REG_CODE);

CREATE TABLE WB_SYSINFO
(
  RCV_DATE DATE NOT NULL,
  SYS_TITLE VARCHAR2(200),
  SYS_IP VARCHAR2(50), 
  SYS_SN VARCHAR(20), 
  SYS_CTX VARCHAR2(200)
);
CREATE INDEX WB_SYSINFO_IDX ON WB_SYSINFO(RCV_DATE);

CREATE TABLE WB_TASK
(
  TASK_ID VARCHAR2(12) NOT NULL PRIMARY KEY,
  TASK_NAME VARCHAR2(100) NOT NULL,
  INTERVAL_TYPE NUMERIC(1) NOT NULL,
  INTERVAL_EXPRESS VARCHAR2(10) NOT NULL,
  CLASS_NAME VARCHAR2(255) NOT NULL,
  BEGIN_DATE DATE,
  END_DATE DATE,
  STATUS NUMERIC(1) NOT NULL,
  REMARK VARCHAR2(255)
);

CREATE TABLE WB_USER
(
  USER_ID VARCHAR2(12) NOT NULL PRIMARY KEY,
  USER_NAME VARCHAR2(50) NOT NULL,
  DISPLAY_NAME VARCHAR2(100) NOT NULL,
  PASSWORD VARCHAR2(32) NOT NULL,
  STATUS NUMERIC(1) NOT NULL,
  CREATE_DATE DATE NOT NULL,
  LOGIN_TIMES NUMERIC(9) NOT NULL,
  EMAIL VARCHAR2(100),
  USE_LANG VARCHAR2(10),
  LAST_LOGIN DATE
);
CREATE UNIQUE INDEX WB_USER_UNQ ON WB_USER(USER_NAME);
CREATE INDEX WB_USER_IDX ON WB_USER(STATUS);

CREATE TABLE WB_USER_ROLE
(
  USER_ID VARCHAR2(12) NOT NULL,
  ROLE_ID VARCHAR2(12) NOT NULL
);
CREATE INDEX WB_USER_ROLE_IDX ON WB_USER_ROLE(USER_ID);

CREATE TABLE WB_VALUE
(
  VAL_ID VARCHAR2(200) NOT NULL PRIMARY KEY,
  VAL_CONTENT VARCHAR2(255)
);

CREATE TABLE WB_VAR
(
  VAR_ID VARCHAR2(12) NOT NULL PRIMARY KEY,
  PARENT_ID VARCHAR2(12) NOT NULL,
  VAR_NAME VARCHAR2(50) NOT NULL,
  VAR_VALUE VARCHAR2(255),
  IS_VAR NUMERIC(1)
);