-- ******************************************************************
-- 表 kku_task_user_tasks 的创建SQL
-- 对应的Model: App\Module\Task\Models\TaskUserTask
-- 警告: 此文件由系统自动生成，禁止修改！
-- ******************************************************************

CREATE TABLE `kku_task_user_tasks` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` int NOT NULL COMMENT '用户ID',
  `task_id` int NOT NULL COMMENT '任务ID，外键关联task_tasks表',
  `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态（0:未接取, 1:进行中, 2:已完成, 3:已领取奖励, 4:已失败, 5:已过期）',
  `progress` int NOT NULL DEFAULT '0' COMMENT '当前进度',
  `completed_at` timestamp NULL DEFAULT NULL COMMENT '完成时间',
  `rewarded_at` timestamp NULL DEFAULT NULL COMMENT '奖励发放时间',
  `expire_at` timestamp NULL DEFAULT NULL COMMENT '过期时间',
  `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  `next_reset_time` timestamp NULL DEFAULT NULL COMMENT '下次重置时间，用于快速判断是否需要重置',
  `last_reset_time` timestamp NULL DEFAULT NULL COMMENT '上次重置时间，用于计算下次重置时间',
  `reset_count` int NOT NULL DEFAULT '0' COMMENT '重置次数，用于统计和分析',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `idx_user_task` (`user_id`,`task_id`) USING BTREE,
  KEY `idx_user_status` (`user_id`,`status`) USING BTREE,
  KEY `idx_task` (`task_id`) USING BTREE,
  KEY `idx_expire` (`expire_at`) USING BTREE,
  KEY `idx_next_reset_time` (`next_reset_time`) USING BTREE,
  KEY `idx_user_next_reset` (`user_id`,`next_reset_time`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户任务关联表';
