-- ============================================================
-- LMS 샘플 데이터 (모든 주요 테이블)
-- 모든 사용자/관리자 페이지 확인용
-- 2026-03-23
-- ============================================================


-- ============================================================
-- 1. 사이트 설정 (이미 있으면 업데이트)
-- ============================================================
UPDATE lms_site SET
  site_name = '스마트 온라인 평생교육원',
  site_url = 'http://lms.test',
  agency_code = 'AGT20260001',
  agency_name = '스마트교육기관'
WHERE site_id = 1;

-- ============================================================
-- 2. 관리자 계정 (비밀번호: admin1234)
-- ============================================================
INSERT INTO lms_admin (admin_id, login_id, login_pw, admin_name, admin_type, email, mobile, dept, status, del_yn, last_login_at, last_login_ip) VALUES
(1, 'superadmin', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '최고관리자', 1, 'admin@lms.test', '01012340001', '경영지원팀', 1, 'N', '2026-03-23 09:00:00', '127.0.0.1'),
(2, 'manager01', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '김운영', 2, 'manager@lms.test', '01012340002', '교육운영팀', 1, 'N', '2026-03-22 14:30:00', '127.0.0.1'),
(3, 'tutor_admin', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '박강사관리', 3, 'tutor_admin@lms.test', '01012340003', '콘텐츠팀', 1, 'N', NULL, '')
ON DUPLICATE KEY UPDATE admin_name = VALUES(admin_name);

-- ============================================================
-- 3. 강사(튜터) 3명
-- ============================================================
INSERT INTO lms_tutor (tutor_id, login_id, login_pw, tutor_name, tutor_type, email, mobile, intro, expertise, contract_type, status, del_yn) VALUES
(1, 'tutor_lee', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '이정호', 1, 'lee@lms.test', '01055510001', '15년 경력의 산업안전 전문 강사입니다. 현장 경험을 바탕으로 실질적인 안전교육을 진행합니다.', '산업안전보건', 1, 1, 'N'),
(2, 'tutor_park', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '박수진', 2, 'park@lms.test', '01055520002', '데이터 분석 및 AI 분야 전문 튜터로 활동하고 있습니다.', '데이터분석/AI', 2, 1, 'N'),
(3, 'tutor_choi', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '최민규', 1, 'choi@lms.test', '01055530003', '개인정보보호 및 정보보안 분야 10년차 강사입니다.', '개인정보보호/정보보안', 1, 1, 'N')
ON DUPLICATE KEY UPDATE tutor_name = VALUES(tutor_name);

-- 강사 경력
INSERT INTO lms_tutor_career (tutor_id, career_type, institution, content, start_date, end_date, sort_order) VALUES
(1, 1, '서울대학교', '안전공학과 석사', '2005-03', '2007-02', 1),
(1, 2, '한국산업안전공단', '안전교육팀 선임연구원', '2007-03', '2020-12', 2),
(1, 3, '한국산업안전보건공단', '산업안전기사', '2006-11', '', 3),
(2, 1, 'KAIST', '전산학과 박사', '2010-03', '2015-08', 1),
(2, 2, 'SK텔레콤', 'AI센터 데이터사이언티스트', '2015-09', '2023-06', 2),
(3, 2, '개인정보보호위원회', '개인정보 보호담당관', '2014-01', '2022-12', 1);

-- ============================================================
-- 4. 기업(사업주) 3개
-- ============================================================
INSERT INTO lms_company (company_id, company_pw, company_name, ceo_name, biz_no, biz_type, biz_item, tel, email, manager_name, manager_tel, manager_email, hrd_company_no, emp_scale, status, del_yn) VALUES
('COMP001', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '(주)스마트테크', '김대표', '123-45-67890', '제조업', '전자부품', '02-1234-5678', 'smart@company.com', '이담당', '010-9999-0001', 'manager1@company.com', '1234567890123', 250, 1, 'N'),
('COMP002', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '(주)미래교육', '박대표', '234-56-78901', '서비스업', '교육', '02-2345-6789', 'future@company.com', '최교육', '010-9999-0002', 'manager2@company.com', '2345678901234', 80, 1, 'N'),
('COMP003', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '(주)그린에너지', '이대표', '345-67-89012', '제조업', '신재생에너지', '02-3456-7890', 'green@company.com', '김에너지', '010-9999-0003', 'manager3@company.com', '3456789012345', 500, 1, 'N')
ON DUPLICATE KEY UPDATE company_name = VALUES(company_name);

-- ============================================================
-- 5. 카테고리 (과정 분류)
-- ============================================================
INSERT INTO lms_category (category_id, parent_id, category_name, category_icon, sort_order, use_yn) VALUES
(1, 0, '산업안전보건교육', '🔧', 1, 'Y'),
(2, 0, 'IT/디지털', '💻', 2, 'Y'),
(3, 0, '법정필수교육', '📋', 3, 'Y'),
(4, 0, '직무역량강화', '📈', 4, 'Y'),
(5, 1, '관리감독자교육', '', 1, 'Y'),
(6, 1, '근로자정기교육', '', 2, 'Y'),
(7, 2, '데이터분석', '', 1, 'Y'),
(8, 2, '인공지능(AI)', '', 2, 'Y'),
(9, 3, '개인정보보호교육', '', 1, 'Y'),
(10, 3, '직장내 성희롱예방교육', '', 2, 'Y')
ON DUPLICATE KEY UPDATE category_name = VALUES(category_name);

-- ============================================================
-- 6. 과정 (Course) 6개
-- ============================================================
INSERT INTO lms_course (course_id, category_id, course_title, course_summary, course_desc, learning_goal, target_learner, total_time, content_count, type_normal, type_company, type_legal, legal_type, price_normal, price_sale, pass_min_score, pass_min_progress, exam_retry_cnt, exam_question_cnt, exam_time_limit, main_tutor_id, display_yn, status) VALUES
(1, 5, '관리감독자를 위한 산업안전보건교육', '사업장 관리감독자가 알아야 할 산업안전보건법의 핵심 내용을 학습합니다.', '<h3>과정 소개</h3><p>본 과정은 산업안전보건법에 따라 관리감독자가 이수해야 하는 법정교육 과정입니다. 현장에서 발생할 수 있는 안전사고 유형과 예방법, 안전보건관리체계 구축 방안 등을 체계적으로 학습합니다.</p><h3>커리큘럼 특징</h3><p>현장 사례 중심의 교육으로 실질적인 안전관리 역량을 기릅니다.</p>', '산업안전보건법의 주요 내용을 이해하고 현장에 적용할 수 있다.', '사업장 관리감독자, 안전보건관리담당자', 960, 16, 'N', 'Y', 'Y', 'safety', 0, 0, 60, 80, 2, 20, 60, 1, 'Y', 1),
(2, 7, '실무자를 위한 데이터 분석 입문', 'Python과 Pandas를 활용하여 실무 데이터를 분석하는 방법을 배웁니다.', '<h3>과정 소개</h3><p>엑셀로는 한계가 있는 대용량 데이터 처리, Python Pandas를 이용한 데이터 전처리, 시각화까지 한번에 마스터하는 과정입니다.</p>', 'Python Pandas를 활용하여 실무 데이터를 분석하고 시각화할 수 있다.', 'IT 실무자, 데이터 분석 입문자', 1200, 20, 'Y', 'N', 'N', '', 150000, 99000, 60, 80, 2, 15, 40, 2, 'Y', 1),
(3, 9, '개인정보보호법 실무교육', '개인정보보호법의 핵심 내용과 실무 적용 방법을 학습합니다.', '<h3>과정 소개</h3><p>개인정보 수집·이용·제공·파기 등 전 과정에 걸쳐 실무자가 알아야 할 법적 의무사항과 위반 시 처벌 내용을 체계적으로 학습합니다.</p>', '개인정보보호법을 이해하고 실무에 적용할 수 있다.', '개인정보 취급자, 정보보안 담당자', 480, 8, 'Y', 'Y', 'Y', 'privacy', 50000, 39000, 60, 80, 2, 10, 30, 3, 'Y', 1),
(4, 10, '직장 내 성희롱 예방교육', '직장 내 성희롱의 개념, 유형, 예방 및 대처 방법을 학습합니다.', '<h3>과정 소개</h3><p>남녀고용평등법에 따른 법정필수교육으로, 직장 내 성희롱의 정의와 판단기준, 피해 발생 시 대처 방법 등을 학습합니다.</p>', '직장 내 성희롱을 예방하고 적절하게 대처할 수 있다.', '전 임직원', 60, 4, 'Y', 'Y', 'Y', 'sexual', 0, 0, 60, 100, 1, 5, 20, 1, 'Y', 1),
(5, 8, 'ChatGPT & AI 활용 업무 자동화', '생성형 AI를 활용하여 업무 생산성을 극대화하는 방법을 배웁니다.', '<h3>과정 소개</h3><p>ChatGPT, Claude 등 생성형 AI 도구의 실무 활용법을 배우고, 프롬프트 엔지니어링 기법으로 업무 효율을 높이는 방법을 학습합니다.</p>', 'AI 도구를 활용하여 업무를 자동화하고 생산성을 높일 수 있다.', '전 직장인, AI 활용에 관심 있는 분', 720, 12, 'Y', 'N', 'N', '', 120000, 79000, 60, 80, 2, 15, 40, 2, 'Y', 1),
(6, 4, '리더십과 조직관리 실전', '효과적인 리더십 스타일과 조직관리 핵심 역량을 기릅니다.', '<h3>과정 소개</h3><p>변화의 시대, 팀을 이끄는 리더에게 필요한 코칭, 소통, 갈등관리, 성과관리 등의 핵심 역량을 사례 중심으로 학습합니다.</p>', '효과적인 리더십을 발휘하고 조직을 관리할 수 있다.', '팀장·중간관리자·승진대상자', 600, 10, 'Y', 'Y', 'N', '', 100000, 69000, 70, 80, 2, 10, 30, 1, 'Y', 1)
ON DUPLICATE KEY UPDATE course_title = VALUES(course_title);

-- ============================================================
-- 7. 차수(기수) - 과정별 2개씩
-- ============================================================
INSERT INTO lms_class (class_id, course_id, class_year, class_seq, emp_ins_flag, class_type, reg_start_date, reg_end_date, learn_start_date, learn_end_date, capacity, enroll_count, tutor_id, price, status, display_yn, del_yn) VALUES
(1,  1, 2026, 1, 1, 'C', '2026-01-01', '2026-03-31', '2026-01-15', '2026-04-15', 100, 35, 1, 0,     'R', 'Y', 'N'),
(2,  1, 2026, 2, 1, 'C', '2026-04-01', '2026-06-30', '2026-04-15', '2026-07-15', 100, 12, 1, 0,     'W', 'Y', 'N'),
(3,  2, 2026, 1, 0, 'N', '2026-01-01', '2026-12-31', '2026-02-01', '2026-05-01', 200, 58, 2, 99000, 'R', 'Y', 'N'),
(4,  2, 2026, 2, 0, 'N', '2026-03-01', '2026-12-31', '2026-04-01', '2026-07-01', 200,  5, 2, 99000, 'W', 'Y', 'N'),
(5,  3, 2026, 1, 0, 'N', '2026-01-01', '2026-12-31', '2026-01-15', '2026-04-15', 500, 120, 3, 39000, 'R', 'Y', 'N'),
(6,  4, 2026, 1, 0, 'L', '2026-01-01', '2026-12-31', '2026-01-01', '2026-12-31', 0,   280, 1, 0,     'R', 'Y', 'N'),
(7,  5, 2026, 1, 0, 'N', '2026-02-01', '2026-12-31', '2026-03-01', '2026-06-01', 150, 42,  2, 79000, 'R', 'Y', 'N'),
(8,  6, 2026, 1, 1, 'C', '2026-01-01', '2026-06-30', '2026-02-01', '2026-05-01', 80,  30,  1, 69000, 'R', 'Y', 'N')
ON DUPLICATE KEY UPDATE class_seq = VALUES(class_seq);

-- ============================================================
-- 8. 회원(학습자) 5명 (비밀번호: test1234 -> bcrypt)
-- ============================================================
INSERT INTO lms_member (member_id, user_id, user_pw, user_name, birth_date, gender, mobile, mobile_display, email, company_id, dept_name, position, sms_agree, email_agree, status, withdraw_yn, last_login_at, last_login_ip) VALUES
(1, 'student01', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '홍길동', '19900115', 'M', '01011110001', '010-1111-0001', 'hong@test.com', 'COMP001', '생산부', '대리', 'Y', 'Y', 1, 'N', '2026-03-23 08:30:00', '127.0.0.1'),
(2, 'student02', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '김영희', '19921203', 'F', '01022220002', '010-2222-0002', 'kim@test.com', 'COMP001', 'IT팀', '사원', 'Y', 'N', 1, 'N', '2026-03-22 17:00:00', '127.0.0.1'),
(3, 'student03', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '박철수', '19850620', 'M', '01033330003', '010-3333-0003', 'park@test.com', 'COMP002', '기획팀', '과장', 'N', 'Y', 1, 'N', '2026-03-21 11:00:00', '127.0.0.1'),
(4, 'student04', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '이수연', '19950308', 'F', '01044440004', '010-4444-0004', 'lee_sy@test.com', '', '', '', 'Y', 'Y', 1, 'N', '2026-03-20 09:15:00', '127.0.0.1'),
(5, 'student05', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', '정민수', '19880714', 'M', '01055550005', '010-5555-0005', 'jung@test.com', 'COMP003', '안전관리팀', '팀장', 'Y', 'Y', 1, 'N', '2026-03-23 07:45:00', '127.0.0.1')
ON DUPLICATE KEY UPDATE user_name = VALUES(user_name);

-- ============================================================
-- 9. 콘텐츠(차시) - 과정 1번에 16차시, 2번에 5차시 샘플
-- ============================================================
INSERT INTO lms_content (content_id, course_id, content_order, content_title, content_type, content_time, del_yn) VALUES
-- 과정1: 관리감독자 산업안전보건교육 (16차시)
(1,  1, 1,  '산업안전보건법 개요', 'video', 3600, 'N'),
(2,  1, 2,  '관리감독자의 역할과 책임', 'video', 3600, 'N'),
(3,  1, 3,  '산업안전보건관리체계', 'video', 3600, 'N'),
(4,  1, 4,  '위험성 평가의 이해', 'video', 3600, 'N'),
(5,  1, 5,  '작업장 안전관리 실무', 'video', 3600, 'N'),
(6,  1, 6,  '화학물질 안전관리', 'video', 3600, 'N'),
(7,  1, 7,  '전기안전 및 화재예방', 'video', 3600, 'N'),
(8,  1, 8,  '기계·기구 안전관리', 'video', 3600, 'N'),
(9,  1, 9,  '건설현장 안전관리', 'video', 3600, 'N'),
(10, 1, 10, '밀폐공간 안전작업', 'video', 3600, 'N'),
(11, 1, 11, '보호구 착용 및 관리', 'video', 3600, 'N'),
(12, 1, 12, '산업재해 조사 및 보고', 'video', 3600, 'N'),
(13, 1, 13, '근골격계 질환 예방', 'video', 3600, 'N'),
(14, 1, 14, '직업병 예방 및 건강관리', 'video', 3600, 'N'),
(15, 1, 15, '비상시 조치 및 응급처치', 'video', 3600, 'N'),
(16, 1, 16, '안전문화 정착 전략', 'video', 3600, 'N'),
-- 과정2: 데이터 분석 입문 (20차시 중 5개 샘플)
(17, 2, 1,  'Python 개발환경 설치', 'video', 3600, 'N'),
(18, 2, 2,  'Python 기초 문법', 'video', 3600, 'N'),
(19, 2, 3,  'Pandas 데이터프레임 다루기', 'video', 3600, 'N'),
(20, 2, 4,  '데이터 전처리 기법', 'video', 3600, 'N'),
(21, 2, 5,  'Matplotlib 시각화 기초', 'video', 3600, 'N'),
-- 과정3: 개인정보보호 (8차시 중 4개)
(22, 3, 1, '개인정보보호법 주요 내용', 'video', 3600, 'N'),
(23, 3, 2, '개인정보 수집·이용·제공', 'video', 3600, 'N'),
(24, 3, 3, '개인정보 안전성 확보조치', 'video', 3600, 'N'),
(25, 3, 4, '개인정보 유출 대응', 'video', 3600, 'N'),
-- 과정4: 성희롱예방 (4차시)
(26, 4, 1, '직장 내 성희롱의 개념', 'video', 900, 'N'),
(27, 4, 2, '성희롱 유형과 판단기준', 'video', 900, 'N'),
(28, 4, 3, '성희롱 예방과 대처법', 'video', 900, 'N'),
(29, 4, 4, '성희롱 사건 처리 절차', 'video', 900, 'N'),
-- 과정5: AI활용 (샘플 3차시)
(30, 5, 1, 'ChatGPT 시작하기', 'video', 3600, 'N'),
(31, 5, 2, '프롬프트 엔지니어링 기법', 'video', 3600, 'N'),
(32, 5, 3, 'AI 업무 자동화 실습', 'video', 3600, 'N')
ON DUPLICATE KEY UPDATE content_title = VALUES(content_title);

-- ============================================================
-- 10. 수강신청(Enrollment) - 회원별 다양한 과정
-- ============================================================
INSERT INTO lms_enrollment (enroll_id, class_id, course_id, member_id, company_id, emp_ins_flag, payment_id, order_price, pay_status, enroll_status, enroll_date, progress_rate, score_exam, final_score, pass_yn, pass_date, del_yn) VALUES
-- 홍길동: 과정1(수료), 과정3(수강중), 과정4(수료)
(1,  1, 1, 1, 'COMP001', 1, 0, 0,     'F', 'D', '2026-01-16', 100.00, 85.00, 85.00, 'Y', '2026-03-10', 'N'),
(2,  5, 3, 1, '',         0, 1, 39000, 'Y', 'A', '2026-01-20', 62.50,  0.00,  0.00,  'N', NULL, 'N'),
(3,  6, 4, 1, '',         0, 0, 0,     'F', 'D', '2026-01-05', 100.00, 80.00, 80.00, 'Y', '2026-01-20', 'N'),
-- 김영희: 과정2(수강중), 과정4(수료)
(4,  3, 2, 2, '',         0, 2, 99000, 'Y', 'A', '2026-02-05', 45.00,  0.00,  0.00,  'N', NULL, 'N'),
(5,  6, 4, 2, '',         0, 0, 0,     'F', 'D', '2026-01-10', 100.00, 90.00, 90.00, 'Y', '2026-01-25', 'N'),
-- 박철수: 과정1(수강중), 과정5(수강중), 과정6(수강중)
(6,  1, 1, 3, 'COMP002', 1, 0, 0,     'F', 'A', '2026-01-20', 75.00,  0.00,  0.00,  'N', NULL, 'N'),
(7,  7, 5, 3, '',         0, 3, 79000, 'Y', 'A', '2026-03-05', 25.00,  0.00,  0.00,  'N', NULL, 'N'),
(8,  8, 6, 3, 'COMP002', 1, 4, 69000, 'Y', 'A', '2026-02-10', 50.00,  0.00,  0.00,  'N', NULL, 'N'),
-- 이수연: 과정2(수강중), 과정5(수료)
(9,  3, 2, 4, '',         0, 5, 99000, 'Y', 'A', '2026-02-10', 80.00,  0.00,  0.00,  'N', NULL, 'N'),
(10, 7, 5, 4, '',         0, 6, 79000, 'Y', 'D', '2026-03-05', 100.00, 92.00, 92.00, 'Y', '2026-03-20', 'N'),
-- 정민수: 과정1(수료), 과정3(수강중), 과정6(수강중)
(11, 1, 1, 5, 'COMP003', 1, 0, 0,     'F', 'D', '2026-01-16', 100.00, 78.00, 78.00, 'Y', '2026-03-15', 'N'),
(12, 5, 3, 5, '',         0, 7, 39000, 'Y', 'A', '2026-02-01', 50.00,  0.00,  0.00,  'N', NULL, 'N'),
(13, 8, 6, 5, 'COMP003', 1, 8, 69000, 'Y', 'A', '2026-02-15', 30.00,  0.00,  0.00,  'N', NULL, 'N')
ON DUPLICATE KEY UPDATE enroll_status = VALUES(enroll_status);

-- ============================================================
-- 11. 차시별 학습진도 (content_progress) - 회원1의 과정1 전체수료
-- ============================================================
INSERT INTO lms_content_progress (enroll_id, class_id, member_id, content_id, study_time, complete_yn, complete_date, start_at, updated_at) VALUES
(1, 1, 1, 1,  3700, 'Y', '2026-01-20 14:00:00', '2026-01-20 10:00:00', '2026-01-20 14:00:00'),
(1, 1, 1, 2,  3650, 'Y', '2026-01-22 16:00:00', '2026-01-22 12:00:00', '2026-01-22 16:00:00'),
(1, 1, 1, 3,  3800, 'Y', '2026-01-24 15:30:00', '2026-01-24 11:00:00', '2026-01-24 15:30:00'),
(1, 1, 1, 4,  3600, 'Y', '2026-01-27 14:00:00', '2026-01-27 10:00:00', '2026-01-27 14:00:00'),
(1, 1, 1, 5,  3700, 'Y', '2026-01-29 16:30:00', '2026-01-29 12:30:00', '2026-01-29 16:30:00'),
(1, 1, 1, 6,  3650, 'Y', '2026-02-03 14:00:00', '2026-02-03 10:00:00', '2026-02-03 14:00:00'),
(1, 1, 1, 7,  3800, 'Y', '2026-02-05 15:00:00', '2026-02-05 11:00:00', '2026-02-05 15:00:00'),
(1, 1, 1, 8,  3600, 'Y', '2026-02-07 13:30:00', '2026-02-07 09:30:00', '2026-02-07 13:30:00'),
(1, 1, 1, 9,  3700, 'Y', '2026-02-10 14:00:00', '2026-02-10 10:00:00', '2026-02-10 14:00:00'),
(1, 1, 1, 10, 3650, 'Y', '2026-02-12 16:00:00', '2026-02-12 12:00:00', '2026-02-12 16:00:00'),
(1, 1, 1, 11, 3800, 'Y', '2026-02-17 15:30:00', '2026-02-17 11:30:00', '2026-02-17 15:30:00'),
(1, 1, 1, 12, 3600, 'Y', '2026-02-19 14:00:00', '2026-02-19 10:00:00', '2026-02-19 14:00:00'),
(1, 1, 1, 13, 3700, 'Y', '2026-02-24 16:00:00', '2026-02-24 12:00:00', '2026-02-24 16:00:00'),
(1, 1, 1, 14, 3650, 'Y', '2026-02-26 15:00:00', '2026-02-26 11:00:00', '2026-02-26 15:00:00'),
(1, 1, 1, 15, 3800, 'Y', '2026-03-03 14:30:00', '2026-03-03 10:30:00', '2026-03-03 14:30:00'),
(1, 1, 1, 16, 3600, 'Y', '2026-03-05 16:00:00', '2026-03-05 12:00:00', '2026-03-05 16:00:00'),
-- 회원1: 과정3 (5/8 차시 진행)
(2, 5, 1, 22, 3700, 'Y', '2026-01-25 14:00:00', '2026-01-25 10:00:00', '2026-01-25 14:00:00'),
(2, 5, 1, 23, 3600, 'Y', '2026-01-28 15:00:00', '2026-01-28 11:00:00', '2026-01-28 15:00:00'),
(2, 5, 1, 24, 3650, 'Y', '2026-02-01 14:30:00', '2026-02-01 10:30:00', '2026-02-01 14:30:00'),
(2, 5, 1, 25, 3700, 'Y', '2026-02-05 16:00:00', '2026-02-05 12:00:00', '2026-02-05 16:00:00'),
-- 회원2: 과정2 (2/5차시)
(4, 3, 2, 17, 3700, 'Y', '2026-02-10 14:00:00', '2026-02-10 10:00:00', '2026-02-10 14:00:00'),
(4, 3, 2, 18, 2400, 'N', NULL, '2026-02-15 14:00:00', '2026-02-15 16:00:00')
ON DUPLICATE KEY UPDATE study_time = VALUES(study_time);

-- ============================================================
-- 12. 학습 로그 (learning_log) - report.php 차트용 데이터
-- ============================================================
INSERT INTO lms_learning_log (enroll_id, member_id, content_id, log_type, ip_addr, created_at) VALUES
-- 회원1: 1~3월 다양한 날짜
(1, 1, 1,  'ACCESS', '127.0.0.1', '2026-01-20 10:00:00'),
(1, 1, 1,  'COMPLETE', '127.0.0.1', '2026-01-20 14:00:00'),
(1, 1, 2,  'ACCESS', '127.0.0.1', '2026-01-22 12:00:00'),
(1, 1, 2,  'COMPLETE', '127.0.0.1', '2026-01-22 16:00:00'),
(1, 1, 3,  'ACCESS', '127.0.0.1', '2026-01-24 11:00:00'),
(1, 1, 4,  'ACCESS', '127.0.0.1', '2026-01-27 10:00:00'),
(1, 1, 5,  'ACCESS', '127.0.0.1', '2026-01-29 12:30:00'),
(1, 1, 6,  'ACCESS', '127.0.0.1', '2026-02-03 10:00:00'),
(1, 1, 7,  'ACCESS', '127.0.0.1', '2026-02-05 11:00:00'),
(1, 1, 8,  'ACCESS', '127.0.0.1', '2026-02-07 09:30:00'),
(1, 1, 9,  'ACCESS', '127.0.0.1', '2026-02-10 10:00:00'),
(1, 1, 10, 'ACCESS', '127.0.0.1', '2026-02-12 12:00:00'),
(1, 1, 11, 'ACCESS', '127.0.0.1', '2026-02-17 11:30:00'),
(1, 1, 12, 'ACCESS', '127.0.0.1', '2026-02-19 10:00:00'),
(1, 1, 13, 'ACCESS', '127.0.0.1', '2026-02-24 12:00:00'),
(1, 1, 14, 'ACCESS', '127.0.0.1', '2026-02-26 11:00:00'),
(1, 1, 15, 'ACCESS', '127.0.0.1', '2026-03-03 10:30:00'),
(1, 1, 16, 'ACCESS', '127.0.0.1', '2026-03-05 12:00:00'),
(2, 1, 22, 'ACCESS', '127.0.0.1', '2026-03-10 09:00:00'),
(2, 1, 23, 'ACCESS', '127.0.0.1', '2026-03-12 10:00:00'),
(2, 1, 24, 'ACCESS', '127.0.0.1', '2026-03-15 14:00:00'),
(2, 1, 25, 'ACCESS', '127.0.0.1', '2026-03-18 11:00:00'),
-- 오늘/어제 학습 (스트릭 표시용)
(2, 1, 25, 'ACCESS', '127.0.0.1', '2026-03-22 09:00:00'),
(2, 1, 25, 'ACCESS', '127.0.0.1', '2026-03-23 08:00:00'),
-- 회원2 학습 로그
(4, 2, 17, 'ACCESS', '127.0.0.1', '2026-02-10 10:00:00'),
(4, 2, 18, 'ACCESS', '127.0.0.1', '2026-02-15 14:00:00'),
(5, 2, 26, 'ACCESS', '127.0.0.1', '2026-01-12 10:00:00'),
(5, 2, 27, 'ACCESS', '127.0.0.1', '2026-01-14 10:00:00'),
(5, 2, 28, 'ACCESS', '127.0.0.1', '2026-01-16 10:00:00'),
(5, 2, 29, 'COMPLETE', '127.0.0.1', '2026-01-18 10:00:00');

-- ============================================================
-- 13. 시험 문제(question) & 시험지(paper) & 결과(result)
-- ============================================================
-- 과정1 시험 문제 (10문항)
INSERT INTO lms_exam_question (question_id, course_id, question_type, question_level, question_text, choice1, choice2, choice3, choice4, answer, explanation, use_yn) VALUES
(1, 1, 1, 1, '산업안전보건법에서 정하는 관리감독자의 업무가 아닌 것은?', '기계·기구의 안전점검', '작업장 정리정돈 및 통로 확보', '근로자 채용 및 인사관리', '안전보건교육 실시 확인', '3', '관리감독자의 업무에 인사관리는 포함되지 않습니다.', 'Y'),
(2, 1, 1, 2, '위험성 평가의 5단계 절차 중 첫 번째 단계는?', '위험성 추정', '유해·위험요인 파악', '위험성 결정', '기록 및 보존', '2', '위험성 평가는 유해위험요인 파악부터 시작합니다.', 'Y'),
(3, 1, 1, 1, '안전보건표지의 색상 중 "경고"를 의미하는 색상은?', '빨간색', '노란색', '파란색', '초록색', '2', '노란색은 경고를 의미합니다.', 'Y'),
(4, 1, 1, 2, '밀폐공간 작업 시 산소농도 기준은?', '15% 이상', '16% 이상', '18% 이상', '21% 이상', '3', '밀폐공간 작업 시 산소농도는 18% 이상이어야 합니다.', 'Y'),
(5, 1, 3, 1, '산업재해가 발생하면 즉시 작업을 중지시켜야 한다.', '', '', '', '', 'O', '중대재해 발생 시 즉시 작업을 중지해야 합니다.', 'Y'),
(6, 1, 1, 1, '다음 중 개인보호구에 해당하지 않는 것은?', '안전모', '안전화', '환기장치', '보안경', '3', '환기장치는 개인보호구가 아닌 공학적 대책입니다.', 'Y'),
(7, 1, 1, 2, 'MSDS란 무엇의 약자인가?', 'Material Safety Data Sheet', 'Management Safety Design System', 'Mechanical Safety Detection Standard', 'Method of Safety Data Sharing', '1', 'MSDS는 Material Safety Data Sheet(물질안전보건자료)의 약자입니다.', 'Y'),
(8, 1, 1, 1, '산업재해 보고 기한은?', '즉시', '24시간 이내', '3일 이내', '7일 이내', '1', '중대재해 발생 시 즉시 보고해야 합니다.', 'Y'),
(9, 1, 2, 2, '산업안전보건법에서 정하는 근로자 안전보건교육 시간을 작성하시오. (정기교육, 분기당)', '', '', '', '', '6', '사무직 근로자 기준 분기당 6시간입니다.', 'Y'),
(10, 1, 3, 1, '안전관리자는 사업장의 모든 기계·기구에 대해 자체검사를 실시해야 한다.', '', '', '', '', 'O', '안전관리자는 기계기구 자체검사를 실시해야 합니다.', 'Y')
ON DUPLICATE KEY UPDATE question_text = VALUES(question_text);

-- 시험지
INSERT INTO lms_exam_paper (paper_id, class_id, paper_type, paper_name, question_ids, question_cnt, time_limit, pass_score, use_yn) VALUES
(1, 1, 'FINAL', '관리감독자 안전교육 최종시험', '1,2,3,4,5,6,7,8,9,10', 10, 60, 60, 'Y'),
(2, 3, 'FINAL', '데이터 분석 입문 최종시험', '1,2,3,4,5', 5, 40, 60, 'Y'),
(3, 6, 'FINAL', '성희롱 예방교육 최종시험', '1,2,3,4,5', 5, 20, 60, 'Y')
ON DUPLICATE KEY UPDATE paper_name = VALUES(paper_name);

-- 시험 결과
INSERT INTO lms_exam_result (result_id, enroll_id, member_id, class_id, paper_id, exam_type, attempt_no, score, total_count, correct_count, pass_yn, start_at, submit_at) VALUES
(1, 1, 1, 1, 1, 'FINAL', 1, 85.00, 10, 8, 'Y', '2026-03-08 10:00:00', '2026-03-08 10:45:00'),
(2, 3, 1, 6, 3, 'FINAL', 1, 80.00, 5,  4, 'Y', '2026-01-18 14:00:00', '2026-01-18 14:15:00'),
(3, 5, 2, 6, 3, 'FINAL', 1, 90.00, 5,  4, 'Y', '2026-01-22 10:00:00', '2026-01-22 10:12:00'),
(4, 11,5, 1, 1, 'FINAL', 1, 78.00, 10, 8, 'Y', '2026-03-12 09:00:00', '2026-03-12 09:50:00')
ON DUPLICATE KEY UPDATE score = VALUES(score);

-- ============================================================
-- 14. 수료증
-- ============================================================
INSERT INTO lms_certificate (cert_id, enroll_id, class_id, course_id, member_id, cert_type, cert_no, cert_name, course_name, total_time, pass_date, issue_date, created_at) VALUES
(1, 1,  1, 1, 1, 'COMPANY', 'LMSCO-2026-00001', '홍길동', '관리감독자를 위한 산업안전보건교육', 960, '2026-03-10', '2026-03-10', '2026-03-10 10:00:00'),
(2, 3,  6, 4, 1, 'PERSONAL', 'LMSCO-2026-00002', '홍길동', '직장 내 성희롱 예방교육', 60, '2026-01-20', '2026-01-20', '2026-01-20 10:00:00'),
(3, 5,  6, 4, 2, 'PERSONAL', 'LMSCO-2026-00003', '김영희', '직장 내 성희롱 예방교육', 60, '2026-01-25', '2026-01-25', '2026-01-25 10:00:00'),
(4, 11, 1, 1, 5, 'COMPANY', 'LMSCO-2026-00004', '정민수', '관리감독자를 위한 산업안전보건교육', 960, '2026-03-15', '2026-03-15', '2026-03-15 10:00:00'),
(5, 10, 7, 5, 4, 'PERSONAL', 'LMSCO-2026-00005', '이수연', 'ChatGPT & AI 활용 업무 자동화', 720, '2026-03-20', '2026-03-20', '2026-03-20 10:00:00')
ON DUPLICATE KEY UPDATE cert_name = VALUES(cert_name);

-- ============================================================
-- 15. 결제 내역
-- ============================================================
INSERT INTO lms_payment (payment_id, member_id, order_no, order_name, total_price, discount_price, pay_price, pay_method, pay_status, pay_date, created_at) VALUES
(1, 1, 'ORD202601200001', '개인정보보호법 실무교육', 39000, 0, 39000, 'card', 'Y', '2026-01-20 10:05:00', '2026-01-20 10:00:00'),
(2, 2, 'ORD202602050001', '실무자를 위한 데이터 분석 입문', 99000, 0, 99000, 'card', 'Y', '2026-02-05 09:30:00', '2026-02-05 09:25:00'),
(3, 3, 'ORD202603050001', 'ChatGPT & AI 활용 업무 자동화', 79000, 0, 79000, 'card', 'Y', '2026-03-05 14:15:00', '2026-03-05 14:10:00'),
(4, 3, 'ORD202602100001', '리더십과 조직관리 실전', 69000, 0, 69000, 'vbank', 'Y', '2026-02-10 11:00:00', '2026-02-10 10:50:00'),
(5, 4, 'ORD202602100002', '실무자를 위한 데이터 분석 입문', 99000, 10000, 89000, 'card', 'Y', '2026-02-10 15:30:00', '2026-02-10 15:25:00'),
(6, 4, 'ORD202603050002', 'ChatGPT & AI 활용 업무 자동화', 79000, 0, 79000, 'card', 'Y', '2026-03-05 10:00:00', '2026-03-05 09:55:00'),
(7, 5, 'ORD202602010001', '개인정보보호법 실무교육', 39000, 0, 39000, 'card', 'Y', '2026-02-01 08:00:00', '2026-02-01 07:55:00'),
(8, 5, 'ORD202602150001', '리더십과 조직관리 실전', 69000, 5000, 64000, 'card', 'Y', '2026-02-15 13:00:00', '2026-02-15 12:55:00')
ON DUPLICATE KEY UPDATE order_name = VALUES(order_name);

-- ============================================================
-- 16. 게시판 데이터 (공지사항, FAQ, QnA)
-- ============================================================
-- 공지사항 (board_id = 1 -> notice)
INSERT INTO lms_board_post (post_id, board_id, writer_type, writer_id, writer_name, post_title, post_content, notice_yn, view_count, del_yn, created_at) VALUES
(1,  1, 'A', 1, '관리자', '2026년 상반기 교육과정 안내', '<p>2026년 상반기 교육과정이 오픈되었습니다. 산업안전보건교육, 개인정보보호교육 등 다양한 과정을 수강하실 수 있습니다.</p><p>수강 기간: 2026.01.15 ~ 2026.04.15</p><p>많은 관심 부탁드립니다.</p>', 'Y', 156, 'N', '2026-01-05 09:00:00'),
(2,  1, 'A', 1, '관리자', '시스템 정기점검 안내 (3/25)', '<p>아래와 같이 시스템 정기점검을 실시합니다.</p><p>일시: 2026.03.25(수) 02:00~06:00</p><p>영향: 학습 및 시험 응시 불가</p><p>불편을 끼쳐드려 죄송합니다.</p>', 'Y', 89, 'N', '2026-03-20 10:00:00'),
(3,  1, 'A', 2, '김운영', '수료증 발급 방법 안내', '<p>수료증은 마이페이지 > 수료증 발급 메뉴에서 출력하실 수 있습니다.</p><p>PDF 다운로드 및 인쇄가 모두 가능합니다.</p>', 'N', 234, 'N', '2026-01-10 14:00:00'),
(4,  1, 'A', 2, '김운영', '모바일 학습 이용 안내', '<p>스마트폰에서도 편리하게 학습하실 수 있습니다.</p><p>지원 브라우저: Chrome, Safari</p><p>모바일 학습 시에도 진도율이 정상 반영됩니다.</p>', 'N', 178, 'N', '2026-01-15 11:00:00'),
(5,  1, 'A', 1, '관리자', '2026년 법정필수교육 이수 안내', '<p>2026년도 법정필수교육 이수 기한이 다가오고 있습니다.</p><p>아직 이수하지 않으신 분들은 조속히 이수하시기 바랍니다.</p><ul><li>직장 내 성희롱 예방교육</li><li>개인정보보호교육</li><li>산업안전보건교육</li></ul>', 'N', 312, 'N', '2026-02-01 09:00:00'),
(6,  1, 'A', 2, '김운영', '학습 장애 발생 시 대처방법', '<p>학습 중 오류가 발생하면 아래 방법을 시도해주세요.</p><p>1. 브라우저 캐시 삭제<br>2. 다른 브라우저로 접속<br>3. 그래도 안 되면 1:1 문의 남겨주세요.</p>', 'N', 95, 'N', '2026-02-10 16:00:00'),
(7,  1, 'A', 1, '관리자', '신규 과정 오픈: ChatGPT & AI 활용 업무 자동화', '<p>생성형 AI를 활용한 업무 자동화 과정이 새롭게 오픈되었습니다!</p><p>프롬프트 엔지니어링, 문서 작성 자동화 등 실무에 바로 적용 가능한 내용입니다.</p>', 'N', 445, 'N', '2026-03-01 09:00:00')
ON DUPLICATE KEY UPDATE post_title = VALUES(post_title);

-- FAQ (board_id = 2 -> faq)
INSERT INTO lms_board_post (post_id, board_id, writer_type, writer_id, writer_name, post_title, post_content, view_count, del_yn, created_at) VALUES
(8,  2, 'A', 1, '관리자', '수강신청은 어떻게 하나요?', '과정 목록에서 원하는 과정을 선택한 후 "수강신청" 버튼을 클릭하시면 됩니다. 유료 과정의 경우 결제 완료 후 수강이 가능합니다.', 120, 'N', '2026-01-01 09:00:00'),
(9,  2, 'A', 1, '관리자', '수강 기간이 지나면 어떻게 되나요?', '수강 기간 종료 후에는 학습이 불가능합니다. 수료 요건(진도율 80% 이상 등)을 충족하지 못한 경우 미수료 처리됩니다.', 98, 'N', '2026-01-01 09:01:00'),
(10, 2, 'A', 1, '관리자', '수료증은 어디서 출력하나요?', '마이페이지 > 수료증 발급 메뉴에서 출력 또는 PDF 다운로드가 가능합니다. 수료 처리가 완료된 과정만 발급 가능합니다.', 205, 'N', '2026-01-01 09:02:00'),
(11, 2, 'A', 1, '관리자', '환불은 어떻게 신청하나요?', '마이페이지 > 결제내역에서 환불 신청이 가능합니다. 학습 시작 전에는 전액 환불, 학습 시작 후에는 이용약관에 따라 부분환불됩니다.', 87, 'N', '2026-01-01 09:03:00'),
(12, 2, 'A', 1, '관리자', '비밀번호를 잊어버렸어요.', '로그인 페이지 하단의 "비밀번호 찾기"를 이용해주세요. 등록된 아이디와 이메일을 입력하시면 비밀번호를 재설정하실 수 있습니다.', 156, 'N', '2026-01-01 09:04:00'),
(13, 2, 'A', 1, '관리자', '모바일에서도 학습이 가능한가요?', '네, Chrome이나 Safari 등 모바일 브라우저에서 학습이 가능합니다. 별도 앱 설치 없이 웹으로 접속하시면 됩니다.', 134, 'N', '2026-01-01 09:05:00')
ON DUPLICATE KEY UPDATE post_title = VALUES(post_title);

-- QnA (board_id = 3 -> qna)
INSERT INTO lms_board_post (post_id, board_id, parent_id, writer_type, writer_id, writer_name, post_title, post_content, secret_yn, reply_yn, reply_at, view_count, del_yn, created_at) VALUES
(14, 3, 0, 'M', 1, '홍길동', '학습 중 동영상이 재생되지 않습니다', '<p>관리감독자 안전교육 5차시에서 동영상이 멈추고 재생되지 않습니다. Chrome 브라우저 사용 중이며 캐시 삭제도 해봤습니다.</p>', 'Y', 'Y', '2026-02-02 10:00:00', 3, 'N', '2026-02-01 15:30:00'),
(15, 3, 14, 'A', 2, '김운영', 'Re: 학습 중 동영상이 재생되지 않습니다', '<p>안녕하세요, 홍길동님. 해당 차시의 동영상 서버 오류를 확인하여 조치 완료했습니다. 다시 시도해 주시기 바랍니다. 감사합니다.</p>', 'Y', 'N', NULL, 2, 'N', '2026-02-02 10:00:00'),
(16, 3, 0, 'M', 4, '이수연', '수료증 PDF 다운로드 오류', '<p>AI 활용 과정 수료 후 수료증 PDF 다운로드가 안 됩니다. 인쇄는 되는데 다운로드 버튼이 동작하지 않습니다.</p>', 'N', 'Y', '2026-03-22 14:00:00', 5, 'N', '2026-03-21 11:00:00'),
(17, 3, 16, 'A', 2, '김운영', 'Re: 수료증 PDF 다운로드 오류', '<p>안녕하세요, 이수연님. 확인 결과 TCPDF 라이브러리 문제였으며 수정 조치하였습니다. 현재 정상 다운로드 가능합니다. 이용에 불편을 드려 죄송합니다.</p>', 'N', 'N', NULL, 4, 'N', '2026-03-22 14:00:00'),
(18, 3, 0, 'M', 3, '박철수', '사업주훈련 수강 시 비용 처리 문의', '<p>저희 회사에서 단체로 수강신청을 하려고 합니다. 사업주훈련으로 진행 시 비용 청구서를 어떻게 받을 수 있는지 궁금합니다.</p>', 'N', 'N', NULL, 8, 'N', '2026-03-22 16:00:00')
ON DUPLICATE KEY UPDATE post_title = VALUES(post_title);

-- ============================================================
-- 17. 쿠폰
-- ============================================================
INSERT INTO lms_coupon (coupon_id, coupon_code, coupon_name, discount_type, discount_value, min_price, max_discount, start_date, end_date, total_count, used_count, per_member_limit, status) VALUES
(1, 'WELCOME2026', '신규가입 환영 쿠폰', 'P', 10, 50000, 15000, '2026-01-01', '2026-12-31', 1000, 45, 1, 'Y'),
(2, 'SPRING30', '봄맞이 30% 할인', 'P', 30, 70000, 30000, '2026-03-01', '2026-04-30', 500, 12, 1, 'Y'),
(3, 'SAVE5000', '5천원 즉시할인', 'A', 5000, 30000, 0, '2026-01-01', '2026-06-30', 0, 87, 3, 'Y')
ON DUPLICATE KEY UPDATE coupon_name = VALUES(coupon_name);

-- ============================================================
-- 18. 배너 & 팝업
-- ============================================================
INSERT INTO lms_banner (banner_id, banner_zone, banner_title, banner_image, banner_link, alt_text, start_date, end_date, display_yn, sort_order) VALUES
(1, 'MAIN', 'AI 활용 업무 자동화 과정 오픈', '/assets/images/banner_ai.jpg', '/user/course/detail.php?course_id=5', 'ChatGPT & AI 활용 업무 자동화 수강 안내', '2026-03-01', '2026-06-30', 'Y', 1),
(2, 'MAIN', '2026 법정필수교육 이수하세요', '/assets/images/banner_legal.jpg', '/user/index.php?category=3', '2026년 법정필수교육 이수 안내', '2026-01-01', '2026-12-31', 'Y', 2),
(3, 'MAIN', '데이터 분석 입문 할인 이벤트', '/assets/images/banner_data.jpg', '/user/course/detail.php?course_id=2', '데이터 분석 입문 34% 할인', '2026-02-01', '2026-04-30', 'Y', 3)
ON DUPLICATE KEY UPDATE banner_title = VALUES(banner_title);

INSERT INTO lms_popup (popup_id, popup_title, popup_content, popup_link, start_date, end_date, display_yn, width, height, pos_top, pos_left, sort_order) VALUES
(1, '시스템 점검 안내', '<div style="padding:20px;text-align:center;"><h3>시스템 정기점검</h3><p>2026.03.25(수) 02:00~06:00</p><p>학습 및 시험 불가</p></div>', '', '2026-03-20', '2026-03-26', 'Y', 450, 300, 100, 100, 1)
ON DUPLICATE KEY UPDATE popup_title = VALUES(popup_title);

-- ============================================================
-- 19. 설문 (survey)
-- ============================================================
INSERT INTO lms_survey (survey_id, class_id, survey_title, survey_desc, start_date, end_date, use_yn, is_required) VALUES
(1, 1, '관리감독자 안전교육 만족도 설문', '본 과정에 대한 만족도 조사입니다. 솔직하게 응답해 주세요.', '2026-03-01', '2026-04-30', 'Y', 'Y')
ON DUPLICATE KEY UPDATE survey_title = VALUES(survey_title);

INSERT INTO lms_survey_question (sq_id, survey_id, sq_order, sq_type, sq_text, sq_required) VALUES
(1, 1, 1, 'RATING', '교육 내용의 전반적인 만족도는?', 'Y'),
(2, 1, 2, 'RATING', '강사의 강의력은 만족스러웠나요?', 'Y'),
(3, 1, 3, 'TEXT', '향후 수강하고 싶은 교육이 있다면 자유롭게 작성해 주세요.', 'N')
ON DUPLICATE KEY UPDATE sq_text = VALUES(sq_text);

-- ============================================================
-- 20. 알림 템플릿
-- ============================================================
INSERT INTO lms_notification_tpl (tpl_id, send_type, tpl_name, email_subject, email_content, use_yn) VALUES
(1, 'EMAIL', '수강신청 완료', '수강신청 완료 안내', '<p>안녕하세요, {user_name}님!</p><p>{course_title} 과정의 수강신청이 완료되었습니다.</p><p>학습기간: {learn_start} ~ {learn_end}</p>', 'Y'),
(2, 'SMS', '수강신청 완료', '', '[스마트교육원] {user_name}님, {course_title} 수강신청 완료. 학습기간: {learn_start}~{learn_end}', 'Y'),
(3, 'EMAIL', '수료 축하', '수료를 축하드립니다!', '<p>{user_name}님, {course_title} 과정을 수료하셨습니다!</p><p>수료증은 마이페이지에서 발급받으실 수 있습니다.</p>', 'Y')
ON DUPLICATE KEY UPDATE tpl_name = VALUES(tpl_name);


-- END OF SAMPLE DATA
