{"code":0,"msg":"ok","data":{"service":"elderguard-api","serverTime":"2026-11-14T11:36:41.340Z","endpoints":[{"method":"GET","path":"/health","auth":"none","desc":"健康检查"},{"method":"POST","path":"/api/v1/devices/register","auth":"none","desc":"设备注册（fingerprint 幂等）"},{"method":"POST","path":"/api/v1/events","auth":"X-Device-Token","desc":"事件上报 + 推送扇出"},{"method":"POST","path":"/api/v1/locations","auth":"X-Device-Token","desc":"位置批量上报（≤100）"},{"method":"GET","path":"/api/v1/devices/medications","auth":"X-Device-Token","desc":"服药计划增量拉取（版本号）"},{"method":"GET","path":"/api/v1/devices/config","auth":"X-Device-Token","desc":"设备配置增量拉取（三级继承 global→org→device）"},{"method":"POST","path":"/api/v1/medications/sync","auth":"X-Device-Token","desc":"服药计划现场补录上报（op: upsert/delete）"},{"method":"GET","path":"/api/v1/family/elders/:elderId/medications","auth":"X-Family-Token","desc":"服药计划列表"},{"method":"POST","path":"/api/v1/family/elders/:elderId/medications","auth":"X-Family-Token","desc":"服药计划新建/更新"},{"method":"DELETE","path":"/api/v1/family/elders/:elderId/medications/:remoteId","auth":"X-Family-Token","desc":"服药计划软删除"},{"method":"POST","path":"/wxmp/push","auth":"none","desc":"兼容契约（HTTP 恒 2xx）"},{"method":"POST","path":"/api/v1/family/bind","auth":"none","desc":"家属绑定，发放 familyToken"},{"method":"GET","path":"/api/v1/family/elders/:elderId/overview","auth":"X-Family-Token","desc":"概览"},{"method":"GET","path":"/api/v1/family/elders/:elderId/medication-taken","auth":"X-Family-Token","desc":"当日服药逐条已服（S14/L-37，跨设备打卡还原）"},{"method":"GET","path":"/api/v1/family/elders/:elderId/guard-rules","auth":"X-Family-Token","desc":"守护规则目录（后端自定义规则 → 前端拉取展示，S15-A）"},{"method":"GET","path":"/api/v1/family/elders/:elderId/fence","auth":"X-Family-Token","desc":"栅栏云端开关状态（S16-A；无坐标不存半径，判定=Wi-Fi 离家链）"},{"method":"PATCH","path":"/api/v1/family/elders/:elderId/fence","auth":"X-Family-Token","desc":"栅栏开关开/关（owner/admin；viewer 403 fence_role_readonly）"},{"method":"GET","path":"/api/v1/family/elders/:elderId/events","auth":"X-Family-Token","desc":"事件流（游标分页）"},{"method":"GET","path":"/api/v1/family/elders/:elderId/track","auth":"X-Family-Token","desc":"当日轨迹"},{"method":"POST","path":"/api/v1/activity/daily","auth":"X-Device-Token","desc":"每日行为摘要上报"},{"method":"GET","path":"/api/v1/family/elders/:elderId/activity","auth":"X-Family-Token","desc":"当日行为 + N 天趋势"},{"method":"POST","path":"/api/v1/sensor/clips","auth":"X-Device-Token","desc":"事件片段上传（正/负样本）"},{"method":"POST","path":"/api/v1/wifi/states","auth":"X-Device-Token","desc":"Wi-Fi 状态批量上报（离家/归家原始态）"},{"method":"GET","path":"/api/v1/family/elders/:elderId/outings","auth":"X-Family-Token","desc":"N 天外出记录（TC-S5-14/15 消费面）"},{"method":"POST","path":"/api/v1/admin/login","auth":"none（限流）","desc":"管理后台登录，签发会话 token"},{"method":"GET","path":"/api/v1/admin/elders","auth":"Bearer","desc":"老人分页列表（组织隔离；Phase215 支持 age/online 下钻筛选）"},{"method":"GET","path":"/api/v1/admin/elders/:elderId","auth":"Bearer","desc":"老人详情 + 绑定关系"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/devices","auth":"Bearer(dash.view)","desc":"单长辈设备列表（Phase214，档案详情设备页签内嵌）"},{"method":"PUT","path":"/api/v1/admin/elders/:elderId/profile","auth":"Bearer(elder.manage)","desc":"基本信息修改（姓名）"},{"method":"PUT","path":"/api/v1/admin/elders/:elderId/org","auth":"Bearer(elder.manage,仅超管)","desc":"机构归属设置（Phase129，空串=清除，alerts 快照对齐）"},{"method":"POST","path":"/api/v1/admin/elders","auth":"Bearer(elder.manage)","desc":"机构建档（Phase206，内联配额校验，超配额 53400）"},{"method":"PUT","path":"/api/v1/admin/elders/:elderId/status","auth":"Bearer(elder.manage)","desc":"老人启停（Phase206，停用即释放负责关系与配额）"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/assignees","auth":"Bearer(assign.manage)","desc":"老人负责人员列表（Phase206）"},{"method":"POST","path":"/api/v1/admin/elders/:elderId/assignees","auth":"Bearer(assign.manage)","desc":"新增负责人员（Phase206，限本机构 org/org_staff）"},{"method":"DELETE","path":"/api/v1/admin/elders/:elderId/assignees/:adminAccountId","auth":"Bearer(assign.manage)","desc":"解除负责关系（Phase206，置 released）"},{"method":"GET","path":"/api/v1/admin/orgs","auth":"Bearer(org.manage)","desc":"机构列表（Phase206，含 used/elderTotal/userCount）"},{"method":"POST","path":"/api/v1/admin/orgs","auth":"Bearer(org.manage)","desc":"机构新增/修改（Phase206，含配额）"},{"method":"GET","path":"/api/v1/admin/org-quota","auth":"Bearer(dash.view)","desc":"本机构配额用量（Phase206，quota=0 不限额）"},{"method":"GET","path":"/api/v1/admin/alerts/summary","auth":"Bearer(alert.view)","desc":"晨检三级聚合（Phase207，今日/积压/夜间 三档严重度计数）"},{"method":"GET","path":"/api/v1/admin/alerts/:id/detail","auth":"Bearer(alert.view)","desc":"告警详情+溯源（Phase207，留痕时间线/命中台账/基线快照）"},{"method":"POST","path":"/api/v1/admin/alerts/:id/handling","auth":"Bearer(alert.handle)","desc":"开始处置（Phase207，acknowledged→handling）"},{"method":"GET","path":"/api/v1/admin/alerts/escalation-config","auth":"Bearer(alert.rule)","desc":"超时升级阈值读取（Phase207，白天/夜间独立）"},{"method":"PUT","path":"/api/v1/admin/alerts/escalation-config","auth":"Bearer(alert.rule)","desc":"超时升级阈值设置（Phase207）"},{"method":"POST","path":"/api/v1/admin/alerts/escalation/scan","auth":"Bearer(alert.handle)","desc":"超时两级升级扫描（Phase207，幂等；供 cron 复用）"},{"method":"GET","path":"/api/v1/admin/duty/panel","auth":"Bearer(alert.view)","desc":"夜间值守面板（Phase207，高危清单+交接记录）"},{"method":"POST","path":"/api/v1/admin/duty/handover","auth":"Bearer(alert.handle)","desc":"值班交接记录（Phase207）"},{"method":"GET","path":"/api/v1/admin/export","auth":"Bearer(elder.manage|alert.view)","desc":"通用导出（Phase207，kind=elders|alerts|ledger，CSV 仅聚合字段）"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/trend","auth":"Bearer(dash.view)","desc":"后台趋势页四维序列（Phase208，window=7/30/90，口径同家属端 longterm R6）"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/archive/baseline","auth":"Bearer(dash.view)","desc":"行为基线卡（Phase208，30 日中心/离散±低高 + 今日 z 偏离 + 月度节奏）"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/archive/service-history","auth":"Bearer(dash.view)","desc":"服务履历卡（Phase208，告警 + 工单留痕合并时间线）"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/comm-notes","auth":"Bearer(dash.view)","desc":"沟通留痕列表（Phase208）"},{"method":"POST","path":"/api/v1/admin/elders/:elderId/comm-notes","auth":"Bearer(alert.handle)","desc":"沟通留痕新增（Phase208，电话/上门/观察/其他）"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/summary","auth":"Bearer(dash.view)","desc":"自动小结（Phase208，模板化设备事实 + 免责声明常驻）"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/family-activity","auth":"Bearer(dash.view)","desc":"家属活跃观察（Phase208，最近活跃天数 + 长期沉默标黄）"},{"method":"GET","path":"/api/v1/admin/alerts/heatmap","auth":"Bearer(alert.view)","desc":"告警热力图（Phase208，老人 × 24 时段密度）"},{"method":"GET","path":"/api/v1/admin/care-plan-library","auth":"Bearer(dash.view)","desc":"照护方案库列表（Phase209）"},{"method":"POST","path":"/api/v1/admin/care-plan-library","auth":"Bearer(elder.manage)","desc":"照护方案库新增/修改（Phase209）"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/care-plans","auth":"Bearer(dash.view)","desc":"长辈照护方案列表（Phase209）"},{"method":"POST","path":"/api/v1/admin/elders/:elderId/care-plans","auth":"Bearer(alert.handle)","desc":"套用照护方案（Phase209，方案库/自定义落 care_plans）"},{"method":"POST","path":"/api/v1/admin/care-plans/:id/close","auth":"Bearer(alert.handle)","desc":"关闭照护方案（Phase209）"},{"method":"GET","path":"/api/v1/admin/care-plans/:id/records","auth":"Bearer(dash.view)","desc":"方案执行记录列表（Phase209）"},{"method":"POST","path":"/api/v1/admin/care-plans/:id/records","auth":"Bearer(alert.handle)","desc":"方案执行留痕（Phase209，联系/上门/观察/其他）"},{"method":"GET","path":"/api/v1/admin/care-plans/:id/effect","auth":"Bearer(dash.view)","desc":"方案效果回看（Phase209，前 14 天 vs 后 14 天同口径对比）"},{"method":"GET","path":"/api/v1/admin/orgs/:code/marketing-consent","auth":"Bearer(marketing.view)","desc":"机构营销告知开关读取（Phase210，T3.6 门控）"},{"method":"PUT","path":"/api/v1/admin/orgs/:code/marketing-consent","auth":"Bearer(marketing.manage)","desc":"机构营销告知开关设置（Phase210，默认关 R1）"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/tags","auth":"Bearer(dash.view)","desc":"长辈标签（Phase210，近 N 日命中聚合 + 触发指标值）"},{"method":"POST","path":"/api/v1/admin/marketing/tags/scan","auth":"Bearer(marketing.manage)","desc":"标签扫描（Phase210，幂等按日；cron 每日触发）"},{"method":"GET","path":"/api/v1/admin/tag-catalog","auth":"Bearer(marketing.view)","desc":"服务目录列表（Phase210，T3.2）"},{"method":"POST","path":"/api/v1/admin/tag-catalog","auth":"Bearer(marketing.manage)","desc":"服务目录维护（Phase210，敏感类目默认禁推 R7）"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/profile","auth":"Bearer(marketing.view)","desc":"老人画像页（Phase210，标签/摘要/建议/跟进/触达）"},{"method":"GET","path":"/api/v1/admin/marketing/cohorts","auth":"Bearer(marketing.view)","desc":"客群筛选脱敏名单（Phase210，无坐标轨迹）"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/touches","auth":"Bearer(marketing.view)","desc":"触达历史（Phase211）"},{"method":"POST","path":"/api/v1/admin/elders/:elderId/touches","auth":"Bearer(marketing.manage)","desc":"触达登记（Phase211，R1 未开启告知拒绝）"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/touches/effect","auth":"Bearer(marketing.view)","desc":"触达效果回看（Phase211，前后 30 天订阅变化）"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/track","auth":"Bearer","desc":"当日轨迹"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/medications","auth":"Bearer","desc":"服药计划（含 createdBy）"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/adherence","auth":"Bearer","desc":"N 天依从率"},{"method":"GET","path":"/api/v1/admin/devices","auth":"Bearer","desc":"设备列表（在线判定）"},{"method":"GET","path":"/api/v1/admin/events","auth":"Bearer","desc":"事件查询（type/from/to）"},{"method":"GET","path":"/api/v1/admin/notify-logs","auth":"Bearer","desc":"推送流水（status 过滤）"},{"method":"GET","path":"/api/v1/admin/elders/:elderId/forecast","auth":"Bearer","desc":"时序预测内部验证（TC-S8-05，internalOnly，不对外宣称）"},{"method":"POST","path":"/api/v1/admin/elders/:elderId/reports/generate","auth":"Bearer","desc":"健康周报生成（TC-S8-06，weekStart 需周一）"},{"method":"GET","path":"/api/v1/family/elders/:elderId/reports","auth":"X-Family-Token","desc":"健康周报列表"},{"method":"GET","path":"/api/v1/family/elders/:elderId/reports/:reportId","auth":"X-Family-Token","desc":"健康周报内容（TC-S8-07 四维/趋势/异常/建议）"},{"method":"GET","path":"/api/v1/family/elders/:elderId/reports/:reportId/pdf","auth":"X-Family-Token","desc":"健康周报 PDF 下载"},{"method":"POST","path":"/api/v1/app/auth/wechat","auth":"none","desc":"微信登录（unionid 幂等建号+签发账号 token）"},{"method":"GET","path":"/api/v1/app/me","auth":"X-Account-Token","desc":"账号上下文（S9-A）"},{"method":"POST","path":"/api/v1/app/elders/:elderId/claim","auth":"X-Account-Token","desc":"账号认领老人档案（换机恢复；body.deviceId 可选 → 标记其他设备降级）"},{"method":"POST","path":"/api/v1/app/bindings/merge","auth":"X-Account-Token","desc":"既有绑定归并到账号（S9-D：role 收口鉴权锚点+换机恢复）"},{"method":"GET","path":"/api/v1/app/bindings","auth":"X-Account-Token","desc":"我的绑定列表（账号维度归并视图）"},{"method":"POST","path":"/api/v1/app/relations/guard","auth":"X-Account-Token","desc":"建立守护关系（guard，notify_prefs 独立开关）"},{"method":"PATCH","path":"/api/v1/app/relations/:relationId","auth":"X-Account-Token","desc":"更新关系（通知开关/角色/撤回）"},{"method":"GET","path":"/api/v1/app/relations","auth":"X-Account-Token","desc":"我的守护关系列表"},{"method":"POST","path":"/api/v1/app/logout","auth":"X-Account-Token","desc":"账号登出（作废 token）"},{"method":"POST","path":"/api/v1/app/relations/invites","auth":"X-Account-Token","desc":"生成关系邀请码（S9-B，供扫码/输码建关系）"},{"method":"POST","path":"/api/v1/app/relations/invites/accept","auth":"X-Account-Token","desc":"接受邀请码 → 建立守护关系（扫码落点）"},{"method":"GET","path":"/api/v1/app/relations/invites","auth":"X-Account-Token","desc":"我发出的邀请列表（?elderId= 过滤）"},{"method":"DELETE","path":"/api/v1/app/relations/invites/:code","auth":"X-Account-Token","desc":"撤销邀请码"},{"method":"GET","path":"/api/v1/app/relations/:relationId/notify-prefs","auth":"X-Account-Token","desc":"通知偏好（生效值+默认值+类目清单）"},{"method":"PATCH","path":"/api/v1/app/relations/:relationId/notify-prefs","auth":"X-Account-Token","desc":"更新通知偏好（合并语义）"},{"method":"POST","path":"/api/v1/app/relations/:relationId/notify-prefs/reset","auth":"X-Account-Token","desc":"通知偏好恢复默认"},{"method":"POST","path":"/api/v1/admin/relations/offline-scan","auth":"Bearer（作业，幂等可重跑）","desc":"离线提醒家人扫描（S9-B，落 relation_notify_log；S9-E 支持按守护圈告警联系人收口）"},{"method":"GET","path":"/api/v1/app/elders/:elderId/circle","auth":"X-Account-Token","desc":"守护圈信息+成员视图（S9-E：成员=该老人全部守护关系，可自定义家庭/机构/团队名）"},{"method":"PATCH","path":"/api/v1/app/elders/:elderId/circle","auth":"X-Account-Token","desc":"守护圈配置：改圈名 / 设·清告警联系人（统一告警指向成员）"},{"method":"GET","path":"/api/v1/app/relations/:relationId/entitlements","auth":"X-Account-Token","desc":"关系级权益（关系订阅优先，回落 elder 级）"},{"method":"POST","path":"/api/v1/admin/relations/:relationId/subscriptions/grant","auth":"Bearer","desc":"关系级订阅授权（days/source=stub|wxpay）"},{"method":"GET","path":"/api/v1/family/elders/:elderId/subscription","auth":"X-Family-Token","desc":"订阅状态（洞察版，引导页数据面）"},{"method":"POST","path":"/api/v1/admin/elders/:elderId/subscriptions/grant","auth":"Bearer","desc":"订阅授权（stub 验收桩 / wxpay 回调预留）"},{"method":"GET","path":"/api/v1/app/guard/teams/me","auth":"X-Account-Token","desc":"我的团体/申请速览（团体版入口）"},{"method":"POST","path":"/api/v1/app/guard/team-applications","auth":"X-Account-Token","desc":"提交团体开通申请（运营审核）"},{"method":"GET","path":"/api/v1/app/guard/team-applications/mine","auth":"X-Account-Token","desc":"我的团体申请状态（含驳回原因）"},{"method":"POST","path":"/api/v1/app/guard/teams/join","auth":"X-Account-Token（限频 10/min）","desc":"凭团队ID 查团体摘要+组列表"},{"method":"GET","path":"/api/v1/app/guard/groups","auth":"X-Account-Token","desc":"我相关的守护组（含值班摘要/待审批数）"},{"method":"POST","path":"/api/v1/app/guard/teams/:teamId/groups","auth":"X-Account-Token","desc":"建守护组（仅团体创建者）"},{"method":"GET","path":"/api/v1/app/guard/groups/:id","auth":"X-Account-Token","desc":"守护组详情（成员/长辈/值班/权限标志）"},{"method":"PATCH","path":"/api/v1/app/guard/groups/:id","auth":"X-Account-Token","desc":"守护组改名（组长/管理员）"},{"method":"DELETE","path":"/api/v1/app/guard/groups/:id","auth":"X-Account-Token","desc":"解散守护组（仅组长；回收 group 来源关系）"},{"method":"POST","path":"/api/v1/app/guard/groups/:id/apply","auth":"X-Account-Token","desc":"申请加入守护组"},{"method":"POST","path":"/api/v1/app/guard/groups/:id/leave","auth":"X-Account-Token","desc":"退出守护组（组长不可直接退）"},{"method":"GET","path":"/api/v1/app/guard/groups/:id/applicants","auth":"X-Account-Token","desc":"待审批申请人列表（组长/管理员）"},{"method":"POST","path":"/api/v1/app/guard/groups/:id/elders","auth":"X-Account-Token","desc":"添加长辈入组（须本人已守护该长辈）"},{"method":"DELETE","path":"/api/v1/app/guard/groups/:id/elders/:elderId","auth":"X-Account-Token","desc":"移出长辈（仅删本组来源关系）"},{"method":"POST","path":"/api/v1/app/guard/groups/:id/members/:accountId/review","auth":"X-Account-Token","desc":"审批入组（通过=建 group 关系 / 驳回=写原因）"},{"method":"DELETE","path":"/api/v1/app/guard/groups/:id/members/:accountId","auth":"X-Account-Token","desc":"移出成员（不能移组长）"},{"method":"POST","path":"/api/v1/app/guard/groups/:id/members/:accountId/role","auth":"X-Account-Token","desc":"调整组内身份（管理员/守护者）"},{"method":"POST","path":"/api/v1/app/guard/groups/:id/duty","auth":"X-Account-Token","desc":"切换值班（缺省=全员接收）"},{"method":"GET","path":"/api/v1/app/guard/groups/:id/duty/history","auth":"X-Account-Token","desc":"值班切换历史"},{"method":"GET","path":"/api/v1/app/guard/quota","auth":"X-Account-Token","desc":"direct 守护关系配额（个人版 2 位）"},{"method":"GET","path":"/api/v1/admin/team-applications","auth":"Bearer","desc":"团体开通申请列表（status 过滤）"},{"method":"POST","path":"/api/v1/admin/team-applications/:id/review","auth":"Bearer","desc":"团体申请审核（通过则生成团队ID）"}]}}