-- 账户活跃度表
CREATE TABLE external_user_activity (
    -- 基础信息
    id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID，自增长',
    out_user_id VARCHAR(100) NOT NULL COMMENT '外部用户ID，唯一标识外部平台用户',
    platform VARCHAR(50) NOT NULL COMMENT '平台名称，如：youtube、wechat、xiaoniangao等',
    strategy VARCHAR(100) DEFAULT '' COMMENT '爬虫策略，如：author、recommend等',

    -- 爬取统计信息（核心指标）
    total_videos INT UNSIGNED DEFAULT 0 COMMENT '历史总爬取视频数，该用户在平台上所有视频总数',
    recent_30d_videos INT UNSIGNED DEFAULT 0 COMMENT '近30天爬取视频数，反映中期活跃度',
    recent_7d_videos INT UNSIGNED DEFAULT 0 COMMENT '近7天爬取视频数，反映短期活跃度',

    -- 活跃度信息
    activity_level VARCHAR(20) DEFAULT '未知' COMMENT '活跃度级别：新用户、极高活跃、高活跃、中活跃、低活跃、休眠、僵尸',
    priority_level TINYINT DEFAULT 5 COMMENT '爬虫优先级：0-新用户(最高)，1-极高活跃，2-高活跃，3-中活跃，4-低活跃，5-休眠，6-僵尸(最低)',
    is_active TINYINT(1) DEFAULT 1 COMMENT '是否活跃：0-不活跃，1-活跃',
    is_new_user TINYINT(1) DEFAULT 0 COMMENT '是否新用户：0-非新用户，1-新用户',

    -- 时间信息
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间，首次插入时自动设置',
    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录更新时间，每次更新时自动更新',

    -- 主键和索引
    PRIMARY KEY (id) COMMENT '主键索引',
    UNIQUE KEY uk_out_user_platform (out_user_id, platform, strategy) COMMENT '唯一索引，确保同一平台、策略下的用户唯一',
    KEY idx_priority_level (priority_level) COMMENT '优先级索引，用于按优先级排序查询',
    KEY idx_activity_level (activity_level) COMMENT '活跃度级别索引，用于按级别分组统计',
    KEY idx_is_new_user (is_new_user) COMMENT '新用户标识索引，快速筛选新用户',
    KEY idx_recent_7d_videos (recent_7d_videos DESC) COMMENT '核心指标索引，降序排列',
    KEY idx_activity_composite (priority_level, recent_7d_videos DESC) COMMENT '复合索引，优化调度查询'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账户活跃度管理表，存储外部账户的活跃度信息和爬虫调度优先级';