-- M-AI-02-GATE-FIX: 恢复物理列名、jobType 类型、idempotencyKey 复合唯一约束

-- 1. 恢复物理列名：internalErrorMessage → errorMessage（保留内部字段名 internalErrorMessage 为 Prisma 逻辑名）
ALTER TABLE `AiAnalysisJob`
  CHANGE COLUMN `internalErrorMessage` `errorMessage` TEXT NULL;

-- 2. 恢复物理列名：finishedAt → completedAt（保留内部字段名 finishedAt 为 Prisma 逻辑名）
ALTER TABLE `AiAnalysisJob`
  CHANGE COLUMN `finishedAt` `completedAt` DATETIME(3) NULL;

-- 3. 恢复 jobType VARCHAR(64) → VARCHAR(32)
ALTER TABLE `AiAnalysisJob`
  MODIFY COLUMN `jobType` VARCHAR(32) NOT NULL;

-- 4. 修复 idempotencyKey 唯一约束：单列 → 复合 (userId, jobType, idempotencyKey)
ALTER TABLE `AiAnalysisJob`
  DROP INDEX `AiAnalysisJob_idempotencyKey_key`;

ALTER TABLE `AiAnalysisJob`
  ADD UNIQUE INDEX `AiAnalysisJob_userId_jobType_idempotencyKey_key` (`userId`, `jobType`, `idempotencyKey`);
