-- content v2 新增表(选修课/备课计划/课程计划) CREATE TABLE IF NOT EXISTS `content_elective_courses` ( `id` VARCHAR(32) NOT NULL, `title` VARCHAR(255) NOT NULL, `subject_id` VARCHAR(32) NOT NULL, `teacher_id` VARCHAR(32) NOT NULL, `capacity` INT NOT NULL DEFAULT 30, `enrolled_count` INT NOT NULL DEFAULT 0, `status` VARCHAR(32) NOT NULL DEFAULT 'open', `description` TEXT NULL, `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), INDEX `idx_elective_subject` (`subject_id`), INDEX `idx_elective_teacher` (`teacher_id`), INDEX `idx_elective_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `content_elective_selections` ( `id` VARCHAR(32) NOT NULL, `student_id` VARCHAR(32) NOT NULL, `course_id` VARCHAR(32) NOT NULL, `status` VARCHAR(32) NOT NULL DEFAULT 'selected', `selected_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `dropped_at` TIMESTAMP NULL, PRIMARY KEY (`id`), INDEX `idx_selection_student` (`student_id`), INDEX `idx_selection_course` (`course_id`), INDEX `idx_selection_student_course` (`student_id`, `course_id`), INDEX `idx_selection_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `content_lesson_plans` ( `id` VARCHAR(32) NOT NULL, `teacher_id` VARCHAR(32) NOT NULL, `class_id` VARCHAR(32) NOT NULL, `subject_id` VARCHAR(32) NOT NULL, `title` VARCHAR(255) NOT NULL, `content` TEXT NOT NULL, `status` VARCHAR(32) NOT NULL DEFAULT 'draft', `metadata` JSON NULL, `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), INDEX `idx_lesson_plan_teacher` (`teacher_id`), INDEX `idx_lesson_plan_class` (`class_id`), INDEX `idx_lesson_plan_subject` (`subject_id`), INDEX `idx_lesson_plan_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; CREATE TABLE IF NOT EXISTS `content_course_plans` ( `id` VARCHAR(32) NOT NULL, `student_id` VARCHAR(32) NOT NULL, `class_id` VARCHAR(32) NOT NULL, `subject_id` VARCHAR(32) NOT NULL, `title` VARCHAR(255) NOT NULL, `plan_type` VARCHAR(32) NOT NULL DEFAULT 'default', `content` TEXT NOT NULL, `status` VARCHAR(32) NOT NULL DEFAULT 'active', `metadata` JSON NULL, `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), INDEX `idx_course_plan_student` (`student_id`), INDEX `idx_course_plan_class` (`class_id`), INDEX `idx_course_plan_student_type` (`student_id`, `plan_type`), INDEX `idx_course_plan_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;