-- ============================================================
-- LMS 과정(lms_course) 테이블 확장 DDL
-- 타사 LMS 대비 부족 필드 보강 (Phase 1 + Phase 2)
-- Date    : 2026-03-23
-- Engine  : MySQL 8.x | InnoDB | utf8mb4_unicode_ci
-- 주의    : 기존 컬럼은 변경하지 않음 (ADD COLUMN만 사용)
-- ============================================================

-- ──────────────────────────────────────────────
-- Phase 1: 운영 필수 항목
-- ──────────────────────────────────────────────

-- [기본정보 확장] 맛보기영상, 과정등급, NCS소분류명
ALTER TABLE lms_course ADD COLUMN `preview_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '맛보기 영상 URL' AFTER `thumb_image`;
ALTER TABLE lms_course ADD COLUMN `course_grade` CHAR(1) NOT NULL DEFAULT 'A' COMMENT '과정등급(A,B,C,D)' AFTER `ncs_code`;
ALTER TABLE lms_course ADD COLUMN `ncs_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT 'NCS 소분류명' AFTER `ncs_code`;

-- [내용전문가(SME)]
ALTER TABLE lms_course ADD COLUMN `sme_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '내용전문가 이름' AFTER `main_tutor_id`;
ALTER TABLE lms_course ADD COLUMN `sme_info` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '내용전문가 정보(약력)' AFTER `sme_name`;

-- [학습구성 확장] 교육인정시간, 연간수강정원, 1일수강제한
ALTER TABLE lms_course ADD COLUMN `accredited_time` INT(10) NOT NULL DEFAULT 0 COMMENT '교육인정시간(분)' AFTER `total_time`;
ALTER TABLE lms_course ADD COLUMN `annual_capacity` INT(10) NOT NULL DEFAULT 0 COMMENT '연간 수강정원(0=무제한)' AFTER `period_value`;
ALTER TABLE lms_course ADD COLUMN `daily_limit` INT(3) NOT NULL DEFAULT 8 COMMENT '1일 수강 차시 제한(0=무제한)' AFTER `annual_capacity`;

-- [중간평가 설정]
ALTER TABLE lms_course ADD COLUMN `mid_question_cnt` INT(3) NOT NULL DEFAULT 0 COMMENT '중간평가 문항수' AFTER `exam_choice_cnt`;
ALTER TABLE lms_course ADD COLUMN `mid_time_limit` INT(5) NOT NULL DEFAULT 0 COMMENT '중간평가 제한시간(분)' AFTER `mid_question_cnt`;
ALTER TABLE lms_course ADD COLUMN `mid_retry_cnt` INT(3) NOT NULL DEFAULT 1 COMMENT '중간평가 재응시 횟수' AFTER `mid_time_limit`;

-- [수료기준 상세] 항목별 최저점수
ALTER TABLE lms_course ADD COLUMN `pass_min_mid` INT(3) NOT NULL DEFAULT 0 COMMENT '수료 최저 중간평가 점수' AFTER `pass_min_progress`;
ALTER TABLE lms_course ADD COLUMN `pass_min_exam` INT(3) NOT NULL DEFAULT 0 COMMENT '수료 최저 최종평가 점수' AFTER `pass_min_mid`;
ALTER TABLE lms_course ADD COLUMN `pass_min_task` INT(3) NOT NULL DEFAULT 0 COMMENT '수료 최저 과제 점수' AFTER `pass_min_exam`;

-- [교육비 상세설정]
ALTER TABLE lms_course ADD COLUMN `price_discount_rate` INT(3) NOT NULL DEFAULT 0 COMMENT '할인율(%)' AFTER `price_hrd`;
ALTER TABLE lms_course ADD COLUMN `price_tax_yn` CHAR(1) NOT NULL DEFAULT 'Y' COMMENT '과세여부(Y:과세,N:면세)' AFTER `price_discount_rate`;
ALTER TABLE lms_course ADD COLUMN `price_display_yn` CHAR(1) NOT NULL DEFAULT 'Y' COMMENT '교육비표시여부(Y:표시,N:대체메세지)' AFTER `price_tax_yn`;
ALTER TABLE lms_course ADD COLUMN `price_alt_msg` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '교육비 대체메세지' AFTER `price_display_yn`;

-- [사업주훈련 환급상세]
ALTER TABLE lms_course ADD COLUMN `price_refund_priority` INT(10) NOT NULL DEFAULT 0 COMMENT '우선지원대상 환급액' AFTER `price_alt_msg`;
ALTER TABLE lms_course ADD COLUMN `price_refund_mid` INT(10) NOT NULL DEFAULT 0 COMMENT '1000인미만 환급액' AFTER `price_refund_priority`;
ALTER TABLE lms_course ADD COLUMN `price_refund_large` INT(10) NOT NULL DEFAULT 0 COMMENT '1000인이상 환급액' AFTER `price_refund_mid`;

-- [내일배움카드 상세]
ALTER TABLE lms_course ADD COLUMN `price_card_edu` INT(10) NOT NULL DEFAULT 0 COMMENT '내일배움카드 교육비' AFTER `price_refund_large`;
ALTER TABLE lms_course ADD COLUMN `price_card_gov` INT(10) NOT NULL DEFAULT 0 COMMENT '내일배움카드 정부지원금' AFTER `price_card_edu`;
ALTER TABLE lms_course ADD COLUMN `price_card_self` INT(10) NOT NULL DEFAULT 0 COMMENT '내일배움카드 자비부담금' AFTER `price_card_gov`;


-- ──────────────────────────────────────────────
-- Phase 2: 기능 확장 항목
-- ──────────────────────────────────────────────

-- [기능 토글]
ALTER TABLE lms_course ADD COLUMN `use_debate` CHAR(1) NOT NULL DEFAULT 'N' COMMENT '토론방 사용(Y/N)' AFTER `post_course_yn`;
ALTER TABLE lms_course ADD COLUMN `use_survey` CHAR(1) NOT NULL DEFAULT 'N' COMMENT '설문 사용(Y/N)' AFTER `use_debate`;
ALTER TABLE lms_course ADD COLUMN `use_ai_helper` CHAR(1) NOT NULL DEFAULT 'N' COMMENT 'AI학습도우미(Y/N)' AFTER `use_survey`;

-- [CP사/공급업체]
ALTER TABLE lms_course ADD COLUMN `cp_company` VARCHAR(100) NOT NULL DEFAULT '' COMMENT 'CP사(콘텐츠공급업체)' AFTER `course_grade`;
ALTER TABLE lms_course ADD COLUMN `cp_fee` DECIMAL(5,2) NOT NULL DEFAULT 0.00 COMMENT 'CP 수수료율(%)' AFTER `cp_company`;

-- [문서/파일 업로드]
ALTER TABLE lms_course ADD COLUMN `file_material` VARCHAR(300) NOT NULL DEFAULT '' COMMENT '학습자료 파일경로' AFTER `preview_url`;
ALTER TABLE lms_course ADD COLUMN `file_desc_doc` VARCHAR(300) NOT NULL DEFAULT '' COMMENT '과정설명문서 파일경로' AFTER `file_material`;
ALTER TABLE lms_course ADD COLUMN `file_biz_cert` VARCHAR(300) NOT NULL DEFAULT '' COMMENT '사업자등록증 파일경로' AFTER `file_desc_doc`;
ALTER TABLE lms_course ADD COLUMN `file_tutor_cert` VARCHAR(300) NOT NULL DEFAULT '' COMMENT '교강사등록증 파일경로' AFTER `file_biz_cert`;

-- [환급 유효기간]
ALTER TABLE lms_course ADD COLUMN `refund_start` DATE NULL DEFAULT NULL COMMENT '환급유효기간 시작일' AFTER `price_card_self`;
ALTER TABLE lms_course ADD COLUMN `refund_end` DATE NULL DEFAULT NULL COMMENT '환급유효기간 종료일' AFTER `refund_start`;

-- ============================================================
-- 확인용: 변경 후 lms_course 컬럼 확인
-- ============================================================
-- SHOW COLUMNS FROM lms_course;
