sync from WSL host: latest openclaw config update

This commit is contained in:
2026-07-14 16:58:43 +08:00
parent 4ca178cb25
commit 8865fb5aa7
339 changed files with 80661 additions and 21261 deletions
@@ -0,0 +1,139 @@
-- ================================================================
-- Fitness Agent 健康管理模块 - 数据库迁移脚本
-- 新增:体检报告、异常指标、禁忌规则、安全预警、复查提醒
-- ================================================================
-- 1. 体检报告记录表
CREATE TABLE IF NOT EXISTS health_checkups (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
user_id VARCHAR(50) NOT NULL COMMENT '用户标识',
checkup_date DATE NOT NULL COMMENT '体检日期',
hospital VARCHAR(100) DEFAULT '' COMMENT '体检机构/医院',
summary TEXT COMMENT '体检总结/结论',
overall_status ENUM('正常','基本正常','异常','需复查') DEFAULT '基本正常' COMMENT '总体评价',
report_file VARCHAR(255) DEFAULT '' COMMENT '报告文件路径/URL',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_user_date (user_id, checkup_date DESC),
INDEX idx_status (user_id, overall_status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='体检报告记录';
-- 2. 异常指标记录表
CREATE TABLE IF NOT EXISTS health_abnormal_indicators (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
user_id VARCHAR(50) NOT NULL COMMENT '用户标识',
checkup_id BIGINT DEFAULT NULL COMMENT '关联体检报告ID',
indicator_name VARCHAR(100) NOT NULL COMMENT '指标名称(如:总胆固醇、尿酸、ALT',
indicator_category VARCHAR(50) NOT NULL COMMENT '指标分类(血常规/肝功能/肾功能/血脂/血糖/尿酸/血压/其他)',
result_value VARCHAR(100) NOT NULL COMMENT '检测结果值',
unit VARCHAR(30) DEFAULT '' COMMENT '单位(如:mmol/L、μmol/L',
normal_range VARCHAR(100) DEFAULT '' COMMENT '正常参考范围',
deviation ENUM('偏高','偏低','临界偏高','临界偏低') NOT NULL COMMENT '偏离方向',
severity ENUM('注意','警示','危险') DEFAULT '注意' COMMENT '严重程度',
status ENUM('待处理','观察中','已复查','已正常','需持续关注') DEFAULT '待处理' COMMENT '处理状态',
doctor_advice TEXT COMMENT '医生建议',
ai_analysis TEXT COMMENT 'AI分析解读',
first_detected DATE NOT NULL COMMENT '首次发现日期',
resolved_date DATE DEFAULT NULL COMMENT '恢复正常日期',
note TEXT COMMENT '备注',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_user_indicator (user_id, indicator_name),
INDEX idx_user_status (user_id, status),
INDEX idx_severity (user_id, severity),
INDEX idx_checkup (checkup_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='异常指标记录';
-- 3. 用户禁忌规则表
CREATE TABLE IF NOT EXISTS health_restrictions (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
user_id VARCHAR(50) NOT NULL COMMENT '用户标识',
indicator_id BIGINT DEFAULT NULL COMMENT '关联异常指标ID(可为空,表示通用禁忌)',
restriction_type ENUM('饮食','运动','作息','用药','其他') NOT NULL COMMENT '禁忌类型',
rule_name VARCHAR(100) NOT NULL COMMENT '规则名称(如:高嘌呤食物、剧烈运动)',
forbidden_items TEXT NOT NULL COMMENT '禁忌清单(JSON数组或逗号分隔)',
reason TEXT COMMENT '禁忌原因',
start_date DATE NOT NULL COMMENT '生效日期',
end_date DATE DEFAULT NULL COMMENT '失效日期(NULL=长期有效)',
priority ENUM('','','','紧急') DEFAULT '' COMMENT '优先级',
is_active TINYINT(1) DEFAULT 1 COMMENT '是否生效',
violation_consequence TEXT COMMENT '违反后果说明',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_user_active (user_id, is_active),
INDEX idx_indicator (indicator_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户禁忌规则';
-- 4. 安全预警日志表
CREATE TABLE IF NOT EXISTS health_alerts (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
user_id VARCHAR(50) NOT NULL COMMENT '用户标识',
indicator_id BIGINT DEFAULT NULL COMMENT '关联异常指标ID',
alert_type ENUM('饮食违规','运动风险','指标恶化','复查逾期','禁忌冲突','综合预警') NOT NULL COMMENT '预警类型',
severity ENUM('提示','警告','危险') NOT NULL COMMENT '严重级别',
title VARCHAR(200) NOT NULL COMMENT '预警标题',
detail TEXT NOT NULL COMMENT '预警详情',
related_context TEXT COMMENT '相关上下文(JSON',
action_required VARCHAR(500) DEFAULT '' COMMENT '建议操作',
status ENUM('未处理','已处理','已忽略') DEFAULT '未处理' COMMENT '处理状态',
resolved_at TIMESTAMP NULL DEFAULT NULL COMMENT '处理时间',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_user_status (user_id, status),
INDEX idx_severity (severity),
INDEX idx_created (created_at DESC)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='安全预警日志';
-- 5. 复查提醒表
CREATE TABLE IF NOT EXISTS health_reminders (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
user_id VARCHAR(50) NOT NULL COMMENT '用户标识',
indicator_id BIGINT DEFAULT NULL COMMENT '关联异常指标ID',
reminder_type ENUM('复查提醒','复诊提醒','用药提醒','生活调整','其他') NOT NULL COMMENT '提醒类型',
title VARCHAR(200) NOT NULL COMMENT '提醒标题',
description TEXT COMMENT '提醒内容',
due_date DATE NOT NULL COMMENT '预计执行日期',
remind_before_days INT DEFAULT 3 COMMENT '提前提醒天数',
repeat_interval ENUM('不重复','每周','每月','每季度','每半年','每年') DEFAULT '不重复' COMMENT '重复周期',
repeat_count INT DEFAULT 0 COMMENT '已重复次数',
max_repeats INT DEFAULT 0 COMMENT '最大重复次数(0=不限)',
status ENUM('待执行','已执行','已过期','已取消') DEFAULT '待执行' COMMENT '执行状态',
completed_at TIMESTAMP NULL DEFAULT NULL COMMENT '实际完成时间',
result TEXT COMMENT '执行结果/复查结论',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_user_due (user_id, due_date),
INDEX idx_user_status (user_id, status),
INDEX idx_due_date (due_date, status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='复查提醒';
-- 6. 指标变化追踪表(用于趋势分析)
CREATE TABLE IF NOT EXISTS health_indicator_trends (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
user_id VARCHAR(50) NOT NULL COMMENT '用户标识',
indicator_name VARCHAR(100) NOT NULL COMMENT '指标名称',
indicator_category VARCHAR(50) NOT NULL COMMENT '指标分类',
record_date DATE NOT NULL COMMENT '检测日期',
result_value VARCHAR(100) NOT NULL COMMENT '检测值',
unit VARCHAR(30) DEFAULT '' COMMENT '单位',
normal_range VARCHAR(100) DEFAULT '' COMMENT '参考范围',
source ENUM('体检报告','自主检测','医院就诊') DEFAULT '体检报告' COMMENT '数据来源',
note VARCHAR(255) DEFAULT '' COMMENT '备注',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_user_indicator (user_id, indicator_name, record_date),
UNIQUE KEY uk_user_indicator_date (user_id, indicator_name, record_date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='指标变化追踪';
-- 7. 用户异常指标概要表(汇总最新状态)
CREATE TABLE IF NOT EXISTS user_health_summary (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id VARCHAR(50) NOT NULL UNIQUE COMMENT '用户标识',
abnormal_count INT DEFAULT 0 COMMENT '当前异常指标数',
critical_count INT DEFAULT 0 COMMENT '高危指标数',
pending_reminders INT DEFAULT 0 COMMENT '待处理提醒数',
active_restrictions INT DEFAULT 0 COMMENT '生效禁忌数',
last_checkup_date DATE DEFAULT NULL COMMENT '最近体检日期',
last_review_at TIMESTAMP NULL DEFAULT NULL COMMENT '最近AI审核时间',
overall_risk_level ENUM('','','') DEFAULT '' COMMENT '综合风险等级',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户健康概要';