-- 插件统计汇总表
CREATE TABLE IF NOT EXISTS t_plugin_stats (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    plugin_name VARCHAR(50) NOT NULL COMMENT '插件名称',
    command VARCHAR(50) NOT NULL COMMENT '触发的命令',
    stat_date DATE NOT NULL COMMENT '统计日期',
    total_calls INT NOT NULL DEFAULT 0 COMMENT '总调用次数',
    success_calls INT NOT NULL DEFAULT 0 COMMENT '成功调用次数',
    failed_calls INT NOT NULL DEFAULT 0 COMMENT '失败调用次数',
    group_calls INT NOT NULL DEFAULT 0 COMMENT '群聊调用次数',
    private_calls INT NOT NULL DEFAULT 0 COMMENT '私聊调用次数',
    avg_process_time FLOAT NOT NULL DEFAULT 0 COMMENT '平均处理时间(毫秒)',
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    UNIQUE KEY uk_plugin_command_date (plugin_name, command, stat_date),
    INDEX idx_stat_date (stat_date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='插件统计汇总表';

-- 用户使用统计表
CREATE TABLE IF NOT EXISTS t_user_stats (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    user_id VARCHAR(50) NOT NULL COMMENT '用户ID',
    plugin_name VARCHAR(50) NOT NULL COMMENT '插件名称',
    command VARCHAR(50) NOT NULL COMMENT '触发的命令',
    total_calls INT NOT NULL DEFAULT 0 COMMENT '总调用次数',
    success_calls INT NOT NULL DEFAULT 0 COMMENT '成功调用次数',
    failed_calls INT NOT NULL DEFAULT 0 COMMENT '失败调用次数',
    first_used_at DATETIME NOT NULL COMMENT '首次使用时间',
    last_used_at DATETIME NOT NULL COMMENT '最后使用时间',
    UNIQUE KEY uk_user_plugin_command (user_id, plugin_name, command),
    INDEX idx_user_id (user_id),
    INDEX idx_last_used_at (last_used_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户使用统计表';

-- 群组使用统计表
CREATE TABLE IF NOT EXISTS t_group_stats (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    group_id VARCHAR(50) NOT NULL COMMENT '群组ID',
    plugin_name VARCHAR(50) NOT NULL COMMENT '插件名称',
    command VARCHAR(50) NOT NULL COMMENT '触发的命令',
    total_calls INT NOT NULL DEFAULT 0 COMMENT '总调用次数',
    success_calls INT NOT NULL DEFAULT 0 COMMENT '成功调用次数',
    failed_calls INT NOT NULL DEFAULT 0 COMMENT '失败调用次数',
    unique_users INT NOT NULL DEFAULT 0 COMMENT '唯一用户数',
    first_used_at DATETIME NOT NULL COMMENT '首次使用时间',
    last_used_at DATETIME NOT NULL COMMENT '最后使用时间',
    UNIQUE KEY uk_group_plugin_command (group_id, plugin_name, command),
    INDEX idx_group_id (group_id),
    INDEX idx_last_used_at (last_used_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='群组使用统计表';

-- 错误日志表
CREATE TABLE IF NOT EXISTS t_error_logs (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    plugin_name VARCHAR(50) NOT NULL COMMENT '插件名称',
    command VARCHAR(50) NOT NULL COMMENT '触发的命令',
    user_id VARCHAR(50) NOT NULL COMMENT '用户ID',
    group_id VARCHAR(50) COMMENT '群组ID，私聊为NULL',
    error_message TEXT NOT NULL COMMENT '错误信息',
    stack_trace TEXT COMMENT '堆栈跟踪',
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    INDEX idx_plugin_name (plugin_name),
    INDEX idx_created_at (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='错误日志表';