| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656 |
- -- ============================================================================
- -- DATABASE EXTENSION FOR ESIMLAO PROJECT
- -- Based on infigate.vn website features and existing LAOS_ESIM schema
- -- Oracle Database SQL Script
- -- Created: 2025-12-29
- -- ============================================================================
- -- ============================================================================
- -- I. EXTEND EXISTING CUSTOMER_INFO TABLE FOR GMAIL LOGIN
- -- ============================================================================
- -- Add new columns to existing CUSTOMER_INFO table for authentication
- ALTER TABLE LAOS_ESIM.CUSTOMER_INFO ADD (
- GOOGLE_ID VARCHAR2(200),
- AVATAR_URL VARCHAR2(1000),
- PASSWORD_HASH VARCHAR2(500),
- STATUS NUMBER(1) DEFAULT 1,
- IS_VERIFIED NUMBER(1) DEFAULT 0,
- LAST_LOGIN_DATE DATE
- );
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_INFO.GOOGLE_ID IS 'ID tu Google OAuth khi dang nhap bang Gmail';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_INFO.AVATAR_URL IS 'Duong dan anh dai dien tu Google';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_INFO.PASSWORD_HASH IS 'Mat khau ma hoa (neu dang nhap bang password)';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_INFO.STATUS IS 'Trang thai tai khoan: 0=Khoa, 1=Hoat dong';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_INFO.IS_VERIFIED IS 'Da xac thuc email: 0=Chua, 1=Da xac thuc';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_INFO.LAST_LOGIN_DATE IS 'Thoi gian dang nhap gan nhat';
- -- Add comments for existing columns (if not already added)
- COMMENT ON TABLE LAOS_ESIM.CUSTOMER_INFO IS 'Bang thong tin khach hang va tai khoan dang nhap';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_INFO.ID IS 'ID tu dong tang cua khach hang';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_INFO.SUR_NAME IS 'Ho cua khach hang';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_INFO.LAST_NAME IS 'Ten cua khach hang';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_INFO.EMAIL IS 'Dia chi email (dung de dang nhap)';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_INFO.PHONE_NUMBER IS 'So dien thoai lien he';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_INFO.CREATED_DATE IS 'Ngay tao tai khoan';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_INFO.LAST_UPDATE IS 'Ngay cap nhat gan nhat';
- -- Create unique index on EMAIL for login
- CREATE UNIQUE INDEX LAOS_ESIM.CUSTOMER_INFO_EMAIL_UQ ON LAOS_ESIM.CUSTOMER_INFO(EMAIL);
- -- ============================================================================
- -- II. OTP VERIFICATION TABLE
- -- ============================================================================
- CREATE TABLE LAOS_ESIM.OTP_VERIFICATION (
- ID NUMBER(10) NOT NULL,
- CUSTOMER_ID NUMBER(10),
- USER_EMAIL VARCHAR2(200) NOT NULL,
- OTP_CODE VARCHAR2(10) NOT NULL,
- OTP_TYPE NUMBER(2) DEFAULT 1,
- EXPIRED_AT DATE NOT NULL,
- IS_USED NUMBER(1) DEFAULT 0,
- ATTEMPT_COUNT NUMBER(2) DEFAULT 0,
- CREATED_DATE DATE DEFAULT SYSDATE,
- CONSTRAINT OTP_VERIFICATION_PK PRIMARY KEY (ID)
- );
- COMMENT ON TABLE LAOS_ESIM.OTP_VERIFICATION IS 'Bang luu ma OTP xac thuc dang nhap';
- COMMENT ON COLUMN LAOS_ESIM.OTP_VERIFICATION.ID IS 'ID tu dong tang';
- COMMENT ON COLUMN LAOS_ESIM.OTP_VERIFICATION.CUSTOMER_ID IS 'ID khach hang (CUSTOMER_INFO.ID)';
- COMMENT ON COLUMN LAOS_ESIM.OTP_VERIFICATION.USER_EMAIL IS 'Email can xac thuc';
- COMMENT ON COLUMN LAOS_ESIM.OTP_VERIFICATION.OTP_CODE IS 'Ma OTP 6 so';
- COMMENT ON COLUMN LAOS_ESIM.OTP_VERIFICATION.OTP_TYPE IS 'Loai OTP: 1=Dang nhap, 2=Dat lai mat khau, 3=Xac thuc email';
- COMMENT ON COLUMN LAOS_ESIM.OTP_VERIFICATION.EXPIRED_AT IS 'Thoi gian het han OTP';
- COMMENT ON COLUMN LAOS_ESIM.OTP_VERIFICATION.IS_USED IS 'Da su dung: 0=Chua, 1=Da dung';
- COMMENT ON COLUMN LAOS_ESIM.OTP_VERIFICATION.ATTEMPT_COUNT IS 'So lan thu sai';
- COMMENT ON COLUMN LAOS_ESIM.OTP_VERIFICATION.CREATED_DATE IS 'Ngay tao OTP';
- CREATE SEQUENCE LAOS_ESIM.OTP_VERIFICATION_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
- CREATE INDEX LAOS_ESIM.OTP_EMAIL_IDX ON LAOS_ESIM.OTP_VERIFICATION(USER_EMAIL, IS_USED);
- -- ============================================================================
- -- III. TOKEN MANAGEMENT TABLE
- -- ============================================================================
- CREATE TABLE LAOS_ESIM.USER_TOKEN (
- ID NUMBER(10) NOT NULL,
- CUSTOMER_ID NUMBER(10) NOT NULL,
- ACCESS_TOKEN VARCHAR2(500) NOT NULL,
- REFRESH_TOKEN VARCHAR2(500),
- TOKEN_TYPE VARCHAR2(50) DEFAULT 'Bearer',
- DEVICE_INFO VARCHAR2(500),
- IP_ADDRESS VARCHAR2(50),
- EXPIRED_AT DATE NOT NULL,
- REFRESH_EXPIRED_AT DATE,
- IS_REVOKED NUMBER(1) DEFAULT 0,
- CREATED_DATE DATE DEFAULT SYSDATE,
- LAST_USED DATE,
- CONSTRAINT USER_TOKEN_PK PRIMARY KEY (ID)
- );
- COMMENT ON TABLE LAOS_ESIM.USER_TOKEN IS 'Bang quan ly token xac thuc API';
- COMMENT ON COLUMN LAOS_ESIM.USER_TOKEN.ID IS 'ID tu dong tang';
- COMMENT ON COLUMN LAOS_ESIM.USER_TOKEN.CUSTOMER_ID IS 'ID khach hang (CUSTOMER_INFO.ID)';
- COMMENT ON COLUMN LAOS_ESIM.USER_TOKEN.ACCESS_TOKEN IS 'Access token JWT';
- COMMENT ON COLUMN LAOS_ESIM.USER_TOKEN.REFRESH_TOKEN IS 'Refresh token de lam moi access token';
- COMMENT ON COLUMN LAOS_ESIM.USER_TOKEN.TOKEN_TYPE IS 'Loai token (Bearer)';
- COMMENT ON COLUMN LAOS_ESIM.USER_TOKEN.DEVICE_INFO IS 'Thong tin thiet bi dang nhap';
- COMMENT ON COLUMN LAOS_ESIM.USER_TOKEN.IP_ADDRESS IS 'Dia chi IP khi dang nhap';
- COMMENT ON COLUMN LAOS_ESIM.USER_TOKEN.EXPIRED_AT IS 'Thoi gian het han access token';
- COMMENT ON COLUMN LAOS_ESIM.USER_TOKEN.REFRESH_EXPIRED_AT IS 'Thoi gian het han refresh token';
- COMMENT ON COLUMN LAOS_ESIM.USER_TOKEN.IS_REVOKED IS 'Token bi thu hoi: 0=Khong, 1=Da thu hoi';
- COMMENT ON COLUMN LAOS_ESIM.USER_TOKEN.CREATED_DATE IS 'Ngay tao token';
- COMMENT ON COLUMN LAOS_ESIM.USER_TOKEN.LAST_USED IS 'Thoi gian su dung gan nhat';
- CREATE SEQUENCE LAOS_ESIM.USER_TOKEN_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
- CREATE INDEX LAOS_ESIM.USER_TOKEN_CUSTOMER_IDX ON LAOS_ESIM.USER_TOKEN(CUSTOMER_ID);
- CREATE INDEX LAOS_ESIM.USER_TOKEN_ACCESS_IDX ON LAOS_ESIM.USER_TOKEN(ACCESS_TOKEN);
- -- ============================================================================
- -- IV. MESSAGE QUEUE TABLE (For scanning and sending messages)
- -- ============================================================================
- CREATE TABLE LAOS_ESIM.MESSAGE_QUEUE (
- ID NUMBER(10) NOT NULL,
- MESSAGE_TYPE NUMBER(2) DEFAULT 1,
- RECIPIENT VARCHAR2(200) NOT NULL,
- SUBJECT NVARCHAR2(500),
- CONTENT CLOB,
- TEMPLATE_CODE VARCHAR2(50),
- TEMPLATE_DATA CLOB,
- PRIORITY NUMBER(1) DEFAULT 5,
- STATUS NUMBER(2) DEFAULT 0,
- SCHEDULED_AT DATE,
- PROCESSED_AT DATE,
- RETRY_COUNT NUMBER(2) DEFAULT 0,
- MAX_RETRY NUMBER(2) DEFAULT 3,
- ERROR_MESSAGE VARCHAR2(2000),
- CREATED_BY NUMBER(10),
- CREATED_DATE DATE DEFAULT SYSDATE,
- CONSTRAINT MESSAGE_QUEUE_PK PRIMARY KEY (ID)
- );
- COMMENT ON TABLE LAOS_ESIM.MESSAGE_QUEUE IS 'Bang luu tin nhan cho xu ly gui (email/SMS)';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_QUEUE.ID IS 'ID tu dong tang';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_QUEUE.MESSAGE_TYPE IS 'Loai tin nhan: 1=Email, 2=SMS, 3=Push Notification';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_QUEUE.RECIPIENT IS 'Dia chi nhan (email/so dien thoai)';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_QUEUE.SUBJECT IS 'Tieu de tin nhan/email';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_QUEUE.CONTENT IS 'Noi dung tin nhan';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_QUEUE.TEMPLATE_CODE IS 'Ma mau tin nhan';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_QUEUE.TEMPLATE_DATA IS 'Du lieu thay the vao mau (JSON)';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_QUEUE.PRIORITY IS 'Do uu tien: 1=Cao nhat, 10=Thap nhat';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_QUEUE.STATUS IS 'Trang thai: 0=Cho xu ly, 1=Dang xu ly, 2=Thanh cong, 3=That bai';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_QUEUE.SCHEDULED_AT IS 'Thoi gian dat lich gui';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_QUEUE.PROCESSED_AT IS 'Thoi gian da xu ly';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_QUEUE.RETRY_COUNT IS 'So lan thu lai';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_QUEUE.MAX_RETRY IS 'So lan thu lai toi da';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_QUEUE.ERROR_MESSAGE IS 'Thong bao loi khi gui that bai';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_QUEUE.CREATED_BY IS 'ID nguoi tao';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_QUEUE.CREATED_DATE IS 'Ngay tao';
- CREATE SEQUENCE LAOS_ESIM.MESSAGE_QUEUE_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
- CREATE INDEX LAOS_ESIM.MESSAGE_QUEUE_STATUS_IDX ON LAOS_ESIM.MESSAGE_QUEUE(STATUS, PRIORITY, SCHEDULED_AT);
- -- ============================================================================
- -- V. MESSAGE TEMPLATE TABLE
- -- ============================================================================
- CREATE TABLE LAOS_ESIM.MESSAGE_TEMPLATE (
- ID NUMBER(10) NOT NULL,
- TEMPLATE_CODE VARCHAR2(50) NOT NULL,
- TEMPLATE_NAME NVARCHAR2(200) NOT NULL,
- MESSAGE_TYPE NUMBER(2) DEFAULT 1,
- SUBJECT NVARCHAR2(500),
- CONTENT CLOB,
- VARIABLES VARCHAR2(1000),
- STATUS NUMBER(1) DEFAULT 1,
- CREATED_DATE DATE DEFAULT SYSDATE,
- LAST_UPDATE DATE,
- CONSTRAINT MESSAGE_TEMPLATE_PK PRIMARY KEY (ID)
- );
- COMMENT ON TABLE LAOS_ESIM.MESSAGE_TEMPLATE IS 'Bang mau tin nhan email/SMS';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_TEMPLATE.ID IS 'ID tu dong tang';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_TEMPLATE.TEMPLATE_CODE IS 'Ma mau tin nhan (unique)';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_TEMPLATE.TEMPLATE_NAME IS 'Ten mau tin nhan';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_TEMPLATE.MESSAGE_TYPE IS 'Loai: 1=Email, 2=SMS';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_TEMPLATE.SUBJECT IS 'Tieu de email';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_TEMPLATE.CONTENT IS 'Noi dung mau';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_TEMPLATE.VARIABLES IS 'Danh sach bien (VD: {{name}},{{email}})';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_TEMPLATE.STATUS IS 'Trang thai: 0=An, 1=Hien';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_TEMPLATE.CREATED_DATE IS 'Ngay tao';
- COMMENT ON COLUMN LAOS_ESIM.MESSAGE_TEMPLATE.LAST_UPDATE IS 'Ngay cap nhat';
- CREATE SEQUENCE LAOS_ESIM.MESSAGE_TEMPLATE_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
- CREATE UNIQUE INDEX LAOS_ESIM.MESSAGE_TEMPLATE_CODE_UQ ON LAOS_ESIM.MESSAGE_TEMPLATE(TEMPLATE_CODE);
- -- ============================================================================
- -- VI. CMS TABLES (Banner, Content, Articles - Based on infigate.vn)
- -- ============================================================================
- -- BANNER: Homepage banners/sliders
- CREATE TABLE LAOS_ESIM.BANNER (
- ID NUMBER(10) NOT NULL,
- TITLE NVARCHAR2(500),
- SUBTITLE NVARCHAR2(1000),
- IMAGE_URL VARCHAR2(1000) NOT NULL,
- IMAGE_MOBILE_URL VARCHAR2(1000),
- LINK_URL VARCHAR2(1000),
- LINK_TARGET VARCHAR2(20) DEFAULT '_self',
- POSITION VARCHAR2(50) DEFAULT 'HOME',
- DISPLAY_ORDER NUMBER(5) DEFAULT 1,
- STATUS NUMBER(1) DEFAULT 1,
- START_DATE DATE,
- END_DATE DATE,
- CREATED_BY NUMBER(10),
- CREATED_DATE DATE DEFAULT SYSDATE,
- LAST_UPDATE DATE,
- CONSTRAINT BANNER_PK PRIMARY KEY (ID)
- );
- COMMENT ON TABLE LAOS_ESIM.BANNER IS 'Bang quan ly banner/slider trang web';
- COMMENT ON COLUMN LAOS_ESIM.BANNER.ID IS 'ID tu dong tang';
- COMMENT ON COLUMN LAOS_ESIM.BANNER.TITLE IS 'Tieu de banner';
- COMMENT ON COLUMN LAOS_ESIM.BANNER.SUBTITLE IS 'Mo ta ngan';
- COMMENT ON COLUMN LAOS_ESIM.BANNER.IMAGE_URL IS 'Duong dan anh banner (desktop)';
- COMMENT ON COLUMN LAOS_ESIM.BANNER.IMAGE_MOBILE_URL IS 'Duong dan anh banner (mobile)';
- COMMENT ON COLUMN LAOS_ESIM.BANNER.LINK_URL IS 'URL khi click vao banner';
- COMMENT ON COLUMN LAOS_ESIM.BANNER.LINK_TARGET IS 'Mo tab: _self hoac _blank';
- COMMENT ON COLUMN LAOS_ESIM.BANNER.POSITION IS 'Vi tri: HOME, PRODUCT, SUPPORT, etc.';
- COMMENT ON COLUMN LAOS_ESIM.BANNER.DISPLAY_ORDER IS 'Thu tu hien thi';
- COMMENT ON COLUMN LAOS_ESIM.BANNER.STATUS IS 'Trang thai: 0=An, 1=Hien';
- COMMENT ON COLUMN LAOS_ESIM.BANNER.START_DATE IS 'Ngay bat dau hien thi';
- COMMENT ON COLUMN LAOS_ESIM.BANNER.END_DATE IS 'Ngay ket thuc hien thi';
- COMMENT ON COLUMN LAOS_ESIM.BANNER.CREATED_BY IS 'ID nguoi tao';
- COMMENT ON COLUMN LAOS_ESIM.BANNER.CREATED_DATE IS 'Ngay tao';
- COMMENT ON COLUMN LAOS_ESIM.BANNER.LAST_UPDATE IS 'Ngay cap nhat';
- CREATE SEQUENCE LAOS_ESIM.BANNER_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
- -- CMS_CONTENT: Static pages (About us, Terms, Policies, etc.)
- CREATE TABLE LAOS_ESIM.CMS_CONTENT (
- ID NUMBER(10) NOT NULL,
- PAGE_CODE VARCHAR2(100) NOT NULL,
- PAGE_TITLE NVARCHAR2(500) NOT NULL,
- PAGE_SLUG VARCHAR2(200) NOT NULL,
- META_DESCRIPTION NVARCHAR2(500),
- META_KEYWORDS NVARCHAR2(500),
- CONTENT CLOB,
- PAGE_TYPE VARCHAR2(50) DEFAULT 'STATIC',
- STATUS NUMBER(1) DEFAULT 1,
- LANGUAGE VARCHAR2(10) DEFAULT 'vi',
- CREATED_BY NUMBER(10),
- CREATED_DATE DATE DEFAULT SYSDATE,
- LAST_UPDATE DATE,
- UPDATED_BY NUMBER(10),
- CONSTRAINT CMS_CONTENT_PK PRIMARY KEY (ID)
- );
- COMMENT ON TABLE LAOS_ESIM.CMS_CONTENT IS 'Bang noi dung cac trang tinh (Gioi thieu, Chinh sach...)';
- COMMENT ON COLUMN LAOS_ESIM.CMS_CONTENT.ID IS 'ID tu dong tang';
- COMMENT ON COLUMN LAOS_ESIM.CMS_CONTENT.PAGE_CODE IS 'Ma trang (VD: ABOUT_US, TERMS, PRIVACY)';
- COMMENT ON COLUMN LAOS_ESIM.CMS_CONTENT.PAGE_TITLE IS 'Tieu de trang';
- COMMENT ON COLUMN LAOS_ESIM.CMS_CONTENT.PAGE_SLUG IS 'URL-friendly slug';
- COMMENT ON COLUMN LAOS_ESIM.CMS_CONTENT.META_DESCRIPTION IS 'Mo ta SEO';
- COMMENT ON COLUMN LAOS_ESIM.CMS_CONTENT.META_KEYWORDS IS 'Tu khoa SEO';
- COMMENT ON COLUMN LAOS_ESIM.CMS_CONTENT.CONTENT IS 'Noi dung HTML';
- COMMENT ON COLUMN LAOS_ESIM.CMS_CONTENT.PAGE_TYPE IS 'Loai trang: STATIC, POLICY, GUIDE';
- COMMENT ON COLUMN LAOS_ESIM.CMS_CONTENT.STATUS IS 'Trang thai: 0=An, 1=Hien';
- COMMENT ON COLUMN LAOS_ESIM.CMS_CONTENT.LANGUAGE IS 'Ngon ngu: vi, en, lo';
- COMMENT ON COLUMN LAOS_ESIM.CMS_CONTENT.CREATED_BY IS 'ID nguoi tao';
- COMMENT ON COLUMN LAOS_ESIM.CMS_CONTENT.CREATED_DATE IS 'Ngay tao';
- COMMENT ON COLUMN LAOS_ESIM.CMS_CONTENT.LAST_UPDATE IS 'Ngay cap nhat';
- COMMENT ON COLUMN LAOS_ESIM.CMS_CONTENT.UPDATED_BY IS 'ID nguoi cap nhat';
- CREATE SEQUENCE LAOS_ESIM.CMS_CONTENT_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
- CREATE UNIQUE INDEX LAOS_ESIM.CMS_CONTENT_CODE_LANG_UQ ON LAOS_ESIM.CMS_CONTENT(PAGE_CODE, LANGUAGE);
- CREATE UNIQUE INDEX LAOS_ESIM.CMS_CONTENT_SLUG_UQ ON LAOS_ESIM.CMS_CONTENT(PAGE_SLUG, LANGUAGE);
- -- ============================================================================
- -- VII. ARTICLE/BLOG TABLES
- -- ============================================================================
- -- ARTICLE_CATEGORY: Blog/Library categories
- CREATE TABLE LAOS_ESIM.ARTICLE_CATEGORY (
- ID NUMBER(10) NOT NULL,
- CATEGORY_NAME NVARCHAR2(200) NOT NULL,
- CATEGORY_SLUG VARCHAR2(200) NOT NULL,
- DESCRIPTION NVARCHAR2(1000),
- ICON_URL VARCHAR2(500),
- PARENT_ID NUMBER(10),
- DISPLAY_ORDER NUMBER(5) DEFAULT 1,
- STATUS NUMBER(1) DEFAULT 1,
- CREATED_DATE DATE DEFAULT SYSDATE,
- LAST_UPDATE DATE,
- CONSTRAINT ARTICLE_CATEGORY_PK PRIMARY KEY (ID),
- CONSTRAINT ARTICLE_CATEGORY_PARENT_FK FOREIGN KEY (PARENT_ID) REFERENCES LAOS_ESIM.ARTICLE_CATEGORY(ID)
- );
- COMMENT ON TABLE LAOS_ESIM.ARTICLE_CATEGORY IS 'Bang danh muc bai viet (Cam nang, Huong dan)';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE_CATEGORY.ID IS 'ID tu dong tang';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE_CATEGORY.CATEGORY_NAME IS 'Ten danh muc';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE_CATEGORY.CATEGORY_SLUG IS 'URL slug cua danh muc';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE_CATEGORY.DESCRIPTION IS 'Mo ta danh muc';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE_CATEGORY.ICON_URL IS 'Duong dan icon';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE_CATEGORY.PARENT_ID IS 'ID danh muc cha (null = goc)';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE_CATEGORY.DISPLAY_ORDER IS 'Thu tu hien thi';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE_CATEGORY.STATUS IS 'Trang thai: 0=An, 1=Hien';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE_CATEGORY.CREATED_DATE IS 'Ngay tao';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE_CATEGORY.LAST_UPDATE IS 'Ngay cap nhat';
- CREATE SEQUENCE LAOS_ESIM.ARTICLE_CATEGORY_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
- -- ARTICLE: Blog posts/Library articles
- CREATE TABLE LAOS_ESIM.ARTICLE (
- ID NUMBER(10) NOT NULL,
- CATEGORY_ID NUMBER(10),
- TITLE NVARCHAR2(500) NOT NULL,
- SLUG VARCHAR2(500) NOT NULL,
- SUMMARY NVARCHAR2(2000),
- CONTENT CLOB,
- THUMBNAIL_URL VARCHAR2(1000),
- COVER_IMAGE_URL VARCHAR2(1000),
- META_DESCRIPTION NVARCHAR2(500),
- META_KEYWORDS NVARCHAR2(500),
- AUTHOR_ID NUMBER(10),
- VIEW_COUNT NUMBER(10) DEFAULT 0,
- IS_FEATURED NUMBER(1) DEFAULT 0,
- IS_PINNED NUMBER(1) DEFAULT 0,
- STATUS NUMBER(1) DEFAULT 0,
- PUBLISHED_DATE DATE,
- LANGUAGE VARCHAR2(10) DEFAULT 'vi',
- CREATED_BY NUMBER(10),
- CREATED_DATE DATE DEFAULT SYSDATE,
- LAST_UPDATE DATE,
- UPDATED_BY NUMBER(10),
- CONSTRAINT ARTICLE_PK PRIMARY KEY (ID),
- CONSTRAINT ARTICLE_CATEGORY_FK FOREIGN KEY (CATEGORY_ID) REFERENCES LAOS_ESIM.ARTICLE_CATEGORY(ID)
- );
- COMMENT ON TABLE LAOS_ESIM.ARTICLE IS 'Bang bai viet (Cam nang du lich, Huong dan)';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.ID IS 'ID tu dong tang';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.CATEGORY_ID IS 'ID danh muc bai viet';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.TITLE IS 'Tieu de bai viet';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.SLUG IS 'URL-friendly slug';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.SUMMARY IS 'Tom tat noi dung';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.CONTENT IS 'Noi dung HTML day du';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.THUMBNAIL_URL IS 'Anh thu nho';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.COVER_IMAGE_URL IS 'Anh bia bai viet';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.META_DESCRIPTION IS 'Mo ta SEO';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.META_KEYWORDS IS 'Tu khoa SEO';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.AUTHOR_ID IS 'ID tac gia';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.VIEW_COUNT IS 'So luot xem';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.IS_FEATURED IS 'Bai viet noi bat: 0=Khong, 1=Co';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.IS_PINNED IS 'Ghim len dau: 0=Khong, 1=Co';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.STATUS IS 'Trang thai: 0=Nhap, 1=Xuat ban, 2=An';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.PUBLISHED_DATE IS 'Ngay xuat ban';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.LANGUAGE IS 'Ngon ngu: vi, en, lo';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.CREATED_BY IS 'ID nguoi tao';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.CREATED_DATE IS 'Ngay tao';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.LAST_UPDATE IS 'Ngay cap nhat';
- COMMENT ON COLUMN LAOS_ESIM.ARTICLE.UPDATED_BY IS 'ID nguoi cap nhat';
- CREATE SEQUENCE LAOS_ESIM.ARTICLE_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
- CREATE UNIQUE INDEX LAOS_ESIM.ARTICLE_SLUG_LANG_UQ ON LAOS_ESIM.ARTICLE(SLUG, LANGUAGE);
- CREATE INDEX LAOS_ESIM.ARTICLE_CATEGORY_IDX ON LAOS_ESIM.ARTICLE(CATEGORY_ID);
- CREATE INDEX LAOS_ESIM.ARTICLE_STATUS_IDX ON LAOS_ESIM.ARTICLE(STATUS, PUBLISHED_DATE);
- -- ============================================================================
- -- VIII. SUPPORT CENTER TABLES (Based on infigate.vn support structure)
- -- ============================================================================
- -- FAQ_CATEGORY: FAQ categories
- CREATE TABLE LAOS_ESIM.FAQ_CATEGORY (
- ID NUMBER(10) NOT NULL,
- CATEGORY_NAME NVARCHAR2(200) NOT NULL,
- CATEGORY_SLUG VARCHAR2(200) NOT NULL,
- DESCRIPTION NVARCHAR2(1000),
- ICON_URL VARCHAR2(500),
- DISPLAY_ORDER NUMBER(5) DEFAULT 1,
- STATUS NUMBER(1) DEFAULT 1,
- LANGUAGE VARCHAR2(10) DEFAULT 'vi',
- CREATED_DATE DATE DEFAULT SYSDATE,
- LAST_UPDATE DATE,
- CONSTRAINT FAQ_CATEGORY_PK PRIMARY KEY (ID)
- );
- COMMENT ON TABLE LAOS_ESIM.FAQ_CATEGORY IS 'Bang danh muc FAQ (Gioi thieu, Cai dat, Su dung, Su co)';
- COMMENT ON COLUMN LAOS_ESIM.FAQ_CATEGORY.ID IS 'ID tu dong tang';
- COMMENT ON COLUMN LAOS_ESIM.FAQ_CATEGORY.CATEGORY_NAME IS 'Ten danh muc (VD: Gioi thieu co ban, Cai dat & kich hoat)';
- COMMENT ON COLUMN LAOS_ESIM.FAQ_CATEGORY.CATEGORY_SLUG IS 'URL slug cua danh muc';
- COMMENT ON COLUMN LAOS_ESIM.FAQ_CATEGORY.DESCRIPTION IS 'Mo ta danh muc';
- COMMENT ON COLUMN LAOS_ESIM.FAQ_CATEGORY.ICON_URL IS 'Duong dan icon danh muc';
- COMMENT ON COLUMN LAOS_ESIM.FAQ_CATEGORY.DISPLAY_ORDER IS 'Thu tu hien thi';
- COMMENT ON COLUMN LAOS_ESIM.FAQ_CATEGORY.STATUS IS 'Trang thai: 0=An, 1=Hien';
- COMMENT ON COLUMN LAOS_ESIM.FAQ_CATEGORY.LANGUAGE IS 'Ngon ngu: vi, en, lo';
- COMMENT ON COLUMN LAOS_ESIM.FAQ_CATEGORY.CREATED_DATE IS 'Ngay tao';
- COMMENT ON COLUMN LAOS_ESIM.FAQ_CATEGORY.LAST_UPDATE IS 'Ngay cap nhat';
- CREATE SEQUENCE LAOS_ESIM.FAQ_CATEGORY_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
- -- FAQ: Frequently Asked Questions
- CREATE TABLE LAOS_ESIM.FAQ (
- ID NUMBER(10) NOT NULL,
- CATEGORY_ID NUMBER(10),
- QUESTION NVARCHAR2(1000) NOT NULL,
- ANSWER CLOB,
- DISPLAY_ORDER NUMBER(5) DEFAULT 1,
- VIEW_COUNT NUMBER(10) DEFAULT 0,
- IS_FEATURED NUMBER(1) DEFAULT 0,
- STATUS NUMBER(1) DEFAULT 1,
- LANGUAGE VARCHAR2(10) DEFAULT 'vi',
- CREATED_BY NUMBER(10),
- CREATED_DATE DATE DEFAULT SYSDATE,
- LAST_UPDATE DATE,
- CONSTRAINT FAQ_PK PRIMARY KEY (ID),
- CONSTRAINT FAQ_CATEGORY_FK FOREIGN KEY (CATEGORY_ID) REFERENCES LAOS_ESIM.FAQ_CATEGORY(ID)
- );
- COMMENT ON TABLE LAOS_ESIM.FAQ IS 'Bang cau hoi thuong gap';
- COMMENT ON COLUMN LAOS_ESIM.FAQ.ID IS 'ID tu dong tang';
- COMMENT ON COLUMN LAOS_ESIM.FAQ.CATEGORY_ID IS 'ID danh muc FAQ';
- COMMENT ON COLUMN LAOS_ESIM.FAQ.QUESTION IS 'Cau hoi';
- COMMENT ON COLUMN LAOS_ESIM.FAQ.ANSWER IS 'Cau tra loi (HTML)';
- COMMENT ON COLUMN LAOS_ESIM.FAQ.DISPLAY_ORDER IS 'Thu tu hien thi';
- COMMENT ON COLUMN LAOS_ESIM.FAQ.VIEW_COUNT IS 'So luot xem';
- COMMENT ON COLUMN LAOS_ESIM.FAQ.IS_FEATURED IS 'Noi bat trang chu: 0=Khong, 1=Co';
- COMMENT ON COLUMN LAOS_ESIM.FAQ.STATUS IS 'Trang thai: 0=An, 1=Hien';
- COMMENT ON COLUMN LAOS_ESIM.FAQ.LANGUAGE IS 'Ngon ngu: vi, en, lo';
- COMMENT ON COLUMN LAOS_ESIM.FAQ.CREATED_BY IS 'ID nguoi tao';
- COMMENT ON COLUMN LAOS_ESIM.FAQ.CREATED_DATE IS 'Ngay tao';
- COMMENT ON COLUMN LAOS_ESIM.FAQ.LAST_UPDATE IS 'Ngay cap nhat';
- CREATE SEQUENCE LAOS_ESIM.FAQ_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
- CREATE INDEX LAOS_ESIM.FAQ_CATEGORY_IDX ON LAOS_ESIM.FAQ(CATEGORY_ID);
- -- ============================================================================
- -- IX. CONTACT & CUSTOMER REVIEW TABLES
- -- ============================================================================
- -- CONTACT_FORM: Contact form submissions
- CREATE TABLE LAOS_ESIM.CONTACT_FORM (
- ID NUMBER(10) NOT NULL,
- FULL_NAME NVARCHAR2(200) NOT NULL,
- EMAIL VARCHAR2(200) NOT NULL,
- PHONE_NUMBER VARCHAR2(20),
- SUBJECT NVARCHAR2(500),
- MESSAGE CLOB NOT NULL,
- STATUS NUMBER(2) DEFAULT 0,
- ASSIGNED_TO NUMBER(10),
- ADMIN_NOTES NVARCHAR2(2000),
- REPLIED_AT DATE,
- IP_ADDRESS VARCHAR2(50),
- CREATED_DATE DATE DEFAULT SYSDATE,
- CONSTRAINT CONTACT_FORM_PK PRIMARY KEY (ID)
- );
- COMMENT ON TABLE LAOS_ESIM.CONTACT_FORM IS 'Bang luu form lien he tu khach hang';
- COMMENT ON COLUMN LAOS_ESIM.CONTACT_FORM.ID IS 'ID tu dong tang';
- COMMENT ON COLUMN LAOS_ESIM.CONTACT_FORM.FULL_NAME IS 'Ho ten khach hang';
- COMMENT ON COLUMN LAOS_ESIM.CONTACT_FORM.EMAIL IS 'Email lien he';
- COMMENT ON COLUMN LAOS_ESIM.CONTACT_FORM.PHONE_NUMBER IS 'So dien thoai';
- COMMENT ON COLUMN LAOS_ESIM.CONTACT_FORM.SUBJECT IS 'Chu de lien he';
- COMMENT ON COLUMN LAOS_ESIM.CONTACT_FORM.MESSAGE IS 'Noi dung tin nhan';
- COMMENT ON COLUMN LAOS_ESIM.CONTACT_FORM.STATUS IS 'Trang thai: 0=Moi, 1=Dang xu ly, 2=Da tra loi, 3=Dong';
- COMMENT ON COLUMN LAOS_ESIM.CONTACT_FORM.ASSIGNED_TO IS 'ID nhan vien xu ly';
- COMMENT ON COLUMN LAOS_ESIM.CONTACT_FORM.ADMIN_NOTES IS 'Ghi chu cua admin';
- COMMENT ON COLUMN LAOS_ESIM.CONTACT_FORM.REPLIED_AT IS 'Thoi gian tra loi';
- COMMENT ON COLUMN LAOS_ESIM.CONTACT_FORM.IP_ADDRESS IS 'Dia chi IP gui form';
- COMMENT ON COLUMN LAOS_ESIM.CONTACT_FORM.CREATED_DATE IS 'Ngay gui';
- CREATE SEQUENCE LAOS_ESIM.CONTACT_FORM_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
- -- CUSTOMER_REVIEW: Customer testimonials (Khach hang noi ve chung toi)
- CREATE TABLE LAOS_ESIM.CUSTOMER_REVIEW (
- ID NUMBER(10) NOT NULL,
- CUSTOMER_NAME NVARCHAR2(200) NOT NULL,
- AVATAR_URL VARCHAR2(500),
- RATING NUMBER(1) DEFAULT 5,
- REVIEW_CONTENT NVARCHAR2(2000) NOT NULL,
- DESTINATION NVARCHAR2(200),
- DISPLAY_ORDER NUMBER(5) DEFAULT 1,
- IS_FEATURED NUMBER(1) DEFAULT 0,
- STATUS NUMBER(1) DEFAULT 0,
- CREATED_DATE DATE DEFAULT SYSDATE,
- APPROVED_DATE DATE,
- APPROVED_BY NUMBER(10),
- CONSTRAINT CUSTOMER_REVIEW_PK PRIMARY KEY (ID)
- );
- COMMENT ON TABLE LAOS_ESIM.CUSTOMER_REVIEW IS 'Bang danh gia cua khach hang (Testimonials)';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_REVIEW.ID IS 'ID tu dong tang';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_REVIEW.CUSTOMER_NAME IS 'Ten khach hang';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_REVIEW.AVATAR_URL IS 'Anh dai dien khach hang';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_REVIEW.RATING IS 'Diem danh gia 1-5 sao';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_REVIEW.REVIEW_CONTENT IS 'Noi dung danh gia';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_REVIEW.DESTINATION IS 'Diem den du lich (VD: Thai Lan, Han Quoc)';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_REVIEW.DISPLAY_ORDER IS 'Thu tu hien thi';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_REVIEW.IS_FEATURED IS 'Hien thi trang chu: 0=Khong, 1=Co';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_REVIEW.STATUS IS 'Trang thai: 0=Cho duyet, 1=Da duyet, 2=Tu choi';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_REVIEW.CREATED_DATE IS 'Ngay tao';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_REVIEW.APPROVED_DATE IS 'Ngay duyet';
- COMMENT ON COLUMN LAOS_ESIM.CUSTOMER_REVIEW.APPROVED_BY IS 'ID nguoi duyet';
- CREATE SEQUENCE LAOS_ESIM.CUSTOMER_REVIEW_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
- -- ============================================================================
- -- X. ADMIN USER TABLE
- -- ============================================================================
- CREATE TABLE LAOS_ESIM.ADMIN_USER (
- ID NUMBER(10) NOT NULL,
- USERNAME VARCHAR2(100) NOT NULL,
- PASSWORD_HASH VARCHAR2(500) NOT NULL,
- EMAIL VARCHAR2(200) NOT NULL,
- FULL_NAME NVARCHAR2(200),
- AVATAR_URL VARCHAR2(500),
- ROLE VARCHAR2(50) DEFAULT 'EDITOR',
- STATUS NUMBER(1) DEFAULT 1,
- LAST_LOGIN_DATE DATE,
- CREATED_DATE DATE DEFAULT SYSDATE,
- LAST_UPDATE DATE,
- CONSTRAINT ADMIN_USER_PK PRIMARY KEY (ID)
- );
- COMMENT ON TABLE LAOS_ESIM.ADMIN_USER IS 'Bang quan ly user admin/CMS';
- COMMENT ON COLUMN LAOS_ESIM.ADMIN_USER.ID IS 'ID tu dong tang';
- COMMENT ON COLUMN LAOS_ESIM.ADMIN_USER.USERNAME IS 'Ten dang nhap';
- COMMENT ON COLUMN LAOS_ESIM.ADMIN_USER.PASSWORD_HASH IS 'Mat khau ma hoa';
- COMMENT ON COLUMN LAOS_ESIM.ADMIN_USER.EMAIL IS 'Email admin';
- COMMENT ON COLUMN LAOS_ESIM.ADMIN_USER.FULL_NAME IS 'Ho va ten';
- COMMENT ON COLUMN LAOS_ESIM.ADMIN_USER.AVATAR_URL IS 'Anh dai dien';
- COMMENT ON COLUMN LAOS_ESIM.ADMIN_USER.ROLE IS 'Vai tro: SUPER_ADMIN, ADMIN, EDITOR, VIEWER';
- COMMENT ON COLUMN LAOS_ESIM.ADMIN_USER.STATUS IS 'Trang thai: 0=Khoa, 1=Hoat dong';
- COMMENT ON COLUMN LAOS_ESIM.ADMIN_USER.LAST_LOGIN_DATE IS 'Thoi gian dang nhap gan nhat';
- COMMENT ON COLUMN LAOS_ESIM.ADMIN_USER.CREATED_DATE IS 'Ngay tao';
- COMMENT ON COLUMN LAOS_ESIM.ADMIN_USER.LAST_UPDATE IS 'Ngay cap nhat';
- CREATE SEQUENCE LAOS_ESIM.ADMIN_USER_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
- CREATE UNIQUE INDEX LAOS_ESIM.ADMIN_USER_USERNAME_UQ ON LAOS_ESIM.ADMIN_USER(USERNAME);
- CREATE UNIQUE INDEX LAOS_ESIM.ADMIN_USER_EMAIL_UQ ON LAOS_ESIM.ADMIN_USER(EMAIL);
- -- ============================================================================
- -- XI. SYSTEM CONFIGURATION TABLE
- -- ============================================================================
- CREATE TABLE LAOS_ESIM.SYSTEM_CONFIG (
- ID NUMBER(10) NOT NULL,
- CONFIG_KEY VARCHAR2(100) NOT NULL,
- CONFIG_VALUE NVARCHAR2(2000),
- CONFIG_TYPE VARCHAR2(50) DEFAULT 'STRING',
- DESCRIPTION NVARCHAR2(500),
- IS_EDITABLE NUMBER(1) DEFAULT 1,
- CREATED_DATE DATE DEFAULT SYSDATE,
- LAST_UPDATE DATE,
- CONSTRAINT SYSTEM_CONFIG_PK PRIMARY KEY (ID)
- );
- COMMENT ON TABLE LAOS_ESIM.SYSTEM_CONFIG IS 'Bang cau hinh he thong';
- COMMENT ON COLUMN LAOS_ESIM.SYSTEM_CONFIG.ID IS 'ID tu dong tang';
- COMMENT ON COLUMN LAOS_ESIM.SYSTEM_CONFIG.CONFIG_KEY IS 'Khoa cau hinh (VD: SITE_NAME, HOTLINE)';
- COMMENT ON COLUMN LAOS_ESIM.SYSTEM_CONFIG.CONFIG_VALUE IS 'Gia tri cau hinh';
- COMMENT ON COLUMN LAOS_ESIM.SYSTEM_CONFIG.CONFIG_TYPE IS 'Loai du lieu: STRING, NUMBER, BOOLEAN, JSON';
- COMMENT ON COLUMN LAOS_ESIM.SYSTEM_CONFIG.DESCRIPTION IS 'Mo ta cau hinh';
- COMMENT ON COLUMN LAOS_ESIM.SYSTEM_CONFIG.IS_EDITABLE IS 'Cho phep sua: 0=Khong, 1=Co';
- COMMENT ON COLUMN LAOS_ESIM.SYSTEM_CONFIG.CREATED_DATE IS 'Ngay tao';
- COMMENT ON COLUMN LAOS_ESIM.SYSTEM_CONFIG.LAST_UPDATE IS 'Ngay cap nhat';
- CREATE SEQUENCE LAOS_ESIM.SYSTEM_CONFIG_SEQ START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
- CREATE UNIQUE INDEX LAOS_ESIM.SYSTEM_CONFIG_KEY_UQ ON LAOS_ESIM.SYSTEM_CONFIG(CONFIG_KEY);
- -- ============================================================================
- -- XII. INSERT DEFAULT DATA
- -- ============================================================================
- -- Insert default FAQ categories (based on infigate.vn support-center)
- INSERT INTO LAOS_ESIM.FAQ_CATEGORY (ID, CATEGORY_NAME, CATEGORY_SLUG, DESCRIPTION, DISPLAY_ORDER, STATUS, LANGUAGE)
- VALUES (LAOS_ESIM.FAQ_CATEGORY_SEQ.NEXTVAL, N'Giới thiệu cơ bản', 'gioi-thieu-co-ban', N'Các thông tin cơ bản về eSIM', 1, 1, 'vi');
- INSERT INTO LAOS_ESIM.FAQ_CATEGORY (ID, CATEGORY_NAME, CATEGORY_SLUG, DESCRIPTION, DISPLAY_ORDER, STATUS, LANGUAGE)
- VALUES (LAOS_ESIM.FAQ_CATEGORY_SEQ.NEXTVAL, N'Cài đặt & kích hoạt eSIM', 'cai-dat-kich-hoat-esim', N'Hướng dẫn cài đặt và kích hoạt eSIM trên thiết bị', 2, 1, 'vi');
- INSERT INTO LAOS_ESIM.FAQ_CATEGORY (ID, CATEGORY_NAME, CATEGORY_SLUG, DESCRIPTION, DISPLAY_ORDER, STATUS, LANGUAGE)
- VALUES (LAOS_ESIM.FAQ_CATEGORY_SEQ.NEXTVAL, N'Cách sử dụng eSIM', 'cach-su-dung-esim', N'Hướng dẫn sử dụng eSIM hiệu quả', 3, 1, 'vi');
- INSERT INTO LAOS_ESIM.FAQ_CATEGORY (ID, CATEGORY_NAME, CATEGORY_SLUG, DESCRIPTION, DISPLAY_ORDER, STATUS, LANGUAGE)
- VALUES (LAOS_ESIM.FAQ_CATEGORY_SEQ.NEXTVAL, N'Các sự cố phổ biến', 'cac-su-co-pho-bien', N'Xử lý các sự cố thường gặp khi sử dụng eSIM', 4, 1, 'vi');
- -- Insert default system config
- INSERT INTO LAOS_ESIM.SYSTEM_CONFIG (ID, CONFIG_KEY, CONFIG_VALUE, CONFIG_TYPE, DESCRIPTION, IS_EDITABLE)
- VALUES (LAOS_ESIM.SYSTEM_CONFIG_SEQ.NEXTVAL, 'SITE_NAME', 'EsimLao', 'STRING', N'Tên website', 1);
- INSERT INTO LAOS_ESIM.SYSTEM_CONFIG (ID, CONFIG_KEY, CONFIG_VALUE, CONFIG_TYPE, DESCRIPTION, IS_EDITABLE)
- VALUES (LAOS_ESIM.SYSTEM_CONFIG_SEQ.NEXTVAL, 'HOTLINE', '1900 9272', 'STRING', N'Số hotline hỗ trợ', 1);
- INSERT INTO LAOS_ESIM.SYSTEM_CONFIG (ID, CONFIG_KEY, CONFIG_VALUE, CONFIG_TYPE, DESCRIPTION, IS_EDITABLE)
- VALUES (LAOS_ESIM.SYSTEM_CONFIG_SEQ.NEXTVAL, 'SUPPORT_EMAIL', 'support@esimlao.com', 'STRING', N'Email hỗ trợ', 1);
- INSERT INTO LAOS_ESIM.SYSTEM_CONFIG (ID, CONFIG_KEY, CONFIG_VALUE, CONFIG_TYPE, DESCRIPTION, IS_EDITABLE)
- VALUES (LAOS_ESIM.SYSTEM_CONFIG_SEQ.NEXTVAL, 'COMPANY_ADDRESS', N'Vientiane, Lao PDR', 'STRING', N'Địa chỉ công ty', 1);
- INSERT INTO LAOS_ESIM.SYSTEM_CONFIG (ID, CONFIG_KEY, CONFIG_VALUE, CONFIG_TYPE, DESCRIPTION, IS_EDITABLE)
- VALUES (LAOS_ESIM.SYSTEM_CONFIG_SEQ.NEXTVAL, 'OTP_EXPIRE_MINUTES', '5', 'NUMBER', N'Thời gian hết hạn OTP (phút)', 1);
- INSERT INTO LAOS_ESIM.SYSTEM_CONFIG (ID, CONFIG_KEY, CONFIG_VALUE, CONFIG_TYPE, DESCRIPTION, IS_EDITABLE)
- VALUES (LAOS_ESIM.SYSTEM_CONFIG_SEQ.NEXTVAL, 'TOKEN_EXPIRE_HOURS', '24', 'NUMBER', N'Thời gian hết hạn access token (giờ)', 1);
- INSERT INTO LAOS_ESIM.SYSTEM_CONFIG (ID, CONFIG_KEY, CONFIG_VALUE, CONFIG_TYPE, DESCRIPTION, IS_EDITABLE)
- VALUES (LAOS_ESIM.SYSTEM_CONFIG_SEQ.NEXTVAL, 'REFRESH_TOKEN_EXPIRE_DAYS', '30', 'NUMBER', N'Thời gian hết hạn refresh token (ngày)', 1);
- -- Insert default CMS content pages
- INSERT INTO LAOS_ESIM.CMS_CONTENT (ID, PAGE_CODE, PAGE_TITLE, PAGE_SLUG, META_DESCRIPTION, PAGE_TYPE, STATUS, LANGUAGE, CONTENT)
- VALUES (LAOS_ESIM.CMS_CONTENT_SEQ.NEXTVAL, 'ABOUT_US', N'Về chúng tôi', 'about-us', N'Thông tin về EsimLao', 'STATIC', 1, 'vi', NULL);
- INSERT INTO LAOS_ESIM.CMS_CONTENT (ID, PAGE_CODE, PAGE_TITLE, PAGE_SLUG, META_DESCRIPTION, PAGE_TYPE, STATUS, LANGUAGE, CONTENT)
- VALUES (LAOS_ESIM.CMS_CONTENT_SEQ.NEXTVAL, 'TERMS_OF_SERVICE', N'Điều khoản dịch vụ', 'terms-and-services', N'Điều khoản sử dụng dịch vụ', 'POLICY', 1, 'vi', NULL);
- INSERT INTO LAOS_ESIM.CMS_CONTENT (ID, PAGE_CODE, PAGE_TITLE, PAGE_SLUG, META_DESCRIPTION, PAGE_TYPE, STATUS, LANGUAGE, CONTENT)
- VALUES (LAOS_ESIM.CMS_CONTENT_SEQ.NEXTVAL, 'PRIVACY_POLICY', N'Chính sách bảo mật', 'privacy-policy', N'Chính sách bảo mật thông tin', 'POLICY', 1, 'vi', NULL);
- INSERT INTO LAOS_ESIM.CMS_CONTENT (ID, PAGE_CODE, PAGE_TITLE, PAGE_SLUG, META_DESCRIPTION, PAGE_TYPE, STATUS, LANGUAGE, CONTENT)
- VALUES (LAOS_ESIM.CMS_CONTENT_SEQ.NEXTVAL, 'PAYMENT_POLICY', N'Chính sách thanh toán', 'payment-policy', N'Chính sách thanh toán', 'POLICY', 1, 'vi', NULL);
- INSERT INTO LAOS_ESIM.CMS_CONTENT (ID, PAGE_CODE, PAGE_TITLE, PAGE_SLUG, META_DESCRIPTION, PAGE_TYPE, STATUS, LANGUAGE, CONTENT)
- VALUES (LAOS_ESIM.CMS_CONTENT_SEQ.NEXTVAL, 'DELIVERY_POLICY', N'Chính sách giao hàng', 'delivery-policy', N'Chính sách giao hàng', 'POLICY', 1, 'vi', NULL);
- INSERT INTO LAOS_ESIM.CMS_CONTENT (ID, PAGE_CODE, PAGE_TITLE, PAGE_SLUG, META_DESCRIPTION, PAGE_TYPE, STATUS, LANGUAGE, CONTENT)
- VALUES (LAOS_ESIM.CMS_CONTENT_SEQ.NEXTVAL, 'REFUND_POLICY', N'Chính sách đổi trả và hoàn tiền', 'refund-policy', N'Chính sách đổi trả và hoàn tiền', 'POLICY', 1, 'vi', NULL);
- -- Insert default admin user (password: Admin@123 - should be hashed in production)
- INSERT INTO LAOS_ESIM.ADMIN_USER (ID, USERNAME, PASSWORD_HASH, EMAIL, FULL_NAME, ROLE, STATUS)
- VALUES (LAOS_ESIM.ADMIN_USER_SEQ.NEXTVAL, 'admin', 'CHANGE_THIS_TO_HASHED_PASSWORD', 'admin@esimlao.com', 'Administrator', 'SUPER_ADMIN', 1);
- COMMIT;
- -- ============================================================================
- -- END OF SCRIPT
- -- ============================================================================
|