-- 普拉提数据库结构迁移脚本
-- 此脚本用于将现有的数据库结构升级以支持新的普拉提分类和动作系统

-- 开始事务
BEGIN;

-- 1. 为分类表添加新字段
ALTER TABLE t_exercise_categories 
ADD COLUMN pilates_type ENUM('mat_pilates', 'equipment_pilates') NOT NULL DEFAULT 'mat_pilates' COMMENT '普拉提类型：垫上普拉提或器械普拉提';

ALTER TABLE t_exercise_categories 
ADD COLUMN equipment_name VARCHAR(255) NULL COMMENT '器械名称（仅器械普拉提需要）';

-- 2. 为动作表添加新字段
ALTER TABLE t_exercises 
ADD COLUMN target_muscle_groups TEXT NOT NULL DEFAULT '' COMMENT '主要锻炼肌肉群';

ALTER TABLE t_exercises 
ADD COLUMN equipment_name VARCHAR(255) NULL COMMENT '器械名称（器械普拉提专用）';

ALTER TABLE t_exercises 
ADD COLUMN beginner_reps INTEGER NULL COMMENT '入门级别建议练习次数';

ALTER TABLE t_exercises 
ADD COLUMN beginner_sets INTEGER NULL COMMENT '入门级别建议组数';

ALTER TABLE t_exercises 
ADD COLUMN breathing_cycles INTEGER NULL COMMENT '呼吸循环次数（替代普通次数）';

ALTER TABLE t_exercises 
ADD COLUMN hold_duration INTEGER NULL COMMENT '保持时间（秒）';

ALTER TABLE t_exercises 
ADD COLUMN special_instructions VARCHAR(255) NULL COMMENT '特殊说明（如每侧、前后各等）';

-- 3. 修改现有字段属性
ALTER TABLE t_exercises 
MODIFY COLUMN description TEXT NULL COMMENT '动作描述';

-- 提交事务
COMMIT;

-- 验证表结构
SELECT 
  COLUMN_NAME,
  COLUMN_TYPE,
  IS_NULLABLE,
  COLUMN_DEFAULT,
  COLUMN_COMMENT
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 't_exercise_categories' 
  AND TABLE_SCHEMA = DATABASE()
ORDER BY ORDINAL_POSITION;

SELECT 
  COLUMN_NAME,
  COLUMN_TYPE,
  IS_NULLABLE,
  COLUMN_DEFAULT,
  COLUMN_COMMENT
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 't_exercises' 
  AND TABLE_SCHEMA = DATABASE()
ORDER BY ORDINAL_POSITION;
