-- 1. 先删除原唯一索引（因索引关联原字段名，需先删后重建）
ALTER TABLE `async_task_record` DROP INDEX `async_task_id`;

-- 2. 删除原普通索引
ALTER TABLE `async_task_record` DROP INDEX `idx_async_task_id`;

-- 3. 重命名字段（按驼峰规则逐个修改）
ALTER TABLE `async_task_record`
  -- 主键ID（原id保留，本身无下划线）
  CHANGE COLUMN `id` `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID，自增',
  -- 异步任务唯一标识
  CHANGE COLUMN `async_task_id` `asyncTaskId` varchar(64) NOT NULL COMMENT '异步任务唯一标识，全局唯一，用于定位单个异步任务',
  -- 流程实例ID
  CHANGE COLUMN `process_instance_id` `processInstanceId` varchar(64) DEFAULT NULL COMMENT '流程实例ID，关联工作流引擎的流程实例（如Camunda的processInstanceId）',
  -- 流程执行ID
  CHANGE COLUMN `execution_id` `executionId` varchar(64) DEFAULT NULL COMMENT '流程执行ID，关联工作流引擎的执行实例（如Camunda的executionId）',
  -- 接收任务ID
  CHANGE COLUMN `receive_task_id` `receiveTaskId` varchar(64) DEFAULT NULL COMMENT '接收任务ID，关联工作流中接收任务节点的ID（用于异步回调触发流程继续）',
  -- 业务处理器类型
  CHANGE COLUMN `handler_type` `handlerType` varchar(64) DEFAULT NULL COMMENT '业务处理器类型，标识任务对应的业务处理逻辑，例如：HPC(高性能计算)/OCR(图文识别)/AI(智能分析)',
  -- 任务请求参数
  CHANGE COLUMN `request_json` `requestJson` text COMMENT '任务请求参数，JSON格式字符串，存储触发异步任务时的入参信息',
  -- 任务执行结果
  CHANGE COLUMN `result_json` `resultJson` text COMMENT '任务执行结果，JSON格式字符串，存储异步任务完成后的返回数据（成功/失败均记录）',
  -- 任务状态（原status无下划线，保留）
  CHANGE COLUMN `status` `status` varchar(32) DEFAULT 'INIT' COMMENT '任务状态：INIT(初始化)/RUNNING(执行中)/SUCCESS(执行成功)/FAIL(执行失败)',
  -- 创建时间
  CHANGE COLUMN `create_time` `createTime` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '任务创建时间，默认当前时间',
  -- 更新时间
  CHANGE COLUMN `update_time` `updateTime` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '任务更新时间，数据变更时自动更新为当前时间';

-- 4. 重建唯一索引（关联新的驼峰字段名）
ALTER TABLE `async_task_record`
  ADD UNIQUE KEY `uk_asyncTaskId` (`asyncTaskId`);

-- 5. 重建普通索引（关联新的驼峰字段名，更新索引注释）
ALTER TABLE `async_task_record`
  ADD KEY `idx_asyncTaskId` (`asyncTaskId`) COMMENT '异步任务ID索引，加速任务唯一标识的查询';