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

CREATE TABLE `kku_task_tasks` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
  `category_id` int NOT NULL COMMENT '任务分类ID，外键关联task_categories表',
  `name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '任务名称',
  `description` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '任务描述',
  `type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '任务类型（daily, weekly, achievement, event, tutorial, team）',
  `prerequisite_tasks` json DEFAULT NULL COMMENT '前置任务ID（JSON格式）',
  `level_required` int NOT NULL DEFAULT '0' COMMENT '所需等级',
  `time_limit` int DEFAULT NULL COMMENT '时间限制（秒，NULL表示无限制）',
  `max_completions` int NOT NULL DEFAULT '1' COMMENT '最大完成次数（用于限制任务可完成的次数）',
  `reset_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'none' COMMENT '重置类型（none, daily, weekly, monthly）',
  `display_params` json DEFAULT NULL COMMENT '显示参数（JSON格式，存储与任务显示相关的参数）',
  `sort_order` int NOT NULL DEFAULT '0' COMMENT '排序权重（数值越大越靠前）',
  `is_active` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否激活（0:否, 1:是）',
  `start_time` timestamp NULL DEFAULT NULL COMMENT '开始时间（NULL表示立即开始）',
  `end_time` timestamp NULL DEFAULT NULL COMMENT '结束时间（NULL表示永不结束）',
  `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  `reset_interval` int NOT NULL DEFAULT '0' COMMENT '重置间隔（秒），根据重置类型自动计算',
  `reset_time_field` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '重置时间字段，如"daily_reset_time"，用于存储具体重置时间点',
  PRIMARY KEY (`id`),
  KEY `idx_category` (`category_id`),
  KEY `idx_type` (`type`),
  KEY `idx_active_time` (`is_active`,`start_time`,`end_time`),
  KEY `idx_sort` (`sort_order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务定义表';
