-- /gxmu/declare 挑战杯配置多值化迁移
-- 目标：
-- 1. 申报管理中的 project_type / project_group 支持保存多个自定义值
-- 2. 存储格式采用 JSON 数组字符串，尽量减少后端实体和前端兼容成本

ALTER TABLE `gxmu_declare`
  MODIFY COLUMN `project_type` TEXT NULL COMMENT '挑战杯项目类型(JSON数组字符串)',
  MODIFY COLUMN `project_group` TEXT NULL COMMENT '挑战杯项目分组(JSON数组字符串)';

-- 历史单值数据迁移为 JSON 数组字符串，仅处理挑战杯模块记录
UPDATE `gxmu_declare`
SET `project_type` = JSON_ARRAY(`project_type`)
WHERE `module` = 'gxmu_tzbcy_form'
  AND `project_type` IS NOT NULL
  AND `project_type` <> ''
  AND JSON_VALID(`project_type`) = 0;

UPDATE `gxmu_declare`
SET `project_group` = JSON_ARRAY(`project_group`)
WHERE `module` = 'gxmu_tzbcy_form'
  AND `project_group` IS NOT NULL
  AND `project_group` <> ''
  AND JSON_VALID(`project_group`) = 0;

-- 挑战杯申报表 gxmu_tzbcy_form 的 project_type / project_group 仍为单值字段，无需改表。
