Files
012-kaopeilian/知识库/backups/updates/sql/kaopeilian_complete_backup_20250923_025548.sql
111 998211c483 feat: 初始化考培练系统项目
- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
2026-01-24 19:33:28 +08:00

826 lines
54 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- MySQL dump 10.13 Distrib 8.0.43, for Linux (aarch64)
--
-- Host: localhost Database: kaopeilian
-- ------------------------------------------------------
-- Server version 8.0.43
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `course_exam_settings`
--
DROP TABLE IF EXISTS `course_exam_settings`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `course_exam_settings` (
`id` int NOT NULL AUTO_INCREMENT,
`course_id` int NOT NULL COMMENT '课程ID',
`single_choice_count` int NOT NULL DEFAULT '10' COMMENT '单选题数量',
`multiple_choice_count` int NOT NULL DEFAULT '5' COMMENT '多选题数量',
`true_false_count` int NOT NULL DEFAULT '5' COMMENT '判断题数量',
`fill_blank_count` int NOT NULL DEFAULT '0' COMMENT '填空题数量',
`duration_minutes` int NOT NULL DEFAULT '60' COMMENT '考试时长(分钟)',
`difficulty_level` int NOT NULL DEFAULT '3' COMMENT '难度系数(1-5)',
`passing_score` int NOT NULL DEFAULT '60' COMMENT '及格分数',
`is_enabled` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否启用',
`show_answer_immediately` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否立即显示答案',
`allow_retake` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否允许重考',
`max_retake_times` int DEFAULT NULL COMMENT '最大重考次数',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`created_by` int DEFAULT NULL COMMENT '创建人ID',
`updated_by` int DEFAULT NULL COMMENT '更新人ID',
`is_deleted` tinyint(1) NOT NULL DEFAULT '0',
`deleted_at` datetime DEFAULT NULL,
`deleted_by` int DEFAULT NULL COMMENT '删除人ID',
PRIMARY KEY (`id`),
UNIQUE KEY `course_id` (`course_id`),
KEY `ix_course_exam_settings_id` (`id`),
CONSTRAINT `course_exam_settings_ibfk_1` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='课程考试设置表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `course_exam_settings`
--
LOCK TABLES `course_exam_settings` WRITE;
/*!40000 ALTER TABLE `course_exam_settings` DISABLE KEYS */;
INSERT INTO `course_exam_settings` (`id`, `course_id`, `single_choice_count`, `multiple_choice_count`, `true_false_count`, `fill_blank_count`, `duration_minutes`, `difficulty_level`, `passing_score`, `is_enabled`, `show_answer_immediately`, `allow_retake`, `max_retake_times`, `created_at`, `updated_at`, `created_by`, `updated_by`, `is_deleted`, `deleted_at`, `deleted_by`) VALUES (1,1,5,3,2,0,60,2,80,1,1,1,3,'2025-09-23 02:41:33','2025-09-23 02:41:33',1,1,0,NULL,NULL),(2,2,4,2,2,2,45,1,75,1,1,1,3,'2025-09-23 02:41:33','2025-09-23 02:41:33',1,1,0,NULL,NULL),(3,3,3,2,3,2,50,2,80,1,0,1,2,'2025-09-23 02:41:33','2025-09-23 02:41:33',1,1,0,NULL,NULL),(4,4,4,3,2,1,55,2,85,1,1,1,3,'2025-09-23 02:41:33','2025-09-23 02:41:33',1,1,0,NULL,NULL),(5,5,5,2,2,1,40,1,70,1,1,1,5,'2025-09-23 02:41:33','2025-09-23 02:41:33',1,1,0,NULL,NULL),(6,6,3,2,3,2,45,1,75,1,1,1,3,'2025-09-23 02:41:33','2025-09-23 02:41:33',1,1,0,NULL,NULL),(7,7,4,2,2,2,50,2,80,1,0,1,2,'2025-09-23 02:41:33','2025-09-23 02:41:33',1,1,0,NULL,NULL),(8,8,5,3,2,0,60,3,85,1,1,1,2,'2025-09-23 02:41:33','2025-09-23 02:41:33',1,1,0,NULL,NULL),(9,9,4,2,4,0,50,2,80,1,1,1,3,'2025-09-23 02:41:33','2025-09-23 02:41:33',1,1,0,NULL,NULL),(10,10,3,2,3,2,45,1,75,1,1,1,3,'2025-09-23 02:41:33','2025-09-23 02:41:33',1,1,0,NULL,NULL),(11,11,5,3,2,0,60,3,90,1,0,1,2,'2025-09-23 02:41:33','2025-09-23 02:41:33',1,1,0,NULL,NULL),(12,12,4,2,4,0,40,1,70,1,1,1,5,'2025-09-23 02:41:33','2025-09-23 02:41:33',1,1,0,NULL,NULL);
/*!40000 ALTER TABLE `course_exam_settings` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `course_materials`
--
DROP TABLE IF EXISTS `course_materials`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `course_materials` (
`id` int NOT NULL AUTO_INCREMENT,
`course_id` int NOT NULL COMMENT '所属课程ID',
`name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '资料名称',
`description` text COLLATE utf8mb4_unicode_ci COMMENT '资料描述',
`file_url` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件URL',
`file_type` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件类型',
`file_size` int NOT NULL COMMENT '文件大小(字节)',
`sort_order` int DEFAULT '0' COMMENT '排序序号',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除',
`deleted_at` datetime DEFAULT NULL COMMENT '删除时间',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_course_id` (`course_id`),
KEY `idx_is_deleted` (`is_deleted`),
CONSTRAINT `course_materials_ibfk_1` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='课程资料表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `course_materials`
--
LOCK TABLES `course_materials` WRITE;
/*!40000 ALTER TABLE `course_materials` DISABLE KEYS */;
/*!40000 ALTER TABLE `course_materials` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `courses`
--
DROP TABLE IF EXISTS `courses`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `courses` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '课程名称',
`description` text COLLATE utf8mb4_unicode_ci COMMENT '课程描述',
`category` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '课程分类',
`status` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'draft' COMMENT '课程状态',
`cover_image` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '封面图片',
`duration_hours` decimal(5,2) DEFAULT NULL COMMENT '课程时长(小时)',
`difficulty_level` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '难度等级',
`tags` json DEFAULT NULL COMMENT '标签列表',
`published_at` datetime DEFAULT NULL COMMENT '发布时间',
`publisher_id` int DEFAULT NULL COMMENT '发布人ID',
`sort_order` int DEFAULT '0' COMMENT '排序',
`is_featured` tinyint(1) DEFAULT '0' COMMENT '是否推荐',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除',
`deleted_at` datetime DEFAULT NULL COMMENT '删除时间',
`created_by` int DEFAULT NULL COMMENT '创建人ID',
`updated_by` int DEFAULT NULL COMMENT '更新人ID',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_status` (`status`),
KEY `idx_category` (`category`),
KEY `idx_is_featured` (`is_featured`),
KEY `idx_is_deleted` (`is_deleted`),
KEY `idx_sort_order` (`sort_order`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='课程信息表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `courses`
--
LOCK TABLES `courses` WRITE;
/*!40000 ALTER TABLE `courses` DISABLE KEYS */;
INSERT INTO `courses` (`id`, `name`, `description`, `category`, `status`, `cover_image`, `duration_hours`, `difficulty_level`, `tags`, `published_at`, `publisher_id`, `sort_order`, `is_featured`, `is_deleted`, `deleted_at`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES (1,'皮肤生理学基础','学习皮肤结构、功能和常见问题,为专业护理打下坚实基础','technology','published',NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(2,'医美产品知识与应用','全面了解各类医美产品的成分、功效和适用人群,掌握产品推荐技巧','technology','published',NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(3,'美容仪器操作与维护','掌握各类美容仪器的操作方法、注意事项和日常维护保养','technology','published',NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(4,'医美项目介绍与咨询','详细了解各类医美项目的原理、效果和适应症,提升咨询专业度','business','published',NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(5,'轻医美销售技巧','学习专业的销售话术、客户需求分析和成交技巧,提升业绩能力','business','published',NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(6,'客户服务与投诉处理','提升服务意识,掌握客户投诉处理的方法和技巧,维护品牌形象','management','published',NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(7,'社媒营销与私域运营','学习如何通过社交媒体进行品牌推广和客户维护,建立私域流量','business','published',NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(8,'门店运营管理','学习门店日常管理、团队建设和业绩管理的方法和技巧','management','published',NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(9,'卫生消毒与感染控制','学习医美机构的卫生标准和消毒流程,确保服务安全合规','general','published',NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(10,'美容心理学','了解客户心理需求,掌握沟通技巧,提升服务满意度','general','published',NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(11,'法律法规与行业规范','学习医美行业相关法律法规,确保合规经营','general','published',NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(12,'新员工入职培训','新员工必修课程,包含企业文化、基础知识和操作规范','general','published',NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24');
/*!40000 ALTER TABLE `courses` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `exam_results`
--
DROP TABLE IF EXISTS `exam_results`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `exam_results` (
`id` int NOT NULL AUTO_INCREMENT,
`exam_id` int NOT NULL COMMENT '考试ID',
`question_id` int NOT NULL COMMENT '题目ID',
`user_answer` json DEFAULT NULL COMMENT '用户答案',
`is_correct` tinyint(1) NOT NULL COMMENT '是否正确',
`score` decimal(5,2) NOT NULL COMMENT '考试得分',
`answer_time` int DEFAULT NULL COMMENT '答题时长(秒)',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_exam_id` (`exam_id`),
KEY `idx_question_id` (`question_id`),
CONSTRAINT `exam_results_ibfk_1` FOREIGN KEY (`exam_id`) REFERENCES `exams` (`id`) ON DELETE CASCADE,
CONSTRAINT `exam_results_ibfk_2` FOREIGN KEY (`question_id`) REFERENCES `questions` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='考试结果表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `exam_results`
--
LOCK TABLES `exam_results` WRITE;
/*!40000 ALTER TABLE `exam_results` DISABLE KEYS */;
/*!40000 ALTER TABLE `exam_results` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `exams`
--
DROP TABLE IF EXISTS `exams`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `exams` (
`id` int NOT NULL AUTO_INCREMENT,
`user_id` int NOT NULL COMMENT '用户ID',
`course_id` int NOT NULL COMMENT '课程ID',
`exam_name` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '考试名称',
`question_count` int DEFAULT NULL COMMENT '题目数量',
`total_score` decimal(5,2) DEFAULT NULL COMMENT '总分',
`pass_score` decimal(5,2) DEFAULT NULL COMMENT '及格分',
`start_time` datetime DEFAULT NULL COMMENT '开始时间',
`end_time` datetime DEFAULT NULL COMMENT '结束时间',
`duration_minutes` int DEFAULT NULL COMMENT '考试时长(分钟)',
`score` decimal(5,2) DEFAULT NULL COMMENT '得分',
`is_passed` tinyint(1) DEFAULT '0' COMMENT '是否通过',
`status` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'pending' COMMENT '考试状态',
`questions` json DEFAULT NULL COMMENT '题目数据(JSON格式)',
`answers` json DEFAULT NULL COMMENT '答案数据(JSON格式)',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_course_id` (`course_id`),
KEY `idx_status` (`status`),
CONSTRAINT `exams_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
CONSTRAINT `exams_ibfk_2` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='考试记录表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `exams`
--
LOCK TABLES `exams` WRITE;
/*!40000 ALTER TABLE `exams` DISABLE KEYS */;
/*!40000 ALTER TABLE `exams` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `growth_paths`
--
DROP TABLE IF EXISTS `growth_paths`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `growth_paths` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '成长路径名称',
`description` text COLLATE utf8mb4_unicode_ci COMMENT '路径描述',
`target_role` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目标角色',
`courses` json DEFAULT NULL COMMENT '课程列表',
`estimated_duration_days` int DEFAULT NULL COMMENT '预计完成天数',
`is_active` tinyint(1) DEFAULT '1' COMMENT '是否启用',
`sort_order` int DEFAULT '0' COMMENT '排序顺序',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除',
`deleted_at` datetime DEFAULT NULL COMMENT '删除时间',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_is_active` (`is_active`),
KEY `idx_is_deleted` (`is_deleted`),
KEY `idx_sort_order` (`sort_order`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='成长路径表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `growth_paths`
--
LOCK TABLES `growth_paths` WRITE;
/*!40000 ALTER TABLE `growth_paths` DISABLE KEYS */;
INSERT INTO `growth_paths` (`id`, `name`, `description`, `target_role`, `courses`, `estimated_duration_days`, `is_active`, `sort_order`, `is_deleted`, `deleted_at`, `created_at`, `updated_at`) VALUES (1,'美容顾问成长路径','从初级美容顾问到资深顾问的完整成长路径,包含专业技能和销售能力提升','资深美容顾问',NULL,NULL,1,0,0,NULL,'2025-09-23 02:39:48','2025-09-23 02:39:48'),(2,'美容技师进阶路径','美容技师的技能进阶路径,从基础护理到高级项目操作','高级美容技师',NULL,NULL,1,0,0,NULL,'2025-09-23 02:39:48','2025-09-23 02:39:48'),(3,'管理岗位培养路径','从一线员工到管理岗位的培养路径,包含领导力和管理技能','店长/区域经理',NULL,NULL,1,0,0,NULL,'2025-09-23 02:39:48','2025-09-23 02:39:48'),(4,'医美咨询师专业路径','医美咨询师的专业发展路径,深度掌握医美项目知识','资深医美咨询师',NULL,NULL,1,0,0,NULL,'2025-09-23 02:39:48','2025-09-23 02:39:48');
/*!40000 ALTER TABLE `growth_paths` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `knowledge_points`
--
DROP TABLE IF EXISTS `knowledge_points`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `knowledge_points` (
`id` int NOT NULL AUTO_INCREMENT,
`course_id` int DEFAULT NULL COMMENT '所属课程ID',
`name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '知识点名称',
`description` text COLLATE utf8mb4_unicode_ci COMMENT '知识点描述',
`parent_id` int DEFAULT NULL COMMENT '父知识点ID',
`level` int DEFAULT '1' COMMENT '层级深度',
`path` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '知识点路径',
`sort_order` int DEFAULT '0' COMMENT '排序顺序',
`weight` decimal(3,2) DEFAULT '1.00' COMMENT '权重',
`is_required` tinyint(1) DEFAULT '1' COMMENT '是否必修',
`estimated_hours` decimal(4,2) DEFAULT NULL COMMENT '预计学习时间(小时)',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除',
`deleted_at` datetime DEFAULT NULL COMMENT '删除时间',
`created_by` int DEFAULT NULL COMMENT '创建人ID',
`updated_by` int DEFAULT NULL COMMENT '更新人ID',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_course_id` (`course_id`),
KEY `idx_parent_id` (`parent_id`),
KEY `idx_is_deleted` (`is_deleted`),
KEY `idx_sort_order` (`sort_order`),
CONSTRAINT `knowledge_points_ibfk_1` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE,
CONSTRAINT `knowledge_points_ibfk_2` FOREIGN KEY (`parent_id`) REFERENCES `knowledge_points` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='知识点表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `knowledge_points`
--
LOCK TABLES `knowledge_points` WRITE;
/*!40000 ALTER TABLE `knowledge_points` DISABLE KEYS */;
/*!40000 ALTER TABLE `knowledge_points` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `material_knowledge_points`
--
DROP TABLE IF EXISTS `material_knowledge_points`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `material_knowledge_points` (
`id` int NOT NULL AUTO_INCREMENT,
`material_id` int NOT NULL COMMENT '资料ID',
`knowledge_point_id` int NOT NULL COMMENT '知识点ID',
`sort_order` int DEFAULT '0' COMMENT '排序顺序',
`is_ai_generated` tinyint(1) DEFAULT '0' COMMENT '是否AI生成',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除',
`deleted_at` datetime DEFAULT NULL COMMENT '删除时间',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_material_knowledge` (`material_id`,`knowledge_point_id`),
KEY `idx_material_id` (`material_id`),
KEY `idx_knowledge_point_id` (`knowledge_point_id`),
CONSTRAINT `material_knowledge_points_ibfk_1` FOREIGN KEY (`material_id`) REFERENCES `course_materials` (`id`) ON DELETE CASCADE,
CONSTRAINT `material_knowledge_points_ibfk_2` FOREIGN KEY (`knowledge_point_id`) REFERENCES `knowledge_points` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='资料知识点关联表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `material_knowledge_points`
--
LOCK TABLES `material_knowledge_points` WRITE;
/*!40000 ALTER TABLE `material_knowledge_points` DISABLE KEYS */;
/*!40000 ALTER TABLE `material_knowledge_points` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `position_courses`
--
DROP TABLE IF EXISTS `position_courses`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `position_courses` (
`id` int NOT NULL AUTO_INCREMENT,
`position_id` int NOT NULL COMMENT '岗位ID',
`course_id` int NOT NULL COMMENT '课程ID',
`course_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'required' COMMENT '课程类型(必修/选修)',
`priority` int DEFAULT '0' COMMENT '优先级',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`created_by` int DEFAULT NULL COMMENT '创建人ID',
`updated_by` int DEFAULT NULL COMMENT '更新人ID',
`is_deleted` tinyint(1) NOT NULL DEFAULT '0',
`deleted_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uix_position_course` (`position_id`,`course_id`,`is_deleted`),
KEY `course_id` (`course_id`),
KEY `ix_position_courses_id` (`id`),
CONSTRAINT `position_courses_ibfk_1` FOREIGN KEY (`position_id`) REFERENCES `positions` (`id`),
CONSTRAINT `position_courses_ibfk_2` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='岗位课程关联表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `position_courses`
--
LOCK TABLES `position_courses` WRITE;
/*!40000 ALTER TABLE `position_courses` DISABLE KEYS */;
INSERT INTO `position_courses` (`id`, `position_id`, `course_id`, `course_type`, `priority`, `created_at`, `updated_at`, `created_by`, `updated_by`, `is_deleted`, `deleted_at`) VALUES (1,1,6,'required',1,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(2,1,8,'required',2,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(3,1,11,'required',3,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(4,1,12,'required',4,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(5,3,1,'required',1,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(6,3,2,'required',2,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(7,3,5,'required',3,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(8,3,6,'required',4,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(9,3,10,'required',5,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(10,3,12,'required',6,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(11,4,1,'required',1,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(12,4,2,'required',2,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(13,4,4,'required',3,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(14,4,5,'required',4,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(15,4,9,'required',5,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(16,4,12,'required',6,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(17,5,1,'required',1,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(18,5,2,'required',2,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(19,5,3,'required',3,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(20,5,9,'required',4,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(21,5,12,'required',5,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(22,7,6,'required',1,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(23,7,10,'required',2,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(24,7,12,'required',3,'2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL);
/*!40000 ALTER TABLE `position_courses` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `position_members`
--
DROP TABLE IF EXISTS `position_members`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `position_members` (
`id` int NOT NULL AUTO_INCREMENT,
`position_id` int NOT NULL COMMENT '岗位ID',
`user_id` int NOT NULL COMMENT '用户ID',
`role` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '在岗位中的角色',
`joined_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '加入时间',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`created_by` int DEFAULT NULL COMMENT '创建人ID',
`updated_by` int DEFAULT NULL COMMENT '更新人ID',
`is_deleted` tinyint(1) NOT NULL DEFAULT '0',
`deleted_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uix_position_user` (`position_id`,`user_id`,`is_deleted`),
KEY `user_id` (`user_id`),
KEY `ix_position_members_id` (`id`),
CONSTRAINT `position_members_ibfk_1` FOREIGN KEY (`position_id`) REFERENCES `positions` (`id`),
CONSTRAINT `position_members_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='岗位成员关联表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `position_members`
--
LOCK TABLES `position_members` WRITE;
/*!40000 ALTER TABLE `position_members` DISABLE KEYS */;
INSERT INTO `position_members` (`id`, `position_id`, `user_id`, `role`, `joined_at`, `created_at`, `updated_at`, `created_by`, `updated_by`, `is_deleted`, `deleted_at`) VALUES (1,1,3,NULL,'2025-09-22 18:42:32','2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(2,1,4,NULL,'2025-09-22 18:42:32','2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(3,3,5,NULL,'2025-09-22 18:42:32','2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(4,4,6,NULL,'2025-09-22 18:42:32','2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(5,5,7,NULL,'2025-09-22 18:42:32','2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL),(6,7,8,NULL,'2025-09-22 18:42:32','2025-09-23 02:42:32','2025-09-23 02:42:32',NULL,NULL,0,NULL);
/*!40000 ALTER TABLE `position_members` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `positions`
--
DROP TABLE IF EXISTS `positions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `positions` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '岗位名称',
`code` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '岗位代码',
`description` text COLLATE utf8mb4_unicode_ci COMMENT '岗位描述',
`parent_id` int DEFAULT NULL COMMENT '上级岗位ID',
`status` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'active' COMMENT '岗位状态',
`skills` json DEFAULT NULL COMMENT '核心技能',
`level` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '岗位级别',
`sort_order` int DEFAULT '0' COMMENT '排序',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除',
`deleted_at` datetime DEFAULT NULL COMMENT '删除时间',
`created_by` int DEFAULT NULL COMMENT '创建人ID',
`updated_by` int DEFAULT NULL COMMENT '更新人ID',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `code` (`code`),
KEY `parent_id` (`parent_id`),
KEY `idx_positions_name` (`name`),
CONSTRAINT `positions_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `positions` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='岗位信息表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `positions`
--
LOCK TABLES `positions` WRITE;
/*!40000 ALTER TABLE `positions` DISABLE KEYS */;
INSERT INTO `positions` (`id`, `name`, `code`, `description`, `parent_id`, `status`, `skills`, `level`, `sort_order`, `is_deleted`, `deleted_at`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES (1,'区域经理','region_manager','负责多家门店的运营管理和业绩达成,制定区域发展战略',NULL,'active',NULL,'expert',0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(2,'店长','store_manager','负责门店日常运营管理,团队建设和业绩达成',NULL,'active',NULL,'senior',0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(3,'美容顾问','beauty_consultant','为客户提供专业的美容咨询和个性化方案设计',NULL,'active',NULL,'intermediate',0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(4,'医美咨询师','medical_beauty_consultant','提供医疗美容项目咨询和专业方案制定',NULL,'active',NULL,'senior',0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(5,'美容技师','beauty_therapist','为客户提供专业的美容护理和技术服务',NULL,'active',NULL,'intermediate',0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(6,'美容护士','beauty_nurse','协助医生进行医美项目操作,负责术后护理指导',NULL,'active',NULL,'intermediate',0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(7,'前台接待','receptionist','负责客户接待、预约管理和前台事务处理',NULL,'active',NULL,'junior',0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24'),(8,'市场专员','marketing_specialist','负责门店营销活动策划、执行和客户维护',NULL,'active',NULL,'intermediate',0,0,NULL,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24');
/*!40000 ALTER TABLE `positions` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `questions`
--
DROP TABLE IF EXISTS `questions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `questions` (
`id` int NOT NULL AUTO_INCREMENT,
`course_id` int NOT NULL COMMENT '所属课程ID',
`question_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '题目类型',
`title` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '题目标题',
`content` text COLLATE utf8mb4_unicode_ci COMMENT '题目内容',
`options` json DEFAULT NULL COMMENT '选项内容',
`correct_answer` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '正确答案',
`explanation` text COLLATE utf8mb4_unicode_ci COMMENT '答案解析',
`score` float DEFAULT '10' COMMENT '题目分值',
`difficulty` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT 'medium' COMMENT '难度等级',
`tags` json DEFAULT NULL COMMENT '题目标签',
`usage_count` int DEFAULT '0' COMMENT '使用次数',
`correct_count` int DEFAULT '0' COMMENT '答对次数',
`is_active` tinyint(1) DEFAULT '1' COMMENT '是否启用',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_course_id` (`course_id`),
KEY `idx_question_type` (`question_type`),
KEY `idx_difficulty` (`difficulty`),
KEY `idx_is_active` (`is_active`),
CONSTRAINT `questions_ibfk_1` FOREIGN KEY (`course_id`) REFERENCES `courses` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='题目表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `questions`
--
LOCK TABLES `questions` WRITE;
/*!40000 ALTER TABLE `questions` DISABLE KEYS */;
INSERT INTO `questions` (`id`, `course_id`, `question_type`, `title`, `content`, `options`, `correct_answer`, `explanation`, `score`, `difficulty`, `tags`, `usage_count`, `correct_count`, `is_active`, `created_at`, `updated_at`) VALUES (1,1,'single_choice','皮肤的最外层是什么?',NULL,'[{\"text\": \"表皮\", \"label\": \"A\"}, {\"text\": \"真皮\", \"label\": \"B\"}, {\"text\": \"皮下组织\", \"label\": \"C\"}, {\"text\": \"角质层\", \"label\": \"D\"}]','A','A选项是表皮这是皮肤的最外层起到保护作用',10,'easy',NULL,0,0,1,'2025-09-23 02:39:48','2025-09-23 02:39:48'),(2,2,'single_choice','透明质酸的主要功效是什么?',NULL,'[{\"text\": \"美白淡斑\", \"label\": \"A\"}, {\"text\": \"保湿补水\", \"label\": \"B\"}, {\"text\": \"紧致提升\", \"label\": \"C\"}, {\"text\": \"去除皱纹\", \"label\": \"D\"}]','B','B选项是保湿补水透明质酸具有强大的保湿能力',10,'easy',NULL,0,0,1,'2025-09-23 02:39:48','2025-09-23 02:39:48'),(3,3,'multiple_choice','射频美容仪的禁忌症包括哪些?',NULL,'[{\"text\": \"孕期和哺乳期\", \"label\": \"A\"}, {\"text\": \"皮肤过敏\", \"label\": \"B\"}, {\"text\": \"心脏起搏器\", \"label\": \"C\"}, {\"text\": \"轻微痤疮\", \"label\": \"D\"}]','A,C','A和C选项都是射频美容仪的禁忌症需要特别注意',15,'medium',NULL,0,0,1,'2025-09-23 02:39:48','2025-09-23 02:39:48'),(4,4,'true_false','水光针适合所有肤质的客户',NULL,'[{\"text\": \"正确\", \"label\": \"A\"}, {\"text\": \"错误\", \"label\": \"B\"}]','B','水光针虽然适用范围广,但仍有一些禁忌症和不适合的肤质',10,'easy',NULL,0,0,1,'2025-09-23 02:39:48','2025-09-23 02:39:48'),(5,4,'fill_blank','肉毒素注射后____小时内不能平躺','肉毒素注射后【】小时内不能平躺,以免影响药物分布效果。',NULL,'4','肉毒素注射后4小时内不能平躺以免影响药物分布',10,'medium',NULL,0,0,1,'2025-09-23 02:39:48','2025-09-23 02:39:48'),(6,5,'single_choice','客户咨询时最重要的是什么?',NULL,'[{\"text\": \"倾听客户需求\", \"label\": \"A\"}, {\"text\": \"推荐最贵的产品\", \"label\": \"B\"}, {\"text\": \"快速成交\", \"label\": \"C\"}, {\"text\": \"展示专业知识\", \"label\": \"D\"}]','A','A选项是倾听客户需求这是专业咨询的基础',10,'easy',NULL,0,0,1,'2025-09-23 02:39:48','2025-09-23 02:39:48'),(7,6,'single_choice','处理客户投诉的第一步是什么?',NULL,'[{\"text\": \"解释原因\", \"label\": \"A\"}, {\"text\": \"耐心倾听\", \"label\": \"B\"}, {\"text\": \"提供补偿\", \"label\": \"C\"}, {\"text\": \"转交上级\", \"label\": \"D\"}]','B','B选项是耐心倾听让客户充分表达不满是处理投诉的第一步',10,'easy',NULL,0,0,1,'2025-09-23 02:39:48','2025-09-23 02:39:48'),(8,7,'true_false','社交媒体营销只需要发布产品信息',NULL,'[{\"text\": \"正确\", \"label\": \"A\"}, {\"text\": \"错误\", \"label\": \"B\"}]','B','社交媒体营销需要内容多样化,包括教育内容、互动内容等',10,'easy',NULL,0,0,1,'2025-09-23 02:39:48','2025-09-23 02:39:48');
/*!40000 ALTER TABLE `questions` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `teams`
--
DROP TABLE IF EXISTS `teams`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `teams` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '团队名称',
`code` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '团队代码',
`description` text COLLATE utf8mb4_unicode_ci COMMENT '团队描述',
`team_type` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '团队类型',
`is_active` tinyint(1) DEFAULT '1' COMMENT '是否激活',
`leader_id` int DEFAULT NULL COMMENT '负责人ID',
`parent_id` int DEFAULT NULL COMMENT '父团队ID',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除',
`deleted_at` datetime DEFAULT NULL COMMENT '删除时间',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),
UNIQUE KEY `code` (`code`),
KEY `leader_id` (`leader_id`),
KEY `parent_id` (`parent_id`),
KEY `idx_team_type` (`team_type`),
KEY `idx_is_active` (`is_active`),
CONSTRAINT `teams_ibfk_1` FOREIGN KEY (`leader_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `teams_ibfk_2` FOREIGN KEY (`parent_id`) REFERENCES `teams` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队信息表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `teams`
--
LOCK TABLES `teams` WRITE;
/*!40000 ALTER TABLE `teams` DISABLE KEYS */;
INSERT INTO `teams` (`id`, `name`, `code`, `description`, `team_type`, `is_active`, `leader_id`, `parent_id`, `created_at`, `updated_at`, `is_deleted`, `deleted_at`) VALUES (1,'管理层','MANAGEMENT','负责公司整体战略规划和运营管理','department',1,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24',0,NULL),(2,'北京运营团队','BJ_OPERATIONS','负责北京地区所有门店的运营管理','department',1,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24',0,NULL),(3,'上海运营团队','SH_OPERATIONS','负责上海地区所有门店的运营管理','department',1,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24',0,NULL),(4,'技术培训部','TECH_TRAINING','负责员工技术培训和考核','department',1,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24',0,NULL),(5,'客服质量部','QUALITY_SERVICE','负责客户服务质量监督和改进','department',1,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24',0,NULL),(6,'新员工培训小组','NEW_EMPLOYEE_TRAINING','专门负责新员工入职培训','study_group',1,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24',0,NULL);
/*!40000 ALTER TABLE `teams` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `training_messages`
--
DROP TABLE IF EXISTS `training_messages`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `training_messages` (
`id` int NOT NULL AUTO_INCREMENT,
`session_id` int NOT NULL COMMENT '会话ID',
`role` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '消息角色',
`type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '消息类型',
`content` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '消息内容',
`voice_url` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '语音文件URL',
`voice_duration` int DEFAULT NULL COMMENT '语音时长(秒)',
`message_metadata` json DEFAULT NULL COMMENT '消息元数据',
`coze_message_id` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Coze消息ID',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_session_id` (`session_id`),
KEY `idx_role` (`role`),
CONSTRAINT `training_messages_ibfk_1` FOREIGN KEY (`session_id`) REFERENCES `training_sessions` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='培训消息表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `training_messages`
--
LOCK TABLES `training_messages` WRITE;
/*!40000 ALTER TABLE `training_messages` DISABLE KEYS */;
/*!40000 ALTER TABLE `training_messages` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `training_reports`
--
DROP TABLE IF EXISTS `training_reports`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `training_reports` (
`id` int NOT NULL AUTO_INCREMENT,
`session_id` int NOT NULL COMMENT '会话ID',
`user_id` int NOT NULL COMMENT '用户ID',
`overall_score` decimal(5,2) DEFAULT NULL COMMENT '总体评分',
`dimension_scores` json DEFAULT NULL COMMENT '各维度得分',
`strengths` text COLLATE utf8mb4_unicode_ci COMMENT '优势点',
`weaknesses` text COLLATE utf8mb4_unicode_ci COMMENT '待改进点',
`suggestions` text COLLATE utf8mb4_unicode_ci COMMENT '改进建议',
`detailed_analysis` text COLLATE utf8mb4_unicode_ci COMMENT '详细分析',
`transcript` text COLLATE utf8mb4_unicode_ci COMMENT '对话记录',
`statistics` json DEFAULT NULL COMMENT '统计数据',
`created_by` int DEFAULT NULL COMMENT '创建人ID',
`updated_by` int DEFAULT NULL COMMENT '更新人ID',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `session_id` (`session_id`),
KEY `idx_user_id` (`user_id`),
CONSTRAINT `training_reports_ibfk_1` FOREIGN KEY (`session_id`) REFERENCES `training_sessions` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='培训报告表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `training_reports`
--
LOCK TABLES `training_reports` WRITE;
/*!40000 ALTER TABLE `training_reports` DISABLE KEYS */;
/*!40000 ALTER TABLE `training_reports` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `training_scenes`
--
DROP TABLE IF EXISTS `training_scenes`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `training_scenes` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '场景名称',
`description` text COLLATE utf8mb4_unicode_ci COMMENT '场景描述',
`category` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '场景分类',
`ai_config` json DEFAULT NULL COMMENT 'AI配置',
`prompt_template` text COLLATE utf8mb4_unicode_ci COMMENT '提示模板',
`evaluation_criteria` json DEFAULT NULL COMMENT '评估标准',
`status` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'active' COMMENT '场景状态',
`is_public` tinyint(1) DEFAULT '1' COMMENT '是否公开',
`required_level` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '所需用户等级',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除',
`deleted_at` datetime DEFAULT NULL COMMENT '删除时间',
`created_by` int DEFAULT NULL COMMENT '创建人ID',
`updated_by` int DEFAULT NULL COMMENT '更新人ID',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_status` (`status`),
KEY `idx_category` (`category`),
KEY `idx_is_public` (`is_public`),
KEY `idx_is_deleted` (`is_deleted`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='培训场景表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `training_scenes`
--
LOCK TABLES `training_scenes` WRITE;
/*!40000 ALTER TABLE `training_scenes` DISABLE KEYS */;
INSERT INTO `training_scenes` (`id`, `name`, `description`, `category`, `ai_config`, `prompt_template`, `evaluation_criteria`, `status`, `is_public`, `required_level`, `is_deleted`, `deleted_at`, `created_by`, `updated_by`, `created_at`, `updated_at`) VALUES (1,'客户咨询模拟','模拟真实的客户咨询场景,练习专业咨询技巧','客户服务',NULL,NULL,NULL,'ACTIVE',1,NULL,0,NULL,NULL,NULL,'2025-09-23 02:39:48','2025-09-23 02:39:48'),(2,'产品推荐演练','针对不同客户需求进行产品推荐的实战演练','销售技巧',NULL,NULL,NULL,'ACTIVE',1,NULL,0,NULL,NULL,NULL,'2025-09-23 02:39:48','2025-09-23 02:39:48'),(3,'投诉处理训练','模拟各种客户投诉情况,训练处理技巧和话术','客户服务',NULL,NULL,NULL,'ACTIVE',1,NULL,0,NULL,NULL,NULL,'2025-09-23 02:39:48','2025-09-23 02:39:48'),(4,'项目操作指导','美容项目操作的标准流程指导和安全注意事项','技术指导',NULL,NULL,NULL,'ACTIVE',1,NULL,0,NULL,NULL,NULL,'2025-09-23 02:39:48','2025-09-23 02:39:48'),(5,'团队管理讨论','管理岗位的团队建设和绩效管理讨论','管理培训',NULL,NULL,NULL,'ACTIVE',1,NULL,0,NULL,NULL,NULL,'2025-09-23 02:39:48','2025-09-23 02:39:48');
/*!40000 ALTER TABLE `training_scenes` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `training_sessions`
--
DROP TABLE IF EXISTS `training_sessions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `training_sessions` (
`id` int NOT NULL AUTO_INCREMENT,
`user_id` int NOT NULL COMMENT '用户ID',
`scene_id` int NOT NULL COMMENT '场景ID',
`coze_conversation_id` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Coze对话ID',
`start_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '开始时间',
`end_time` datetime DEFAULT NULL COMMENT '结束时间',
`duration_seconds` int DEFAULT NULL COMMENT '持续时长(秒)',
`status` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'active' COMMENT '会话状态',
`session_config` json DEFAULT NULL COMMENT '会话配置',
`total_score` decimal(5,2) DEFAULT NULL COMMENT '总分',
`evaluation_result` json DEFAULT NULL COMMENT '评估结果详情',
`created_by` int DEFAULT NULL COMMENT '创建人ID',
`updated_by` int DEFAULT NULL COMMENT '更新人ID',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_scene_id` (`scene_id`),
KEY `idx_status` (`status`),
CONSTRAINT `training_sessions_ibfk_1` FOREIGN KEY (`scene_id`) REFERENCES `training_scenes` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='培训会话表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `training_sessions`
--
LOCK TABLES `training_sessions` WRITE;
/*!40000 ALTER TABLE `training_sessions` DISABLE KEYS */;
/*!40000 ALTER TABLE `training_sessions` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `user_teams`
--
DROP TABLE IF EXISTS `user_teams`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `user_teams` (
`user_id` int NOT NULL COMMENT '用户ID',
`team_id` int NOT NULL COMMENT '团队ID',
`role` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '在团队中的角色',
`joined_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '加入时间',
PRIMARY KEY (`user_id`,`team_id`),
KEY `team_id` (`team_id`),
CONSTRAINT `user_teams_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE,
CONSTRAINT `user_teams_ibfk_2` FOREIGN KEY (`team_id`) REFERENCES `teams` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户团队关联表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `user_teams`
--
LOCK TABLES `user_teams` WRITE;
/*!40000 ALTER TABLE `user_teams` DISABLE KEYS */;
INSERT INTO `user_teams` (`user_id`, `team_id`, `role`, `joined_at`) VALUES (1,1,'leader','2025-09-22 18:42:32'),(2,1,'member','2025-09-22 18:42:32'),(3,2,'leader','2025-09-22 18:42:32'),(4,3,'leader','2025-09-22 18:42:32'),(5,2,'member','2025-09-22 18:42:32'),(5,4,'member','2025-09-22 18:42:32'),(6,2,'member','2025-09-22 18:42:32'),(6,4,'member','2025-09-22 18:42:32'),(7,3,'member','2025-09-22 18:42:32'),(7,4,'member','2025-09-22 18:42:32'),(8,3,'member','2025-09-22 18:42:32'),(8,6,'member','2025-09-22 18:42:32');
/*!40000 ALTER TABLE `user_teams` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `users`
--
DROP TABLE IF EXISTS `users`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `users` (
`id` int NOT NULL AUTO_INCREMENT,
`username` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名',
`email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮箱',
`phone` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '手机号',
`password_hash` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码哈希',
`full_name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '真实姓名',
`gender` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '性别',
`avatar_url` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '头像URL',
`bio` text COLLATE utf8mb4_unicode_ci COMMENT '个人简介',
`school` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '学校',
`major` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '专业',
`role` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'trainee' COMMENT '用户角色',
`is_active` tinyint(1) DEFAULT '1' COMMENT '是否激活',
`is_verified` tinyint(1) DEFAULT '0' COMMENT '是否验证',
`last_login_at` datetime DEFAULT NULL COMMENT '最后登录时间',
`password_changed_at` datetime DEFAULT NULL COMMENT '密码修改时间',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除',
`deleted_at` datetime DEFAULT NULL COMMENT '删除时间',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`),
UNIQUE KEY `email` (`email`),
UNIQUE KEY `phone` (`phone`),
KEY `idx_role` (`role`),
KEY `idx_is_active` (`is_active`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户信息表';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `users`
--
LOCK TABLES `users` WRITE;
/*!40000 ALTER TABLE `users` DISABLE KEYS */;
INSERT INTO `users` (`id`, `username`, `email`, `phone`, `password_hash`, `full_name`, `gender`, `avatar_url`, `bio`, `school`, `major`, `role`, `is_active`, `is_verified`, `last_login_at`, `password_changed_at`, `created_at`, `updated_at`, `is_deleted`, `deleted_at`) VALUES (1,'superadmin','superadmin@ruimei.com','13800138001','$2b$12$jFhkYU3.Cd1kAfr64/073eayPquAr0z9WWUQEdOyFRmAqcxz.i10C','超级管理员','male',NULL,'负责系统整体管理和运营','睿美医疗美容学院','医疗美容管理','admin',1,0,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24',0,NULL),(2,'admin','admin@ruimei.com','13800138002','$2b$12$jFhkYU3.Cd1kAfr64/073eayPquAr0z9WWUQEdOyFRmAqcxz.i10C','系统管理员','female',NULL,'负责日常系统管理工作','睿美医疗美容学院','医疗美容技术','admin',1,0,'2025-09-22 18:54:56',NULL,'2025-09-23 02:38:24','2025-09-22 18:54:56',0,NULL),(3,'manager_beijing','manager.bj@ruimei.com','13800138003','$2b$12$jFhkYU3.Cd1kAfr64/073eayPquAr0z9WWUQEdOyFRmAqcxz.i10C','北京区域经理','male',NULL,'负责北京地区门店管理','北京医科大学','临床医学','manager',1,0,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24',0,NULL),(4,'manager_shanghai','manager.sh@ruimei.com','13800138004','$2b$12$jFhkYU3.Cd1kAfr64/073eayPquAr0z9WWUQEdOyFRmAqcxz.i10C','上海区域经理','female',NULL,'负责上海地区门店管理','复旦大学医学院','医疗美容','manager',1,0,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24',0,NULL),(5,'consultant_001','consultant001@ruimei.com','13800138005','$2b$12$jFhkYU3.Cd1kAfr64/073eayPquAr0z9WWUQEdOyFRmAqcxz.i10C','资深美容顾问','female',NULL,'专业美容咨询师5年从业经验','上海健康医学院','医疗美容技术','trainee',1,0,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24',0,NULL),(6,'nurse_001','nurse001@ruimei.com','13800138006','$2b$12$jFhkYU3.Cd1kAfr64/073eayPquAr0z9WWUQEdOyFRmAqcxz.i10C','美容护士','female',NULL,'持证美容护士,专业技术过硬','首都医科大学','护理学','trainee',1,0,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24',0,NULL),(7,'therapist_001','therapist001@ruimei.com','13800138007','$2b$12$jFhkYU3.Cd1kAfr64/073eayPquAr0z9WWUQEdOyFRmAqcxz.i10C','美容技师','female',NULL,'专业美容技师,擅长面部护理','北京卫生职业学院','医疗美容技术','trainee',1,0,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24',0,NULL),(8,'receptionist_001','front001@ruimei.com','13800138008','$2b$12$jFhkYU3.Cd1kAfr64/073eayPquAr0z9WWUQEdOyFRmAqcxz.i10C','前台接待','female',NULL,'负责客户接待和预约管理','北京商贸职业学院','商务管理','trainee',1,0,NULL,NULL,'2025-09-23 02:38:24','2025-09-23 02:38:24',0,NULL);
/*!40000 ALTER TABLE `users` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Temporary view structure for view `v_user_course_progress`
--
DROP TABLE IF EXISTS `v_user_course_progress`;
/*!50001 DROP VIEW IF EXISTS `v_user_course_progress`*/;
SET @saved_cs_client = @@character_set_client;
/*!50503 SET character_set_client = utf8mb4 */;
/*!50001 CREATE VIEW `v_user_course_progress` AS SELECT
1 AS `user_id`,
1 AS `username`,
1 AS `course_id`,
1 AS `course_name`,
1 AS `exam_count`,
1 AS `avg_score`,
1 AS `best_score`*/;
SET character_set_client = @saved_cs_client;
--
-- Dumping events for database 'kaopeilian'
--
--
-- Dumping routines for database 'kaopeilian'
--
--
-- Final view structure for view `v_user_course_progress`
--
/*!50001 DROP VIEW IF EXISTS `v_user_course_progress`*/;
/*!50001 SET @saved_cs_client = @@character_set_client */;
/*!50001 SET @saved_cs_results = @@character_set_results */;
/*!50001 SET @saved_col_connection = @@collation_connection */;
/*!50001 SET character_set_client = latin1 */;
/*!50001 SET character_set_results = latin1 */;
/*!50001 SET collation_connection = latin1_swedish_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `v_user_course_progress` AS select `u`.`id` AS `user_id`,`u`.`username` AS `username`,`c`.`id` AS `course_id`,`c`.`name` AS `course_name`,count(distinct `e`.`id`) AS `exam_count`,avg(`e`.`score`) AS `avg_score`,max(`e`.`score`) AS `best_score` from ((`users` `u` join `courses` `c`) left join `exams` `e` on(((`e`.`user_id` = `u`.`id`) and (`e`.`course_id` = `c`.`id`) and (`e`.`status` = 'submitted')))) group by `u`.`id`,`c`.`id` */;
/*!50001 SET character_set_client = @saved_cs_client */;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2025-09-22 18:55:48