CREATE TABLE IF NOT EXISTS `project_vectorization_task` (
  `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '任务ID',
  `task_id` VARCHAR(64) NOT NULL COMMENT '任务唯一标识',
  `project_id` BIGINT NOT NULL COMMENT '项目ID',
  `user_id` BIGINT NOT NULL COMMENT '触发用户ID',
  `task_type` VARCHAR(32) NOT NULL COMMENT '任务类型：incremental/full',
  `status` VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT '任务状态：pending/running/success/failed',
  `total` INT NOT NULL DEFAULT 0 COMMENT '文件总数',
  `processed` INT NOT NULL DEFAULT 0 COMMENT '处理成功数',
  `skipped` INT NOT NULL DEFAULT 0 COMMENT '跳过数',
  `failed` INT NOT NULL DEFAULT 0 COMMENT '失败数',
  `error_message` TEXT DEFAULT NULL COMMENT '错误信息',
  `started_at` DATETIME DEFAULT NULL COMMENT '开始时间',
  `finished_at` DATETIME DEFAULT NULL COMMENT '完成时间',
  `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  UNIQUE KEY `uk_vector_task_id` (`task_id`),
  INDEX `idx_vector_task_project_status` (`project_id`, `status`),
  INDEX `idx_vector_task_user_id` (`user_id`),
  INDEX `idx_vector_task_created_at` (`created_at`),
  FOREIGN KEY (`project_id`) REFERENCES `projects`(`id`) ON DELETE CASCADE,
  FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='项目向量化任务表';
