-- 创建用户活跃记录表
CREATE TABLE IF NOT EXISTS `t_user_activities` (
  `id` int NOT NULL AUTO_INCREMENT,
  `userId` varchar(255) NOT NULL COMMENT '用户ID',
  `activityType` tinyint NOT NULL COMMENT '活跃类型：1-登录，2-训练，3-饮食记录，4-体重记录，5-资料更新，6-打卡',
  `activityDate` date NOT NULL COMMENT '活跃日期 YYYY-MM-DD',
  `level` tinyint NOT NULL DEFAULT 1 COMMENT '活跃等级：0-无活跃，1-低活跃，2-中活跃，3-高活跃',
  `remark` text COMMENT '备注信息',
  `createdAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updatedAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `unique_user_activity_date_type` (`userId`, `activityDate`, `activityType`),
  KEY `idx_user_activity_date` (`userId`, `activityDate`),
  KEY `idx_activity_date` (`activityDate`),
  -- 添加枚举约束
  CONSTRAINT `chk_activity_type` CHECK (`activityType` IN (1, 2, 3, 4, 5, 6)),
  CONSTRAINT `chk_activity_level` CHECK (`level` IN (0, 1, 2, 3))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户活跃记录表';

-- 创建索引以优化查询性能
CREATE INDEX IF NOT EXISTS `idx_user_activity_level` ON `user_activities` (`userId`, `activityDate`, `level`);

-- 枚举值说明
-- activityType 枚举值：
-- 1: 登录 (LOGIN)
-- 2: 训练 (WORKOUT)
-- 3: 饮食记录 (DIET_RECORD)
-- 4: 体重记录 (WEIGHT_RECORD)
-- 5: 资料更新 (PROFILE_UPDATE)
-- 6: 打卡 (CHECKIN)

-- level 枚举值：
-- 0: 无活跃 (NONE)
-- 1: 低活跃 (LOW)
-- 2: 中活跃 (MEDIUM)
-- 3: 高活跃 (HIGH)
