{"openapi":"3.0.1","info":{"title":"CoolNote API","description":"CoolNote REST API。文档：/doc.html（Knife4j）。运营台：/admin 或 /coolnote/ops/console/login.html。分组：all / client / admin / legacy。","version":"v1"},"servers":[{"url":"/","description":"relative"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"管理-关于页","description":"运营配置 App 关于页文案"},{"name":"管理-反馈","description":"运营管理台反馈接口（需管理员 JWT）"},{"name":"管理-登录日志","description":"运营管理台接口（需管理员 JWT）"},{"name":"分类","description":"笔记分类管理"},{"name":"认证","description":"登录、注册与邮箱验证码（验证码必须带 purpose）"},{"name":"管理-广告","description":"运营管理台接口（需管理员 JWT）"},{"name":"助手","description":"词条与诗词辅助内容"},{"name":"分析事件","description":"客户端埋点上报（需登录）"},{"name":"管理-激活码","description":"会员激活码生成与查询（需管理员 JWT）"},{"name":"管理-版本更新","description":"运营管理台 App 版本发布（需管理员 JWT）"},{"name":"同步","description":"客户端同步 Blob 读写"},{"name":"管理-用户","description":"运营管理台接口（需管理员 JWT）"},{"name":"管理-统计","description":"运营管理台统计接口（需管理员 JWT）"},{"name":"会员激活码","description":"用户兑换会员激活码"},{"name":"管理-洞察","description":"运营管理台接口（需管理员 JWT）"},{"name":"管理-笔记","description":"运营管理台接口（需管理员 JWT）"},{"name":"风格","description":"主题风格浏览与提交"},{"name":"管理-会话","description":"当前登录管理员角色与权限"},{"name":"管理-邮件","description":"运营管理台接口（需管理员 JWT）"},{"name":"Legacy认证","description":"旧版 /say/api 认证接口（表单/查询参数）"},{"name":"赞赏","description":"App 赞赏页公开配置"},{"name":"会员","description":"套餐与权益"},{"name":"管理-待办","description":"运营管理台接口（需管理员 JWT）"},{"name":"用户","description":"当前用户资料与密码"},{"name":"内部-风格","description":"运维令牌同步推荐风格（无需登录 JWT）"},{"name":"文件","description":"上传与下载"},{"name":"启动通知","description":"冷启动一次拉取：反馈答复 / 版本更新 / 活动"},{"name":"待办","description":"待办 CRUD 与批量删除"},{"name":"管理-风格","description":"运营管理台接口（需管理员 JWT）"},{"name":"管理-同步","description":"运营管理台接口（需管理员 JWT）"},{"name":"管理-分享","description":"运营管理台接口（需管理员 JWT）"},{"name":"未来信","description":"登录用户给自己邮箱定时投递信件"},{"name":"管理-应用配置","description":"App 运行时参数"},{"name":"证件照","description":"人像抠图（rembg u2netp），底色/尺寸/排版由客户端合成"},{"name":"Legacy分享","description":"旧版 /say/api 分享接口，表单参数 + BasResponse 形态"},{"name":"管理-活动","description":"App 启动活动信息（需管理员 JWT）"},{"name":"笔记","description":"笔记 CRUD 与批量操作"},{"name":"管理-审计","description":"运营管理台审计日志（需管理员 JWT）"},{"name":"文档扫描","description":"轻量透视拉正 + 扫描增强（不含 OCR）"},{"name":"反馈","description":"用户反馈接口（需登录）"},{"name":"邮件","description":"管理员即时发送与定时入队（禁止普通用户当中继）"},{"name":"分享","description":"分享内容管理（列表/改删仅限本人）"},{"name":"关于页","description":"App 关于酷记事公开内容"},{"name":"管理-赞赏","description":"运营配置 App 赞赏页"},{"name":"健康检查","description":"服务存活探测"},{"name":"图片识别","description":"RapidOCR 文字识别（接口内直接调用）"},{"name":"App 版本","description":"客户端版本检查（公开）"},{"name":"内部-部署","description":"运维令牌热部署 jar（无需登录 JWT）"},{"name":"会员支付","description":"支付宝下单 / 查单 / 示例模拟支付"}],"paths":{"/say/api/getShare":{"get":{"tags":["Legacy分享"],"summary":"获取分享列表（aid+type 筛选；state 默认 1）","operationId":"getShare","parameters":[{"name":"aid","in":"query","description":"应用标识","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","description":"分享类型","required":false,"schema":{"type":"string"}},{"name":"state","in":"query","description":"状态，默认 1","required":false,"schema":{"type":"string"}},{"name":"ti","in":"query","description":"时间戳校验参数","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LegacyResponse"}}}}}},"post":{"tags":["Legacy分享"],"summary":"获取分享列表（aid+type 筛选；state 默认 1）","operationId":"getShare_1","parameters":[{"name":"aid","in":"query","description":"应用标识","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","description":"分享类型","required":false,"schema":{"type":"string"}},{"name":"state","in":"query","description":"状态，默认 1","required":false,"schema":{"type":"string"}},{"name":"ti","in":"query","description":"时间戳校验参数","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LegacyResponse"}}}}}}},"/say/api/delectShare":{"get":{"tags":["Legacy分享"],"summary":"删除一条分享","operationId":"delectShare","parameters":[{"name":"id","in":"query","description":"分享 ID","required":false,"schema":{"type":"string"}},{"name":"ti","in":"query","description":"时间戳校验参数","required":false,"schema":{"type":"string"}},{"name":"aid","in":"query","description":"应用标识","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LegacyResponse"}}}}}},"post":{"tags":["Legacy分享"],"summary":"删除一条分享","operationId":"delectShare_1","parameters":[{"name":"id","in":"query","description":"分享 ID","required":false,"schema":{"type":"string"}},{"name":"ti","in":"query","description":"时间戳校验参数","required":false,"schema":{"type":"string"}},{"name":"aid","in":"query","description":"应用标识","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LegacyResponse"}}}}}}},"/say/api/addShare":{"get":{"tags":["Legacy分享"],"summary":"添加分享内容","operationId":"addShare","parameters":[{"name":"type","in":"query","description":"分享类型","required":false,"schema":{"type":"string"}},{"name":"aid","in":"query","description":"应用标识","required":false,"schema":{"type":"string"}},{"name":"data","in":"query","description":"分享数据","required":false,"schema":{"type":"string"}},{"name":"ti","in":"query","description":"时间戳校验参数","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LegacyResponse"}}}}}},"post":{"tags":["Legacy分享"],"summary":"添加分享内容","operationId":"addShare_1","parameters":[{"name":"type","in":"query","description":"分享类型","required":false,"schema":{"type":"string"}},{"name":"aid","in":"query","description":"应用标识","required":false,"schema":{"type":"string"}},{"name":"data","in":"query","description":"分享数据","required":false,"schema":{"type":"string"}},{"name":"ti","in":"query","description":"时间戳校验参数","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LegacyResponse"}}}}}}},"/say/api/UpShareState":{"get":{"tags":["Legacy分享"],"summary":"更新分享状态为已生效(1)","operationId":"upShareState","parameters":[{"name":"id","in":"query","description":"分享 ID","required":false,"schema":{"type":"string"}},{"name":"ti","in":"query","description":"时间戳校验参数","required":false,"schema":{"type":"string"}},{"name":"aid","in":"query","description":"应用标识","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LegacyResponse"}}}}}},"post":{"tags":["Legacy分享"],"summary":"更新分享状态为已生效(1)","operationId":"upShareState_1","parameters":[{"name":"id","in":"query","description":"分享 ID","required":false,"schema":{"type":"string"}},{"name":"ti","in":"query","description":"时间戳校验参数","required":false,"schema":{"type":"string"}},{"name":"aid","in":"query","description":"应用标识","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LegacyResponse"}}}}}}},"/say/api/UpShareNum":{"get":{"tags":["Legacy分享"],"summary":"分享使用次数 +1","operationId":"upShareNum","parameters":[{"name":"id","in":"query","description":"分享 ID","required":false,"schema":{"type":"string"}},{"name":"ti","in":"query","description":"时间戳校验参数","required":false,"schema":{"type":"string"}},{"name":"aid","in":"query","description":"应用标识","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LegacyResponse"}}}}}},"post":{"tags":["Legacy分享"],"summary":"分享使用次数 +1","operationId":"upShareNum_1","parameters":[{"name":"id","in":"query","description":"分享 ID","required":false,"schema":{"type":"string"}},{"name":"ti","in":"query","description":"时间戳校验参数","required":false,"schema":{"type":"string"}},{"name":"aid","in":"query","description":"应用标识","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LegacyResponse"}}}}}}},"/say/api/login":{"get":{"tags":["Legacy认证"],"summary":"登录（兼容）","operationId":"login","parameters":[{"name":"email","in":"query","description":"邮箱","required":false,"schema":{"type":"string"}},{"name":"code","in":"query","description":"验证码","required":false,"schema":{"type":"string"}},{"name":"pass","in":"query","description":"密码","required":false,"schema":{"type":"string"}},{"name":"aid","in":"query","description":"应用标识","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LegacyResponse"}}}}}},"post":{"tags":["Legacy认证"],"summary":"登录（兼容）","operationId":"login_1","parameters":[{"name":"email","in":"query","description":"邮箱","required":false,"schema":{"type":"string"}},{"name":"code","in":"query","description":"验证码","required":false,"schema":{"type":"string"}},{"name":"pass","in":"query","description":"密码","required":false,"schema":{"type":"string"}},{"name":"aid","in":"query","description":"应用标识","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LegacyResponse"}}}}}}},"/say/api/getCodeByEmail":{"get":{"tags":["Legacy认证"],"summary":"发送邮箱验证码（兼容）","operationId":"getCodeByEmail","parameters":[{"name":"toEmail","in":"query","description":"收件邮箱","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LegacyResponse"}}}}}},"post":{"tags":["Legacy认证"],"summary":"发送邮箱验证码（兼容）","operationId":"getCodeByEmail_1","parameters":[{"name":"toEmail","in":"query","description":"收件邮箱","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/LegacyResponse"}}}}}}},"/api/v1/users/me":{"get":{"tags":["用户"],"summary":"获取当前用户信息","operationId":"me","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultUserView"}}}}}},"put":{"tags":["用户"],"summary":"更新当前用户资料","operationId":"updateMe","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProfileRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultUserView"}}}}}},"delete":{"tags":["用户"],"summary":"注销当前账号","operationId":"deleteMe","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/users/me/webdav":{"get":{"tags":["用户"],"summary":"获取当前用户 WebDAV 凭据（绑定登录 uid）","operationId":"getWebDav","parameters":[{"name":"aid","in":"query","required":false,"schema":{"type":"string","default":"coolnote.flutter"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultUserWebDavView"}}}}}},"put":{"tags":["用户"],"summary":"写入当前用户 WebDAV 凭据（绑定登录 uid）","operationId":"putWebDav","parameters":[{"name":"aid","in":"query","required":false,"schema":{"type":"string","default":"coolnote.flutter"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserWebDavPutRequest"}}}},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultUserWebDavView"}}}}}}},"/api/v1/users/me/password":{"put":{"tags":["用户"],"summary":"通过验证码更新密码","operationId":"updatePassword","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePasswordRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/todos/{id}":{"get":{"tags":["待办"],"summary":"获取待办详情","operationId":"detail","parameters":[{"name":"id","in":"path","description":"待办 ID","required":true,"schema":{"type":"string"}},{"name":"aid","in":"query","description":"应用标识","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultTodoEntity"}}}}}},"put":{"tags":["待办"],"summary":"更新待办","operationId":"update","parameters":[{"name":"id","in":"path","description":"待办 ID","required":true,"schema":{"type":"string"}},{"name":"aid","in":"query","description":"应用标识","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TodoUpdateRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultTodoEntity"}}}}}},"delete":{"tags":["待办"],"summary":"删除待办","operationId":"delete","parameters":[{"name":"id","in":"path","description":"待办 ID","required":true,"schema":{"type":"string"}},{"name":"aid","in":"query","description":"应用标识","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/sync/{key}":{"get":{"tags":["同步"],"summary":"读取同步 Blob","operationId":"get","parameters":[{"name":"key","in":"path","description":"Blob 键名","required":true,"schema":{"type":"string"}},{"name":"aid","in":"query","description":"应用标识","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultSyncBlobEntity"}}}}}},"put":{"tags":["同步"],"summary":"写入同步 Blob","operationId":"put","parameters":[{"name":"key","in":"path","description":"Blob 键名","required":true,"schema":{"type":"string"}},{"name":"aid","in":"query","description":"应用标识","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncBlobPutRequest"}}}},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultSyncBlobEntity"}}}}}}},"/api/v1/shares/{id}/state":{"put":{"tags":["分享"],"summary":"更新我的分享状态","operationId":"updateState","parameters":[{"name":"id","in":"path","description":"分享 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/notes/{id}":{"get":{"tags":["笔记"],"summary":"获取笔记详情","operationId":"detail_1","parameters":[{"name":"id","in":"path","description":"笔记 ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"aid","in":"query","description":"应用标识","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultNoteEntity"}}}}}},"put":{"tags":["笔记"],"summary":"更新笔记","operationId":"update_1","parameters":[{"name":"id","in":"path","description":"笔记 ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"aid","in":"query","description":"应用标识","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteUpdateRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultNoteEntity"}}}}}},"delete":{"tags":["笔记"],"summary":"删除笔记","operationId":"delete_2","parameters":[{"name":"id","in":"path","description":"笔记 ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"aid","in":"query","description":"应用标识","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/note-types/{id}":{"put":{"tags":["分类"],"summary":"更新分类","operationId":"update_2","parameters":[{"name":"id","in":"path","description":"分类 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteTypeRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultNoteTypeEntity"}}}}}},"delete":{"tags":["分类"],"summary":"删除分类","operationId":"delete_3","parameters":[{"name":"id","in":"path","description":"分类 ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"aid","in":"query","description":"应用标识","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/admin/users/{uid}":{"get":{"tags":["管理-用户"],"summary":"用户详情","operationId":"getUser","parameters":[{"name":"uid","in":"path","description":"用户 UID","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultUserView"}}}}}},"put":{"tags":["管理-用户"],"summary":"更新用户","operationId":"updateUser","parameters":[{"name":"uid","in":"path","description":"用户 UID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUserUpdateRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultUserView"}}}}}},"delete":{"tags":["管理-用户"],"summary":"删除用户","operationId":"deleteUser","parameters":[{"name":"uid","in":"path","description":"用户 UID","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/admin/users/{uid}/password":{"put":{"tags":["管理-用户"],"summary":"重置用户密码","operationId":"resetPassword","parameters":[{"name":"uid","in":"path","description":"用户 UID","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminResetPasswordRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultUserView"}}}}}}},"/api/v1/admin/todos/{id}/trash":{"put":{"tags":["管理-待办"],"summary":"移入废纸篓（软删）","operationId":"trashTodo","parameters":[{"name":"id","in":"path","description":"待办 ID","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultTodoEntity"}}}}}}},"/api/v1/admin/todos/{id}/restore":{"put":{"tags":["管理-待办"],"summary":"从废纸篓恢复","operationId":"restoreTodo","parameters":[{"name":"id","in":"path","description":"待办 ID","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultTodoEntity"}}}}}}},"/api/v1/admin/styles/{id}":{"get":{"tags":["管理-风格"],"summary":"风格详情","operationId":"getStyle","parameters":[{"name":"id","in":"path","description":"风格 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultStyleView"}}}}}},"put":{"tags":["管理-风格"],"summary":"更新风格","operationId":"updateStyle","parameters":[{"name":"id","in":"path","description":"风格 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminStyleSaveRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultStyleView"}}}}}},"delete":{"tags":["管理-风格"],"summary":"删除风格","operationId":"deleteStyle","parameters":[{"name":"id","in":"path","description":"风格 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/admin/styles/{id}/sort-order":{"put":{"tags":["管理-风格"],"summary":"更新风格排序","operationId":"updateSortOrder","parameters":[{"name":"id","in":"path","description":"风格 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultStyleView"}}}}}}},"/api/v1/admin/shares/{id}/state":{"put":{"tags":["管理-分享"],"summary":"更新分享状态","operationId":"updateShareState","parameters":[{"name":"id","in":"path","description":"分享 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultShareEntity"}}}}}}},"/api/v1/admin/notes/{id}/trash":{"put":{"tags":["管理-笔记"],"summary":"移入废纸篓（软删）","operationId":"trashNote","parameters":[{"name":"id","in":"path","description":"笔记 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultNoteEntity"}}}}}}},"/api/v1/admin/notes/{id}/takedown":{"put":{"tags":["管理-笔记"],"summary":"下架违规笔记","operationId":"takedownNote","parameters":[{"name":"id","in":"path","description":"笔记 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultNoteEntity"}}}}}}},"/api/v1/admin/notes/{id}/restore":{"put":{"tags":["管理-笔记"],"summary":"从废纸篓恢复","operationId":"restoreNote","parameters":[{"name":"id","in":"path","description":"笔记 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultNoteEntity"}}}}}}},"/api/v1/admin/mails/{id}/state":{"put":{"tags":["管理-邮件"],"summary":"更新邮件队列状态","operationId":"updateMailState","parameters":[{"name":"id","in":"path","description":"邮件队列 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMailQueueEntity"}}}}}}},"/api/v1/admin/feedbacks/{id}":{"get":{"tags":["管理-反馈"],"summary":"反馈详情","operationId":"getFeedback","parameters":[{"name":"id","in":"path","description":"反馈 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultFeedbackEntity"}}}}}},"put":{"tags":["管理-反馈"],"summary":"更新反馈状态/回复","operationId":"updateFeedback","parameters":[{"name":"id","in":"path","description":"反馈 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackAdminUpdateRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultFeedbackEntity"}}}}}}},"/api/v1/admin/appreciation":{"get":{"tags":["管理-赞赏"],"summary":"获取赞赏页配置","operationId":"get_3","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAppreciationContentView"}}}}}},"put":{"tags":["管理-赞赏"],"summary":"更新赞赏页配置","operationId":"save","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppreciationSaveRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAppreciationContentView"}}}}}}},"/api/v1/admin/app-config":{"get":{"tags":["管理-应用配置"],"summary":"读取 App 运行时配置","operationId":"get_4","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAppConfigView"}}}}}},"put":{"tags":["管理-应用配置"],"summary":"保存 App 运行时配置","operationId":"save_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppConfigSaveRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAppConfigView"}}}}}}},"/api/v1/admin/ads":{"get":{"tags":["管理-广告"],"summary":"获取广告内容","operationId":"getAds","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAdsEntity"}}}}}},"put":{"tags":["管理-广告"],"summary":"保存广告内容","operationId":"saveAds","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminAdsUpdateRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAdsEntity"}}}}}}},"/api/v1/admin/activities/{id}":{"put":{"tags":["管理-活动"],"summary":"更新活动","operationId":"update_3","parameters":[{"name":"id","in":"path","description":"活动 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppActivitySaveRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAppActivityEntity"}}}}}},"delete":{"tags":["管理-活动"],"summary":"删除活动","operationId":"delete_4","parameters":[{"name":"id","in":"path","description":"活动 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/admin/activation-codes/{id}/disable":{"put":{"tags":["管理-激活码"],"summary":"停用激活码","operationId":"disable","parameters":[{"name":"id","in":"path","description":"激活码 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultActivationCodeEntity"}}}}}}},"/api/v1/admin/activation-codes/batch/disable":{"put":{"tags":["管理-激活码"],"summary":"整批停用未使用激活码","operationId":"disableBatch","parameters":[{"name":"batchId","in":"query","description":"批次号","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringObject"}}}}}}},"/api/v1/admin/about":{"get":{"tags":["管理-关于页"],"summary":"获取关于页配置","operationId":"get_5","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAboutContentView"}}}}}},"put":{"tags":["管理-关于页"],"summary":"更新关于页配置","operationId":"save_2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AboutSaveRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAboutContentView"}}}}}}},"/api/v1/todos":{"get":{"tags":["待办"],"summary":"查询待办列表","operationId":"list","parameters":[{"name":"aid","in":"query","description":"应用标识","required":true,"schema":{"type":"string"}},{"name":"includeDeleted","in":"query","description":"是否包含已删除","required":false,"schema":{"type":"boolean","default":false}},{"name":"updatedSince","in":"query","description":"仅返回 updated_at 大于该毫秒时间戳的待办（增量同步）","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListTodoEntity"}}}}}},"post":{"tags":["待办"],"summary":"创建待办","operationId":"create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TodoCreateRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultTodoEntity"}}}}}}},"/api/v1/todos/batch-delete":{"post":{"tags":["待办"],"summary":"批量删除待办","operationId":"batchDelete","parameters":[{"name":"aid","in":"query","description":"应用标识","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TodoBatchIdsRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/styles":{"get":{"tags":["风格"],"summary":"已发布风格列表（含指定账号预览）","operationId":"listPublished","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListStyleView"}}}}}},"post":{"tags":["风格"],"summary":"提交风格","operationId":"submit","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StyleSubmitRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultStyleView"}}}}}}},"/api/v1/shares":{"get":{"tags":["分享"],"summary":"查询我的分享列表","operationId":"list_1","parameters":[{"name":"aid","in":"query","description":"应用标识","required":true,"schema":{"type":"string"}},{"name":"shareType","in":"query","description":"分享类型","required":true,"schema":{"type":"string"}},{"name":"status","in":"query","description":"状态筛选","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListShareEntity"}}}}}},"post":{"tags":["分享"],"summary":"创建分享","operationId":"create_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareCreateRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultShareEntity"}}}}}}},"/api/v1/shares/{id}/use":{"post":{"tags":["分享"],"summary":"分享使用次数 +1","operationId":"increaseUse","parameters":[{"name":"id","in":"path","description":"分享 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultShareEntity"}}}}}}},"/api/v1/scan/document":{"post":{"tags":["文档扫描"],"summary":"生成扫描件（App 提交四角，服务端 warp+enhance）","operationId":"document","parameters":[{"name":"quad","in":"query","required":true,"schema":{"type":"string"}},{"name":"detectConfidence","in":"query","required":false,"schema":{"type":"number","format":"double"}},{"name":"userAdjusted","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"detectStatus","in":"query","required":false,"schema":{"type":"string"}},{"name":"outputTier","in":"query","required":false,"schema":{"type":"string"}},{"name":"token","in":"query","required":false,"schema":{"type":"string"}},{"name":"quality","in":"query","required":false,"schema":{"type":"string"}},{"name":"bakeOntoImage","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"X-Upload-Token","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"required":["file"],"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringObject"}}}}}}},"/api/v1/scan/detect":{"post":{"tags":["文档扫描"],"summary":"识别文档四角（归一化 TL,TR,BR,BL）","operationId":"detect","parameters":[{"name":"X-Upload-Token","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"required":["file"],"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringObject"}}}}}}},"/api/v1/ocr/recognize":{"post":{"tags":["图片识别"],"summary":"上传图片识别文字","operationId":"recognize","parameters":[{"name":"X-Upload-Token","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"required":["file"],"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringObject"}}}}}}},"/api/v1/notes":{"get":{"tags":["笔记"],"summary":"分页查询笔记列表","operationId":"list_2","parameters":[{"name":"aid","in":"query","description":"应用标识","required":true,"schema":{"type":"string"}},{"name":"categoryId","in":"query","description":"分类筛选","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"状态筛选","required":false,"schema":{"type":"string"}},{"name":"keyword","in":"query","description":"关键词","required":false,"schema":{"type":"string"}},{"name":"updatedSince","in":"query","description":"仅返回 updated_at 大于该毫秒时间戳的笔记（增量同步）","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","description":"页码，从 1 开始","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","description":"每页条数","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultPageResultNoteEntity"}}}}}},"post":{"tags":["笔记"],"summary":"创建笔记","operationId":"create_2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteCreateRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultNoteEntity"}}}}}}},"/api/v1/notes/batch-type":{"post":{"tags":["笔记"],"summary":"批量修改笔记分类","operationId":"batchType","parameters":[{"name":"aid","in":"query","description":"应用标识","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchIdsRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/notes/batch-delete":{"post":{"tags":["笔记"],"summary":"批量删除笔记","operationId":"batchDelete_1","parameters":[{"name":"aid","in":"query","description":"应用标识","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchIdsRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/note-types":{"get":{"tags":["分类"],"summary":"查询分类列表","operationId":"list_3","parameters":[{"name":"aid","in":"query","description":"应用标识","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListNoteTypeEntity"}}}}}},"post":{"tags":["分类"],"summary":"创建分类","operationId":"create_3","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteTypeRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultNoteTypeEntity"}}}}}}},"/api/v1/membership/orders":{"post":{"tags":["会员支付"],"summary":"创建支付宝会员订单，返回 App 支付 orderString","operationId":"create_4","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMembershipOrderRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMembershipOrderView"}}}}}}},"/api/v1/membership/orders/{orderId}/mock-complete":{"post":{"tags":["会员支付"],"summary":"示例模式模拟支付成功（仅 ALIPAY_MOCK=true）","operationId":"mockComplete","parameters":[{"name":"orderId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMembershipOrderView"}}}}}}},"/api/v1/membership/activation-codes/redeem":{"post":{"tags":["会员激活码"],"summary":"兑换激活码开通会员","operationId":"redeem","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivationCodeRedeemRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultActivationCodeRedeemResult"}}}}}}},"/api/v1/mail/send":{"post":{"tags":["邮件"],"summary":"立即发送 HTML 邮件（仅管理员）","operationId":"send","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMailRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/mail/schedule":{"post":{"tags":["邮件"],"summary":"调度发送邮件（入队，仅管理员）","operationId":"schedule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMailRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringLong"}}}}}}},"/api/v1/internal/styles/sync-builtin":{"post":{"tags":["内部-风格"],"summary":"同步内置推荐风格（body 为空则读 jar 内 JSON）","operationId":"syncBuiltin","parameters":[{"name":"X-Upload-Token","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":{"type":"object"}}}}}},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringObject"}}}}}}},"/api/v1/internal/deploy/jar-from-upload":{"post":{"tags":["内部-部署"],"summary":"从已上传文件键热部署 jar（异步重启 CoolNoteAPI）","operationId":"deployFromUpload","parameters":[{"name":"X-Upload-Token","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"}}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringObject"}}}}}}},"/api/v1/inbox/feedback/ack":{"post":{"tags":["启动通知"],"summary":"确认已读反馈答复（服务端记已读，换机不再弹同一条）","operationId":"ackFeedback","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/idphoto/matting":{"post":{"tags":["证件照"],"summary":"上传人像抠图（透明底 PNG）","operationId":"matting","parameters":[{"name":"X-Upload-Token","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"required":["file"],"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringObject"}}}}}}},"/api/v1/future-letters":{"post":{"tags":["未来信"],"summary":"封存并排队发到登录邮箱（到点由邮件队列投递）","operationId":"submit_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FutureLetterSubmitRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringObject"}}}}}}},"/api/v1/files/upload":{"post":{"tags":["文件"],"summary":"上传文件，返回可访问链接","operationId":"upload","parameters":[{"name":"X-Upload-Token","in":"header","description":"上传令牌（可选；无则需登录 JWT）","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"required":["file"],"type":"object","properties":{"file":{"type":"string","description":"上传文件","format":"binary"}}}}}},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringObject"}}}}}}},"/api/v1/feedback":{"post":{"tags":["反馈"],"summary":"提交反馈","operationId":"submit_2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackSubmitRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultFeedbackEntity"}}}}}}},"/api/v1/auth/reset-password":{"post":{"tags":["认证"],"summary":"忘记密码","description":"邮箱 + RESET_PASSWORD 验证码重置密码（无需登录）","operationId":"resetPassword_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/auth/register":{"post":{"tags":["认证"],"summary":"注册","description":"邮箱 + REGISTER 验证码 + 设置密码，成功后直接登录","operationId":"register","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultUserView"}}}}}}},"/api/v1/auth/login":{"post":{"tags":["认证"],"summary":"登录","description":"密码登录，或 LOGIN 用途验证码登录（不自动注册）","operationId":"login_2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultUserView"}}}}}}},"/api/v1/auth/code":{"post":{"tags":["认证"],"summary":"发送邮箱验证码","description":"purpose 必填：REGISTER（注册）、LOGIN（验证码登录）、RESET_PASSWORD（忘记密码）、UPDATE_PASSWORD（登录后改密）。不同用途的验证码不可互用。","operationId":"sendCode","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendCodeRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringString"}}}}}}},"/api/v1/analytics/events":{"post":{"tags":["分析事件"],"summary":"上报事件","operationId":"track","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsTrackRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/admin/todos/batch-trash":{"post":{"tags":["管理-待办"],"summary":"批量移入废纸篓","operationId":"batchTrashTodos","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringInteger"}}}}}}},"/api/v1/admin/todos/batch-restore":{"post":{"tags":["管理-待办"],"summary":"批量从废纸篓恢复","operationId":"batchRestoreTodos","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringInteger"}}}}}}},"/api/v1/admin/todos/batch-delete":{"post":{"tags":["管理-待办"],"summary":"批量删除待办","operationId":"batchDeleteTodos","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringInteger"}}}}}}},"/api/v1/admin/styles":{"get":{"tags":["管理-风格"],"summary":"风格列表","operationId":"listStyles","parameters":[{"name":"status","in":"query","description":"状态筛选","required":false,"schema":{"type":"string"}},{"name":"kind","in":"query","description":"类型筛选","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListStyleView"}}}}}},"post":{"tags":["管理-风格"],"summary":"创建风格","operationId":"createStyle","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminStyleSaveRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultStyleView"}}}}}}},"/api/v1/admin/styles/{id}/reject":{"post":{"tags":["管理-风格"],"summary":"拒绝风格","operationId":"rejectStyle","parameters":[{"name":"id","in":"path","description":"风格 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultStyleView"}}}}}}},"/api/v1/admin/styles/{id}/publish":{"post":{"tags":["管理-风格"],"summary":"发布风格","operationId":"publishStyle","parameters":[{"name":"id","in":"path","description":"风格 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultStyleView"}}}}}}},"/api/v1/admin/styles/{id}/preview-grant":{"post":{"tags":["管理-风格"],"summary":"授权指定账号预览风格","operationId":"grantPreview","parameters":[{"name":"id","in":"path","description":"风格 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultStyleView"}}}}}}},"/api/v1/admin/styles/{id}/preview-clear":{"post":{"tags":["管理-风格"],"summary":"清除风格预览授权","operationId":"clearPreview","parameters":[{"name":"id","in":"path","description":"风格 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultStyleView"}}}}}}},"/api/v1/admin/styles/{id}/pin-top":{"post":{"tags":["管理-风格"],"summary":"置顶风格","operationId":"pinStyleTop","parameters":[{"name":"id","in":"path","description":"风格 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultStyleView"}}}}}}},"/api/v1/admin/styles/{id}/approve":{"post":{"tags":["管理-风格"],"summary":"审核通过风格","operationId":"approveStyle","parameters":[{"name":"id","in":"path","description":"风格 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultStyleView"}}}}}}},"/api/v1/admin/notes/batch-trash":{"post":{"tags":["管理-笔记"],"summary":"批量移入废纸篓","operationId":"batchTrashNotes","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"type":"integer","format":"int64"}}}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringInteger"}}}}}}},"/api/v1/admin/notes/batch-restore":{"post":{"tags":["管理-笔记"],"summary":"批量从废纸篓恢复","operationId":"batchRestoreNotes","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"type":"integer","format":"int64"}}}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringInteger"}}}}}}},"/api/v1/admin/notes/batch-delete":{"post":{"tags":["管理-笔记"],"summary":"批量永久删除笔记","operationId":"batchDeleteNotes","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"array","items":{"type":"integer","format":"int64"}}}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringInteger"}}}}}}},"/api/v1/admin/app-releases":{"get":{"tags":["管理-版本更新"],"summary":"版本发布列表","operationId":"list_5","parameters":[{"name":"platform","in":"query","description":"平台筛选","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListAppReleaseEntity"}}}}}},"post":{"tags":["管理-版本更新"],"summary":"创建/更新版本发布","operationId":"save_3","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppReleaseSaveRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAppReleaseEntity"}}}}}}},"/api/v1/admin/activities":{"get":{"tags":["管理-活动"],"summary":"活动列表","operationId":"list_6","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListAppActivityEntity"}}}}}},"post":{"tags":["管理-活动"],"summary":"创建/更新活动","operationId":"save_4","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppActivitySaveRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAppActivityEntity"}}}}}}},"/api/v1/admin/activation-codes/generate":{"post":{"tags":["管理-激活码"],"summary":"批量生成激活码","operationId":"generate","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivationCodeGenerateRequest"}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultActivationCodeGenerateResult"}}}}}}},"/api/v1/admin/app-releases/{id}":{"patch":{"tags":["管理-版本更新"],"summary":"启用/停用版本发布","operationId":"patchEnabled","parameters":[{"name":"id","in":"path","description":"发布 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"object"}}}},"required":true},"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAppReleaseEntity"}}}}}}},"/api/v1/styles/published":{"get":{"tags":["风格"],"summary":"已发布风格列表（别名，含指定账号预览）","operationId":"listPublishedAlias","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListStyleView"}}}}}}},"/api/v1/styles/mine":{"get":{"tags":["风格"],"summary":"我提交的风格列表","operationId":"listMine","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListStyleView"}}}}}}},"/api/v1/shares/{id}":{"get":{"tags":["分享"],"summary":"按 ID 获取分享（公开扫码）","operationId":"getById","parameters":[{"name":"id","in":"path","description":"分享 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultShareEntity"}}}}}},"delete":{"tags":["分享"],"summary":"删除我的分享","operationId":"delete_1","parameters":[{"name":"id","in":"path","description":"分享 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/ocr/self-test":{"get":{"tags":["图片识别"],"summary":"OCR 自检（本机生成图识别，免登录）","operationId":"selfTest","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringObject"}}}}}}},"/api/v1/ocr/health":{"get":{"tags":["图片识别"],"summary":"OCR 健康与上游状态","operationId":"health","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringObject"}}}}}}},"/api/v1/membership/orders/{orderId}":{"get":{"tags":["会员支付"],"summary":"查询订单状态","operationId":"get_1","parameters":[{"name":"orderId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMembershipOrderView"}}}}}}},"/api/v1/membership/catalog":{"get":{"tags":["会员"],"summary":"会员支付页数据（套餐、权益、原价/折扣价）","operationId":"catalog","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMembershipCatalogView"}}}}}}},"/api/v1/inbox/bootstrap":{"get":{"tags":["启动通知"],"summary":"冷启动通知摘要（未变化时返回 200 + notModified，不再用 304）","operationId":"bootstrap","parameters":[{"name":"platform","in":"query","description":"平台","required":false,"schema":{"type":"string","default":"android"}},{"name":"versionCode","in":"query","description":"当前版本号","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"seenFeedbackUpdatedAt","in":"query","description":"客户端已读反馈答复的 updatedAt","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"If-None-Match","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultInboxBootstrapResponse"}}}}}}},"/api/v1/idphoto/health":{"get":{"tags":["证件照"],"summary":"证件照抠图健康检查","operationId":"health_1","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringObject"}}}}}}},"/api/v1/helpers/words":{"get":{"tags":["助手"],"summary":"获取随机词条","operationId":"words","parameters":[{"name":"num","in":"query","description":"返回条数","required":false,"schema":{"type":"integer","format":"int32","default":1}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListMapStringObject"}}}}}}},"/api/v1/helpers/poetry":{"get":{"tags":["助手"],"summary":"获取诗词内容","operationId":"poetry","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultObject"}}}}}}},"/api/v1/health":{"get":{"tags":["健康检查"],"summary":"健康检查","operationId":"health_2","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringString"}}}}}}},"/api/v1/files/{key}":{"get":{"tags":["文件"],"summary":"下载文件","operationId":"download","parameters":[{"name":"key","in":"path","description":"文件存储键","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string","format":"binary"}}}}}}},"/api/v1/feedback/mine":{"get":{"tags":["反馈"],"summary":"我的反馈列表","operationId":"mine","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListFeedbackEntity"}}}}}}},"/api/v1/appreciation":{"get":{"tags":["赞赏"],"summary":"赞赏页配置（公开）","operationId":"get_2","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAppreciationContentView"}}}}}}},"/api/v1/app/version":{"get":{"tags":["App 版本"],"summary":"检查更新","operationId":"check","parameters":[{"name":"platform","in":"query","description":"平台","required":false,"schema":{"type":"string","default":"android"}},{"name":"versionCode","in":"query","description":"当前版本号","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"aid","in":"query","description":"应用标识","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAppVersionCheckResponse"}}}}}}},"/api/v1/admin/verify-codes":{"get":{"tags":["管理-邮件"],"summary":"验证码列表","operationId":"listVerifyCodes","parameters":[{"name":"page","in":"query","description":"页码，从 1 开始","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","description":"每页条数，默认 20，最大 100","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"兼容旧参数：等价于 pageSize 且 page=1","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultPageResultAuthCodeEntity"}}}}}},"delete":{"tags":["管理-邮件"],"summary":"清除指定邮箱验证码","operationId":"clearVerifyCodes","parameters":[{"name":"email","in":"query","description":"邮箱","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/admin/verify-codes/{id}/reveal":{"get":{"tags":["管理-邮件"],"summary":"揭示验证码明文（审计）","operationId":"revealVerifyCode","parameters":[{"name":"id","in":"path","description":"验证码记录 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringString"}}}}}}},"/api/v1/admin/users":{"get":{"tags":["管理-用户"],"summary":"用户列表","operationId":"listUsers","parameters":[{"name":"page","in":"query","description":"页码，从 1 开始","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","description":"每页条数，默认 20，最大 100","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"兼容旧参数：等价于 pageSize 且 page=1","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"keyword","in":"query","description":"关键词（email/nickname/uid）","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"排序：activity_desc|notes_desc|notes_asc|todos_desc|todos_asc|created_desc|created_asc","required":false,"schema":{"type":"string"}},{"name":"role","in":"query","description":"角色筛选：user/admin/support/readonly 等","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultPageResultUserView"}}}}}}},"/api/v1/admin/users/export":{"get":{"tags":["管理-用户"],"summary":"导出用户 CSV","operationId":"exportUsers","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"type":"string","format":"byte"}}}}}}}},"/api/v1/admin/todos":{"get":{"tags":["管理-待办"],"summary":"待办列表（支持四象限/完成/删除筛选）","operationId":"listTodos","parameters":[{"name":"uid","in":"query","description":"用户 UID","required":false,"schema":{"type":"string"}},{"name":"keyword","in":"query","description":"关键词","required":false,"schema":{"type":"string"}},{"name":"quadrant","in":"query","description":"四象限 0-4","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"isComplete","in":"query","description":"是否完成 0/1","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"isDeleted","in":"query","description":"是否删除 0/1","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"page","in":"query","description":"页码，从 1 开始","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","description":"每页条数，默认 20，最大 100","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"兼容旧参数：等价于 pageSize 且 page=1","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultPageResultTodoEntity"}}}}}}},"/api/v1/admin/todos/{id}":{"get":{"tags":["管理-待办"],"summary":"待办详情","operationId":"getTodo","parameters":[{"name":"id","in":"path","description":"待办 ID","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultTodoEntity"}}}}}},"delete":{"tags":["管理-待办"],"summary":"永久删除待办","operationId":"deleteTodo","parameters":[{"name":"id","in":"path","description":"待办 ID","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/admin/system":{"get":{"tags":["管理-洞察"],"summary":"系统健康与计数","operationId":"system","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAdminSystemStatus"}}}}}}},"/api/v1/admin/stats/user-growth":{"get":{"tags":["管理-统计"],"summary":"用户增长","operationId":"userGrowth","parameters":[{"name":"days","in":"query","description":"统计天数","required":false,"schema":{"type":"integer","format":"int32","default":30}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListUserGrowthPoint"}}}}}}},"/api/v1/admin/stats/feature-usage":{"get":{"tags":["管理-统计"],"summary":"功能使用统计（总用户 + 单用户 + 工具箱按 toolId）","operationId":"featureUsage","parameters":[{"name":"days","in":"query","description":"统计天数","required":false,"schema":{"type":"integer","format":"int32","default":30}},{"name":"uid","in":"query","description":"可选：按单个 uid 过滤 byUser","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultFeatureUsageStats"}}}}}}},"/api/v1/admin/shares":{"get":{"tags":["管理-分享"],"summary":"分享列表","operationId":"listShares","parameters":[{"name":"status","in":"query","description":"状态筛选","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"shareType","in":"query","description":"类型筛选","required":false,"schema":{"type":"string"}},{"name":"keyword","in":"query","description":"关键词：ID / UID / 内容","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"页码，从 1 开始","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","description":"每页条数，默认 20，最大 100","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"兼容旧参数：等价于 pageSize 且 page=1","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultPageResultShareEntity"}}}}}}},"/api/v1/admin/shares/{id}":{"get":{"tags":["管理-分享"],"summary":"分享详情","operationId":"getShare_2","parameters":[{"name":"id","in":"path","description":"分享 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultShareEntity"}}}}}},"delete":{"tags":["管理-分享"],"summary":"删除分享","operationId":"deleteShare","parameters":[{"name":"id","in":"path","description":"分享 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/admin/recycle/notes":{"get":{"tags":["管理-笔记"],"summary":"废纸篓笔记列表","description":"status=1 的笔记","operationId":"listRecycleNotes","parameters":[{"name":"uid","in":"query","description":"用户 UID","required":false,"schema":{"type":"string"}},{"name":"keyword","in":"query","description":"关键词","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"页码","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","description":"每页条数","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"兼容旧参数","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultPageResultNoteEntity"}}}}}}},"/api/v1/admin/overview":{"get":{"tags":["管理-洞察"],"summary":"数据大屏概览","operationId":"overview","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAdminOverview"}}}}}}},"/api/v1/admin/notes":{"get":{"tags":["管理-笔记"],"summary":"笔记列表","operationId":"listNotes","parameters":[{"name":"uid","in":"query","description":"用户 UID","required":false,"schema":{"type":"string"}},{"name":"keyword","in":"query","description":"关键词","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"状态：0正常 1废纸篓 2下架","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"页码，从 1 开始","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","description":"每页条数，默认 20，最大 100","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"兼容旧参数：等价于 pageSize 且 page=1","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultPageResultNoteEntity"}}}}}}},"/api/v1/admin/notes/{id}":{"get":{"tags":["管理-笔记"],"summary":"笔记详情","operationId":"getNote","parameters":[{"name":"id","in":"path","description":"笔记 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultNoteEntity"}}}}}},"delete":{"tags":["管理-笔记"],"summary":"永久删除笔记","operationId":"deleteNote","parameters":[{"name":"id","in":"path","description":"笔记 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/admin/note-types":{"get":{"tags":["管理-笔记"],"summary":"笔记分类列表","operationId":"listNoteTypes","parameters":[{"name":"uid","in":"query","description":"用户 UID","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"页码，从 1 开始","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","description":"每页条数，默认 20，最大 100","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"兼容旧参数：等价于 pageSize 且 page=1","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultPageResultNoteTypeEntity"}}}}}}},"/api/v1/admin/me":{"get":{"tags":["管理-会话"],"summary":"当前管理员角色与权限","operationId":"me_1","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAdminMeView"}}}}}}},"/api/v1/admin/mails":{"get":{"tags":["管理-邮件"],"summary":"邮件队列列表","operationId":"listMails","parameters":[{"name":"status","in":"query","description":"状态筛选","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"page","in":"query","description":"页码，从 1 开始","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","description":"每页条数，默认 20，最大 100","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"兼容旧参数：等价于 pageSize 且 page=1","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultPageResultMailQueueEntity"}}}}}}},"/api/v1/admin/mails/{id}":{"get":{"tags":["管理-邮件"],"summary":"邮件详情","operationId":"getMail","parameters":[{"name":"id","in":"path","description":"邮件队列 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMailQueueEntity"}}}}}},"delete":{"tags":["管理-邮件"],"summary":"删除邮件队列记录","operationId":"deleteMail","parameters":[{"name":"id","in":"path","description":"邮件队列 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/admin/login-logs":{"get":{"tags":["管理-登录日志"],"summary":"登录日志列表","operationId":"list_4","parameters":[{"name":"email","in":"query","description":"邮箱关键词","required":false,"schema":{"type":"string"}},{"name":"uid","in":"query","description":"用户 UID","required":false,"schema":{"type":"string"}},{"name":"success","in":"query","description":"是否成功：1/0","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"page","in":"query","description":"页码","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","description":"每页条数","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"兼容旧参数","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultPageResultLoginLogEntity"}}}}}}},"/api/v1/admin/feedbacks":{"get":{"tags":["管理-反馈"],"summary":"反馈列表","operationId":"listFeedbacks","parameters":[{"name":"page","in":"query","description":"页码，从 1 开始","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","description":"每页条数，默认 20，最大 100","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"兼容旧参数：等价于 pageSize 且 page=1","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"status","in":"query","description":"状态筛选","required":false,"schema":{"type":"string"}},{"name":"keyword","in":"query","description":"关键词","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultPageResultFeedbackEntity"}}}}}}},"/api/v1/admin/blobs":{"get":{"tags":["管理-同步"],"summary":"同步 Blob 列表","operationId":"listBlobs","parameters":[{"name":"uid","in":"query","description":"用户 UID","required":false,"schema":{"type":"string"}},{"name":"blobKey","in":"query","description":"Blob key，如 countdown / course","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","description":"页码，从 1 开始","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","description":"每页条数，默认 20，最大 100","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"兼容旧参数：等价于 pageSize 且 page=1","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultPageResultAdminBlobView"}}}}}}},"/api/v1/admin/blobs/{id}":{"get":{"tags":["管理-同步"],"summary":"同步 Blob 详情","operationId":"getBlob","parameters":[{"name":"id","in":"path","description":"Blob 记录 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAdminBlobView"}}}}}},"delete":{"tags":["管理-同步"],"summary":"删除同步 Blob","operationId":"deleteBlob","parameters":[{"name":"id","in":"path","description":"Blob 记录 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/admin/audits":{"get":{"tags":["管理-审计"],"summary":"审计日志列表","operationId":"listAudits","parameters":[{"name":"page","in":"query","description":"页码，从 1 开始","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","description":"每页条数，默认 20，最大 100","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"兼容旧参数：等价于 pageSize 且 page=1","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"action","in":"query","description":"动作筛选","required":false,"schema":{"type":"string"}},{"name":"targetType","in":"query","description":"目标类型","required":false,"schema":{"type":"string"}},{"name":"keyword","in":"query","description":"关键词：管理员 / 目标 ID / 详情","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultPageResultAdminAuditLogEntity"}}}}}}},"/api/v1/admin/activation-codes":{"get":{"tags":["管理-激活码"],"summary":"激活码列表","operationId":"list_7","parameters":[{"name":"page","in":"query","description":"页码","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","description":"每页条数","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"兼容旧参数","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"status","in":"query","description":"状态：0未用 1已用 2停用","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"planType","in":"query","description":"套餐 century|yearly|monthly","required":false,"schema":{"type":"string"}},{"name":"keyword","in":"query","description":"关键词：码/备注/批次/使用者","required":false,"schema":{"type":"string"}},{"name":"batchId","in":"query","description":"批次号","required":false,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultPageResultActivationCodeEntity"}}}}}}},"/api/v1/admin/activation-codes/batch-stats":{"get":{"tags":["管理-激活码"],"summary":"批次使用率统计","operationId":"batchStats","parameters":[{"name":"batchId","in":"query","description":"批次号","required":true,"schema":{"type":"string"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultMapStringLong"}}}}}}},"/api/v1/about":{"get":{"tags":["关于页"],"summary":"获取关于页内容","operationId":"getAbout","responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultAboutContentView"}}}}}}},"/api/v1/styles/{id}":{"delete":{"tags":["风格"],"summary":"删除我的风格","operationId":"deleteMine","parameters":[{"name":"id","in":"path","description":"风格主键 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/admin/note-types/{id}":{"delete":{"tags":["管理-笔记"],"summary":"删除笔记分类","operationId":"deleteNoteType","parameters":[{"name":"id","in":"path","description":"分类 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/api/v1/admin/activation-codes/{id}":{"delete":{"tags":["管理-激活码"],"summary":"删除未使用激活码","operationId":"delete_5","parameters":[{"name":"id","in":"path","description":"激活码 ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}}},"components":{"schemas":{"ApiResultVoid":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"type":"object","description":"业务数据"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"LegacyResponse":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"type":"object"},"time":{"type":"integer","format":"int64"}}},"UpdateProfileRequest":{"type":"object","properties":{"nickname":{"type":"string"},"signature":{"type":"string"},"avatar":{"type":"string"},"gender":{"type":"string"},"phone":{"type":"string"},"locale":{"type":"string"},"timezone":{"type":"string"},"aid":{"type":"string"},"extend":{"type":"string"},"extend1":{"type":"string"},"extend2":{"type":"string"},"extra":{"type":"string"},"remarks":{"type":"string"}},"description":"更新个人资料（不可改 role/status/vip）"},"ApiResultUserView":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/UserView"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"UserView":{"type":"object","properties":{"uid":{"type":"string","description":"用户 UID"},"email":{"type":"string","description":"邮箱"},"token":{"type":"string","description":"登录 Token（JWT）"},"nickname":{"type":"string","description":"昵称"},"signature":{"type":"string","description":"个性签名"},"avatar":{"type":"string","description":"头像 URL"},"gender":{"type":"string","description":"性别 unknown|male|female|other"},"vip":{"type":"string","description":"VIP 标识"},"role":{"type":"string","description":"角色 user|admin"},"status":{"type":"string","description":"状态 normal|disabled"},"aid":{"type":"string","description":"应用标识 aid"},"createdAt":{"type":"integer","description":"创建时间（毫秒）","format":"int64"},"updatedAt":{"type":"integer","description":"更新时间（毫秒）","format":"int64"},"noteCount":{"type":"integer","description":"笔记数量（管理台）","format":"int64"},"todoCount":{"type":"integer","description":"待办数量（管理台）","format":"int64"},"lastLoginAt":{"type":"integer","description":"最近成功登录时间（毫秒）","format":"int64"},"remarks":{"type":"string","description":"管理备注"}},"description":"用户视图（含登录后 token）"},"UserWebDavPutRequest":{"type":"object","properties":{"url":{"type":"string"},"id":{"type":"string"},"pas":{"type":"string"},"provider":{"type":"string"},"updatedAt":{"type":"integer","format":"int64"}},"description":"写入当前用户 WebDAV 凭据"},"ApiResultUserWebDavView":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/UserWebDavView"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"UserWebDavView":{"type":"object","properties":{"url":{"type":"string","description":"服务器地址"},"id":{"type":"string","description":"账号"},"pas":{"type":"string","description":"应用密码"},"provider":{"type":"string","description":"提供商"},"updatedAt":{"type":"integer","description":"服务端更新时间（毫秒）","format":"int64"}},"description":"当前用户 WebDAV 凭据"},"UpdatePasswordRequest":{"required":["code","email","password"],"type":"object","properties":{"email":{"type":"string","description":"邮箱（须与当前登录账号一致）","example":"user@example.com"},"code":{"type":"string","description":"UPDATE_PASSWORD 用途下的验证码","example":"123456"},"password":{"maxLength":64,"minLength":6,"type":"string","description":"新密码（6-64 位）","example":"newpass123"}},"description":"已登录修改密码：邮箱 + UPDATE_PASSWORD 验证码 + 新密码"},"TodoUpdateRequest":{"type":"object","properties":{"title":{"type":"string","description":"标题","example":"写周报"},"content":{"type":"string","description":"备注"},"isComplete":{"type":"boolean","description":"是否已完成","example":true},"isDeleted":{"type":"boolean","description":"是否已删除","example":false},"quadrant":{"type":"integer","description":"四象限（0-3）","format":"int32","example":1},"dueAt":{"type":"integer","description":"截止时间（毫秒）","format":"int64","example":1710000000000},"clearDueAt":{"type":"boolean","description":"为 true 时清除截止时间","example":false},"extend":{"type":"string","description":"扩展字段"},"extend1":{"type":"string","description":"扩展字段 1"},"extend2":{"type":"string","description":"扩展字段 2"},"extra":{"type":"string","description":"预留扩展 JSON"},"updatedAt":{"type":"integer","description":"客户端编辑时间（毫秒），多设备 LWW 依据","format":"int64"}},"description":"更新待办请求（字段均为可选，传则更新）"},"ApiResultTodoEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/TodoEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"TodoEntity":{"type":"object","properties":{"id":{"type":"string"},"uid":{"type":"string"},"aid":{"type":"string"},"title":{"type":"string"},"content":{"type":"string"},"isComplete":{"type":"integer","format":"int32"},"isDeleted":{"type":"integer","format":"int32"},"quadrant":{"type":"integer","format":"int32"},"dueAt":{"type":"integer","format":"int64"},"deletedAt":{"type":"integer","format":"int64"},"completedAt":{"type":"integer","format":"int64"},"createdAt":{"type":"integer","format":"int64"},"updatedAt":{"type":"integer","format":"int64"},"extend":{"type":"string"},"extend1":{"type":"string"},"extend2":{"type":"string"},"extra":{"type":"string"}},"description":"业务数据"},"SyncBlobPutRequest":{"type":"object","properties":{"payload":{"type":"string","description":"同步载荷（通常为 JSON 字符串）"},"updatedAt":{"type":"integer","description":"客户端编辑时间（毫秒），多设备 LWW 依据","format":"int64"}},"description":"同步 Blob 写入请求"},"ApiResultSyncBlobEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/SyncBlobEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"SyncBlobEntity":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"uid":{"type":"string"},"aid":{"type":"string"},"blobKey":{"type":"string"},"payload":{"type":"string"},"version":{"type":"integer","format":"int32"},"extend":{"type":"string"},"extra":{"type":"string"},"createdAt":{"type":"integer","format":"int64"},"updatedAt":{"type":"integer","format":"int64"}},"description":"业务数据"},"NoteUpdateRequest":{"type":"object","properties":{"title":{"type":"string","description":"标题","example":"今日随笔"},"content":{"type":"string","description":"正文内容"},"status":{"type":"string","description":"状态","example":"0"},"categoryId":{"type":"string","description":"分类 ID","example":"10"},"weather":{"type":"string","description":"天气","example":"雨"},"mood":{"type":"string","description":"心情","example":"平静"},"contentLength":{"type":"integer","description":"内容长度","format":"int32","example":200},"sortKey":{"type":"string","description":"排序索引","example":"1"},"extend":{"type":"string","description":"扩展字段"},"extend1":{"type":"string","description":"扩展字段 1"},"extend2":{"type":"string","description":"扩展字段 2"},"extra":{"type":"string","description":"预留扩展 JSON"},"clientId":{"type":"string","description":"客户端本地 UUID"},"remarks":{"type":"string","description":"备注"},"updatedAt":{"type":"integer","description":"客户端编辑时间（毫秒），多设备 LWW 依据","format":"int64"}},"description":"更新笔记请求（字段均为可选，传则更新）"},"ApiResultNoteEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/NoteEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"NoteEntity":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"clientId":{"type":"string"},"aid":{"type":"string"},"uid":{"type":"string"},"title":{"type":"string"},"brief":{"type":"string"},"status":{"type":"string"},"categoryId":{"type":"string"},"weather":{"type":"string"},"mood":{"type":"string"},"md5":{"type":"string"},"contentLength":{"type":"integer","format":"int32"},"sortKey":{"type":"string"},"deletedAt":{"type":"integer","format":"int64"},"extend":{"type":"string"},"extend1":{"type":"string"},"extend2":{"type":"string"},"extra":{"type":"string"},"remarks":{"type":"string"},"createdAt":{"type":"integer","format":"int64"},"updatedAt":{"type":"integer","format":"int64"},"content":{"type":"string"}},"description":"业务数据"},"NoteTypeRequest":{"required":["aid","name"],"type":"object","properties":{"aid":{"type":"string","description":"应用标识 aid","example":"coolnote"},"name":{"type":"string","description":"分类名称","example":"工作"},"sortKey":{"type":"string","description":"排序索引","example":"1"}},"description":"笔记分类创建/更新请求"},"ApiResultNoteTypeEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/NoteTypeEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"NoteTypeEntity":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"uid":{"type":"string"},"aid":{"type":"string"},"name":{"type":"string"},"sortKey":{"type":"string"},"color":{"type":"string"},"icon":{"type":"string"},"isDeleted":{"type":"integer","format":"int32"},"extend":{"type":"string"},"extra":{"type":"string"},"createdAt":{"type":"integer","format":"int64"},"updatedAt":{"type":"integer","format":"int64"}},"description":"业务数据"},"AdminUserUpdateRequest":{"type":"object","properties":{"nickname":{"type":"string","description":"昵称","example":"小明"},"signature":{"type":"string","description":"个性签名","example":"今天也要写笔记"},"status":{"type":"string","description":"账号状态 normal|disabled","example":"normal"},"role":{"type":"string","description":"角色 user|admin","example":"user"},"vip":{"type":"string","description":"VIP 标识","example":"0"},"remarks":{"type":"string","description":"备注"},"disableReason":{"type":"string","description":"禁用原因（独立字段，写入审计）"},"avatar":{"type":"string","description":"头像 URL"},"gender":{"type":"string","description":"性别 unknown|male|female|other"},"phone":{"type":"string"},"locale":{"type":"string"},"timezone":{"type":"string"},"extra":{"type":"string"}},"description":"管理端更新用户资料请求"},"AdminResetPasswordRequest":{"required":["password"],"type":"object","properties":{"password":{"maxLength":64,"minLength":6,"type":"string","description":"新密码","example":"Reset123!"}},"description":"管理员重置用户密码"},"AdminStyleSaveRequest":{"type":"object","properties":{"name":{"type":"string","description":"风格名称","example":"清新绿"},"styleId":{"type":"integer","description":"业务风格 ID","format":"int64","example":1001},"kind":{"type":"string","description":"类型/种类","example":"theme"},"status":{"type":"string","description":"状态","example":"pending"},"cover":{"type":"string","description":"封面图 URL"},"sortOrder":{"type":"integer","description":"推荐展示顺序，越小越靠前","format":"int32","example":10},"payload":{"type":"object","additionalProperties":{"type":"object","description":"风格配置载荷"},"description":"风格配置载荷"}},"description":"管理端风格创建/更新请求"},"ApiResultStyleView":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/StyleView"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"StyleView":{"type":"object","properties":{"id":{"type":"integer","description":"主键 ID","format":"int64","example":1},"styleId":{"type":"integer","description":"业务风格 ID","format":"int64","example":1001},"name":{"type":"string","description":"风格名称","example":"清新绿"},"kind":{"type":"string","description":"类型/种类","example":"theme"},"status":{"type":"string","description":"状态","example":"published"},"uid":{"type":"string","description":"提交用户 UID"},"aid":{"type":"string","description":"应用标识 aid","example":"coolnote"},"payload":{"type":"object","additionalProperties":{"type":"object","description":"风格配置载荷"},"description":"风格配置载荷"},"cover":{"type":"string","description":"封面图 URL"},"extra":{"type":"string","description":"扩展 JSON（含 previewEmails / previewUids 等）"},"sortOrder":{"type":"integer","description":"推荐展示顺序，越小越靠前","format":"int32","example":10},"createdAt":{"type":"integer","description":"创建时间（毫秒）","format":"int64","example":1710000000000},"updatedAt":{"type":"integer","description":"更新时间（毫秒）","format":"int64","example":1710000000000}},"description":"风格视图"},"ApiResultShareEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/ShareEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"ShareEntity":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"uid":{"type":"string"},"aid":{"type":"string"},"shareType":{"type":"string"},"payload":{"type":"string"},"status":{"type":"integer","format":"int32"},"useCount":{"type":"integer","format":"int32"},"expireAt":{"type":"integer","format":"int64"},"extend":{"type":"string"},"extra":{"type":"string"},"createdAt":{"type":"integer","format":"int64"},"updatedAt":{"type":"integer","format":"int64"}},"description":"业务数据"},"ApiResultMailQueueEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/MailQueueEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"MailQueueEntity":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"email":{"type":"string"},"subject":{"type":"string"},"html":{"type":"string"},"sendAt":{"type":"integer","format":"int64"},"status":{"type":"integer","format":"int32"},"attemptCount":{"type":"integer","format":"int32"},"lastError":{"type":"string"},"extend":{"type":"string"},"extra":{"type":"string"},"createdAt":{"type":"integer","format":"int64"},"updatedAt":{"type":"integer","format":"int64"}},"description":"业务数据"},"FeedbackAdminUpdateRequest":{"type":"object","properties":{"status":{"type":"string","description":"状态：open/replied/closed","example":"replied"},"adminReply":{"type":"string","description":"管理员回复"},"notifyUser":{"type":"boolean","description":"是否邮件通知用户；缺省视为 true（兼容旧客户端）"}},"description":"管理员更新反馈请求"},"ApiResultFeedbackEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/FeedbackEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"FeedbackEntity":{"type":"object","properties":{"id":{"type":"integer","description":"反馈 ID","format":"int64"},"uid":{"type":"string","description":"用户 UID"},"email":{"type":"string","description":"用户邮箱"},"contact":{"type":"string","description":"联系方式"},"content":{"type":"string","description":"反馈内容"},"status":{"type":"string","description":"状态：open/replied/closed"},"adminReply":{"type":"string","description":"管理员回复"},"aid":{"type":"string","description":"应用标识 aid"},"extend":{"type":"string","description":"业务扩展 JSON"},"extra":{"type":"string","description":"预留扩展 JSON"},"createdAt":{"type":"integer","description":"创建时间（毫秒）","format":"int64"},"updatedAt":{"type":"integer","description":"更新时间（毫秒）","format":"int64"},"replySeenAt":{"type":"integer","description":"用户已读答复时间（毫秒）；空表示未读","format":"int64"}},"description":"用户反馈"},"AppreciationOptionView":{"type":"object","properties":{"title":{"type":"string","description":"标题"},"subtitle":{"type":"string","description":"副标题"},"icon":{"type":"string","description":"图标键（cafe/terminal/cloud/heart/server/gift）"},"qrUrl":{"type":"string","description":"该项专属二维码 URL，留空则共用全局 qrUrl"}},"description":"赞赏页滑动卡片项"},"AppreciationSaveRequest":{"type":"object","properties":{"title":{"type":"string"},"subtitle":{"type":"string"},"qrUrl":{"type":"string"},"hint":{"type":"string"},"footer":{"type":"string"},"options":{"type":"array","description":"顶部滑动卡片（至少 1 条，可多条）","items":{"$ref":"#/components/schemas/AppreciationOptionView"}},"carouselAutoPlay":{"type":"boolean"},"carouselIntervalMs":{"type":"integer","format":"int32"}},"description":"保存赞赏页配置"},"ApiResultAppreciationContentView":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/AppreciationContentView"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"AppreciationContentView":{"type":"object","properties":{"title":{"type":"string","description":"主标题"},"subtitle":{"type":"string","description":"副标题"},"qrUrl":{"type":"string","description":"二维码图片 URL"},"hint":{"type":"string","description":"扫码提示"},"footer":{"type":"string","description":"页脚说明"},"options":{"type":"array","description":"顶部滑动卡片（1 条或多条）","items":{"$ref":"#/components/schemas/AppreciationOptionView"}},"carouselAutoPlay":{"type":"boolean","description":"是否自动轮播顶部卡片"},"carouselIntervalMs":{"type":"integer","description":"轮播间隔（毫秒）","format":"int32","example":4500},"updatedAt":{"type":"integer","description":"更新时间（毫秒）","format":"int64"}},"description":"App 赞赏页配置"},"AppConfigSaveRequest":{"type":"object","properties":{"themeTrialMinutes":{"type":"integer","description":"付费风格试用时长（分钟）","format":"int32","example":5},"membershipCatalog":{"$ref":"#/components/schemas/MembershipCatalogView"},"featureTrialLimits":{"type":"object","additionalProperties":{"type":"integer","description":"各功能试用次数上限","format":"int32"},"description":"各功能试用次数上限"}},"description":"保存 App 运行时配置"},"MembershipBenefitView":{"type":"object","properties":{"iconKey":{"type":"string","description":"图标 key，App 端映射 Material Icons"},"title":{"type":"string","description":"标题"},"subtitle":{"type":"string","description":"说明（兼容旧字段，等同会员侧）"},"freeText":{"type":"string","description":"普通用户侧文案"},"memberText":{"type":"string","description":"会员侧文案"}},"description":"会员权益条目（含普通用户对比）"},"MembershipCatalogView":{"type":"object","properties":{"headline":{"type":"string","description":"页头文案"},"footnote":{"type":"string","description":"页脚说明"},"plans":{"type":"array","description":"套餐列表","items":{"$ref":"#/components/schemas/MembershipPlanView"}},"benefits":{"type":"array","description":"权益列表","items":{"$ref":"#/components/schemas/MembershipBenefitView"}},"updatedAt":{"type":"integer","description":"更新时间（毫秒）","format":"int64"}},"description":"会员套餐与权益（App 支付页）"},"MembershipPlanView":{"type":"object","properties":{"id":{"type":"string","description":"套餐 id：century/yearly/monthly"},"priceLine":{"type":"string","description":"展示价文案，如 ¥ 100/100年"},"originalPriceLine":{"type":"string","description":"原价文案，如 ¥ 199"},"hint":{"type":"string","description":"角标/副文案"},"priceCents":{"type":"integer","description":"现价（分）","format":"int32"},"originalPriceCents":{"type":"integer","description":"原价（分）","format":"int32"}},"description":"会员套餐"},"ApiResultAppConfigView":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/AppConfigView"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"AppConfigView":{"type":"object","properties":{"themeTrialMinutes":{"type":"integer","description":"付费风格试用时长（分钟）","format":"int32","example":5},"updatedAt":{"type":"integer","description":"更新时间（毫秒）","format":"int64"},"membershipCatalog":{"$ref":"#/components/schemas/MembershipCatalogView"},"featureTrialLimits":{"type":"object","additionalProperties":{"type":"integer","description":"各功能试用次数上限","format":"int32"},"description":"各功能试用次数上限"}},"description":"App 运行时配置"},"AdminAdsUpdateRequest":{"required":["content"],"type":"object","properties":{"content":{"type":"string","description":"广告文本内容（如 app-ads.txt）","example":"google.com, pub-xxx, DIRECT, f08c47fec0942fa0"}},"description":"管理端广告内容更新请求"},"AdsEntity":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"content":{"type":"string"},"extend":{"type":"string"},"extra":{"type":"string"},"createdAt":{"type":"integer","format":"int64"},"updatedAt":{"type":"integer","format":"int64"}},"description":"业务数据"},"ApiResultAdsEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/AdsEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"AppActivitySaveRequest":{"required":["title"],"type":"object","properties":{"id":{"type":"integer","format":"int64"},"title":{"type":"string"},"summary":{"type":"string"},"content":{"type":"string"},"linkUrl":{"type":"string"},"coverUrl":{"type":"string"},"enabled":{"type":"boolean"},"priority":{"type":"integer","format":"int32"},"startAt":{"type":"integer","format":"int64"},"endAt":{"type":"integer","format":"int64"},"aid":{"type":"string"}},"description":"活动保存"},"ApiResultAppActivityEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/AppActivityEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"AppActivityEntity":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"title":{"type":"string"},"summary":{"type":"string"},"content":{"type":"string"},"linkUrl":{"type":"string"},"coverUrl":{"type":"string"},"enabled":{"type":"boolean"},"priority":{"type":"integer","format":"int32"},"startAt":{"type":"integer","format":"int64"},"endAt":{"type":"integer","format":"int64"},"aid":{"type":"string"},"extend":{"type":"string"},"extra":{"type":"string"},"createdAt":{"type":"integer","format":"int64"},"updatedAt":{"type":"integer","format":"int64"}},"description":"业务数据"},"ActivationCodeEntity":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"code":{"type":"string"},"planType":{"type":"string"},"vipValue":{"type":"string"},"status":{"type":"integer","format":"int32"},"batchId":{"type":"string"},"note":{"type":"string"},"createdAt":{"type":"integer","format":"int64"},"createdBy":{"type":"string"},"usedAt":{"type":"integer","format":"int64"},"usedByUid":{"type":"string"},"expiresAt":{"type":"integer","format":"int64"}},"description":"业务数据"},"ApiResultActivationCodeEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/ActivationCodeEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"ApiResultMapStringObject":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"type":"object","additionalProperties":{"type":"object","description":"业务数据"},"description":"业务数据"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"AboutSaveRequest":{"type":"object","properties":{"appName":{"type":"string"},"tagline":{"type":"string"},"features":{"type":"array","items":{"type":"object","additionalProperties":{"type":"object"}}},"footer":{"type":"string"}},"description":"管理端更新关于页"},"AboutContentView":{"type":"object","properties":{"appName":{"type":"string"},"tagline":{"type":"string"},"features":{"type":"array","items":{"type":"object","additionalProperties":{"type":"object"}}},"footer":{"type":"string"},"updatedAt":{"type":"integer","format":"int64"}},"description":"关于页内容"},"ApiResultAboutContentView":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/AboutContentView"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"TodoCreateRequest":{"required":["aid"],"type":"object","properties":{"id":{"type":"string","description":"客户端生成的 UUID；为空则服务端生成","example":"550e8400-e29b-41d4-a716-446655440000"},"aid":{"type":"string","description":"应用标识 aid","example":"coolnote"},"title":{"type":"string","description":"标题","example":"写周报"},"content":{"type":"string","description":"备注"},"isComplete":{"type":"boolean","description":"是否已完成","example":false},"isDeleted":{"type":"boolean","description":"是否已删除","example":false},"quadrant":{"type":"integer","description":"四象限（0-3）","format":"int32","example":0},"dueAt":{"type":"integer","description":"截止时间（毫秒）","format":"int64","example":1710000000000},"extend":{"type":"string","description":"扩展字段"},"extend1":{"type":"string","description":"扩展字段 1"},"extend2":{"type":"string","description":"扩展字段 2"},"extra":{"type":"string","description":"预留扩展 JSON"},"createdAt":{"type":"integer","description":"客户端创建时间（毫秒）","format":"int64"},"updatedAt":{"type":"integer","description":"客户端编辑时间（毫秒），多设备 LWW 依据","format":"int64"}},"description":"创建待办请求"},"TodoBatchIdsRequest":{"required":["ids"],"type":"object","properties":{"ids":{"type":"array","description":"待办 ID 列表","example":["uuid-1","uuid-2"],"items":{"type":"string","description":"待办 ID 列表","example":"[\"uuid-1\",\"uuid-2\"]"}}},"description":"待办批量删除请求"},"StyleSubmitRequest":{"required":["payload"],"type":"object","properties":{"aid":{"type":"string","description":"应用标识 aid","example":"coolnote"},"cover":{"type":"string","description":"封面图 URL"},"styleId":{"type":"integer","description":"业务风格 ID（可选）","format":"int64","example":1001},"name":{"type":"string","description":"风格名称","example":"我的主题"},"payload":{"type":"object","additionalProperties":{"type":"object","description":"风格配置载荷"},"description":"风格配置载荷"}},"description":"用户提交风格请求"},"ShareCreateRequest":{"required":["aid","payload","shareType"],"type":"object","properties":{"aid":{"type":"string","description":"应用标识 aid","example":"coolnote"},"shareType":{"type":"string","description":"分享类型","example":"note"},"payload":{"type":"string","description":"分享数据（JSON 或文本）"}},"description":"创建分享请求"},"NoteCreateRequest":{"required":["aid","content"],"type":"object","properties":{"aid":{"type":"string","description":"应用标识 aid","example":"coolnote"},"title":{"type":"string","description":"标题","example":"今日随笔"},"content":{"type":"string","description":"正文内容"},"status":{"type":"string","description":"状态","example":"0"},"categoryId":{"type":"string","description":"分类 ID","example":"0"},"weather":{"type":"string","description":"天气","example":"晴"},"mood":{"type":"string","description":"心情","example":"开心"},"contentLength":{"type":"integer","description":"内容长度（客户端可选；缺省由服务端按正文计算）","format":"int32","example":120},"extend":{"type":"string","description":"扩展 JSON，如收藏标记 {\"flag\":7}"},"extend1":{"type":"string","description":"扩展字段 1"},"extend2":{"type":"string","description":"扩展字段 2"},"extra":{"type":"string","description":"预留扩展 JSON"},"clientId":{"type":"string","description":"客户端本地 UUID，离线创建幂等"},"createdAt":{"type":"integer","description":"客户端创建时间（毫秒），缺省用服务器时间","format":"int64"},"updatedAt":{"type":"integer","description":"客户端编辑时间（毫秒），多设备 LWW 依据","format":"int64"}},"description":"创建笔记请求"},"BatchIdsRequest":{"required":["ids"],"type":"object","properties":{"ids":{"type":"array","description":"笔记 ID 列表","example":[1,2,3],"items":{"type":"integer","description":"笔记 ID 列表","format":"int64"}},"categoryId":{"type":"string","description":"目标分类 ID（批量改分类时使用）","example":"10"}},"description":"笔记批量操作请求（删除或改分类）"},"CreateMembershipOrderRequest":{"required":["planType"],"type":"object","properties":{"planType":{"type":"string"}}},"ApiResultMembershipOrderView":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/MembershipOrderView"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"MembershipOrderView":{"type":"object","properties":{"orderId":{"type":"integer","format":"int64"},"outTradeNo":{"type":"string"},"planType":{"type":"string"},"vipValue":{"type":"string"},"amountCents":{"type":"integer","format":"int32"},"amountYuan":{"type":"string"},"subject":{"type":"string"},"status":{"type":"integer","format":"int32"},"orderString":{"type":"string"},"payUrl":{"type":"string"},"mock":{"type":"boolean"},"alipayEnabled":{"type":"boolean"},"alipayAppId":{"type":"string"}},"description":"业务数据"},"ActivationCodeRedeemRequest":{"required":["code"],"type":"object","properties":{"code":{"type":"string","description":"激活码","example":"CN-AB12-CD34-EF56"}},"description":"兑换激活码"},"ActivationCodeRedeemResult":{"type":"object","properties":{"vip":{"type":"string"},"planType":{"type":"string"},"message":{"type":"string"}},"description":"兑换激活码结果"},"ApiResultActivationCodeRedeemResult":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/ActivationCodeRedeemResult"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"SendMailRequest":{"required":["html","subject","to"],"type":"object","properties":{"to":{"type":"string","description":"收件人邮箱","example":"user@example.com"},"subject":{"type":"string","description":"邮件主题","example":"欢迎使用 CoolNote"},"html":{"type":"string","description":"HTML 正文"},"sendAt":{"type":"integer","description":"计划发送时间（毫秒时间戳）；为空或已过期则尽快发送","format":"int64","example":1710000000000}},"description":"发送/调度邮件请求"},"ApiResultMapStringLong":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"type":"object","additionalProperties":{"type":"integer","description":"业务数据","format":"int64"},"description":"业务数据"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"FutureLetterSubmitRequest":{"required":["body","deliverAt"],"type":"object","properties":{"title":{"type":"string","description":"标题（可选）"},"body":{"type":"string","description":"正文"},"deliverAt":{"type":"integer","description":"送达/开启时间（毫秒时间戳）","format":"int64"}},"description":"给未来写信提交"},"FeedbackSubmitRequest":{"required":["content"],"type":"object","properties":{"contact":{"type":"string","description":"联系方式","example":"user@example.com"},"content":{"type":"string","description":"反馈内容","example":"希望增加暗色主题"},"aid":{"type":"string","description":"应用标识 aid","example":"coolnote"}},"description":"提交反馈请求"},"ResetPasswordRequest":{"required":["code","email","password"],"type":"object","properties":{"email":{"type":"string","description":"邮箱","example":"user@example.com"},"code":{"type":"string","description":"RESET_PASSWORD 用途下的验证码","example":"123456"},"password":{"maxLength":64,"minLength":6,"type":"string","description":"新密码（6-64 位）","example":"newpass123"}},"description":"忘记密码：邮箱 + RESET_PASSWORD 验证码 + 新密码"},"RegisterRequest":{"required":["aid","code","email","password"],"type":"object","properties":{"email":{"type":"string","description":"邮箱","example":"user@example.com"},"code":{"type":"string","description":"邮箱验证码","example":"123456"},"password":{"maxLength":64,"minLength":6,"type":"string","description":"密码（6-64 位）","example":"pass1234"},"aid":{"type":"string","description":"应用标识 aid","example":"coolnote"},"device":{"type":"string","description":"设备标识（可选）"}},"description":"邮箱验证码注册并设置密码"},"LoginRequest":{"required":["aid","email"],"type":"object","properties":{"email":{"type":"string","description":"邮箱","example":"user@example.com"},"password":{"type":"string","description":"密码登录时填写；与验证码二选一","example":"secret123"},"code":{"type":"string","description":"邮箱验证码登录时填写","example":"123456"},"aid":{"type":"string","description":"应用标识 aid","example":"coolnote"},"device":{"type":"string","description":"设备标识（可选，写入登录日志）"}},"description":"登录请求（密码或验证码二选一）"},"SendCodeRequest":{"required":["email","purpose"],"type":"object","properties":{"email":{"type":"string","description":"接收验证码的邮箱","example":"user@example.com"},"purpose":{"type":"string","description":"用途：REGISTER | LOGIN | RESET_PASSWORD | UPDATE_PASSWORD","example":"REGISTER"},"aid":{"type":"string","description":"应用标识 aid","example":"coolnote.flutter"}},"description":"发送邮箱验证码请求（必须指定用途 purpose）"},"ApiResultMapStringString":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"type":"object","additionalProperties":{"type":"string","description":"业务数据"},"description":"业务数据"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"AnalyticsTrackRequest":{"required":["event"],"type":"object","properties":{"event":{"type":"string","description":"事件名","example":"open_note"},"module":{"type":"string","description":"模块名","example":"note"},"props":{"type":"object","additionalProperties":{"type":"object","description":"扩展属性"},"description":"扩展属性"},"aid":{"type":"string","description":"应用标识 aid","example":"coolnote"}},"description":"上报分析事件请求"},"ApiResultMapStringInteger":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"type":"object","additionalProperties":{"type":"integer","description":"业务数据","format":"int32"},"description":"业务数据"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"AppReleaseSaveRequest":{"required":["versionCode","versionName"],"type":"object","properties":{"id":{"type":"integer","description":"有则更新，无则新建","format":"int64"},"platform":{"type":"string","description":"平台","example":"android"},"versionName":{"type":"string","description":"版本名","example":"1.9.7"},"versionCode":{"type":"integer","description":"版本号","format":"int32","example":88},"minVersionCode":{"type":"integer","description":"最低支持版本号","format":"int32"},"downloadUrl":{"type":"string","description":"下载地址"},"changelog":{"type":"string","description":"更新说明"},"forceUpdate":{"type":"boolean","description":"是否强制更新"},"enabled":{"type":"boolean","description":"是否启用"}},"description":"创建/更新 App 版本发布"},"ApiResultAppReleaseEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/AppReleaseEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"AppReleaseEntity":{"type":"object","properties":{"id":{"type":"integer","description":"ID","format":"int64"},"platform":{"type":"string","description":"平台：android/ios/ohos"},"versionName":{"type":"string","description":"版本名","example":"1.9.7"},"versionCode":{"type":"integer","description":"版本号","format":"int32","example":88},"minVersionCode":{"type":"integer","description":"最低支持版本号（低于则强制更新）","format":"int32"},"downloadUrl":{"type":"string","description":"下载地址"},"changelog":{"type":"string","description":"更新说明"},"forceUpdate":{"type":"boolean","description":"是否强制更新"},"enabled":{"type":"boolean","description":"是否启用"},"createdAt":{"type":"integer","description":"创建时间（毫秒）","format":"int64"},"updatedAt":{"type":"integer","description":"更新时间（毫秒）","format":"int64"}},"description":"App 版本发布"},"ActivationCodeGenerateRequest":{"required":["count","planType"],"type":"object","properties":{"count":{"maximum":500,"minimum":1,"type":"integer","description":"生成数量，1~500","format":"int32","example":10},"planType":{"type":"string","description":"套餐：century|yearly|monthly","example":"century"},"vipValue":{"type":"string","description":"写入用户 vip 字段的值，默认按套餐映射","example":"century"},"note":{"type":"string","description":"备注"},"expiresAt":{"type":"integer","description":"过期时间毫秒时间戳，空表示不过期","format":"int64"}},"description":"批量生成激活码"},"ActivationCodeGenerateResult":{"type":"object","properties":{"batchId":{"type":"string"},"count":{"type":"integer","format":"int32"},"codes":{"type":"array","items":{"$ref":"#/components/schemas/ActivationCodeEntity"}}},"description":"批量生成激活码结果"},"ApiResultActivationCodeGenerateResult":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/ActivationCodeGenerateResult"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"ApiResultListTodoEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"type":"array","description":"业务数据","items":{"$ref":"#/components/schemas/TodoEntity"}},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"ApiResultListStyleView":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"type":"array","description":"业务数据","items":{"$ref":"#/components/schemas/StyleView"}},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"ApiResultListShareEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"type":"array","description":"业务数据","items":{"$ref":"#/components/schemas/ShareEntity"}},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"ApiResultPageResultNoteEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/PageResultNoteEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"PageResultNoteEntity":{"type":"object","properties":{"total":{"type":"integer","description":"总记录数","format":"int64","example":100},"page":{"type":"integer","description":"当前页码（从 1 开始）","format":"int32","example":1},"pageSize":{"type":"integer","description":"每页条数","format":"int32","example":20},"list":{"type":"array","description":"当前页数据列表","items":{"$ref":"#/components/schemas/NoteEntity"}}},"description":"分页结果"},"ApiResultListNoteTypeEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"type":"array","description":"业务数据","items":{"$ref":"#/components/schemas/NoteTypeEntity"}},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"ApiResultMembershipCatalogView":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/MembershipCatalogView"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"ActivityBrief":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"title":{"type":"string"},"summary":{"type":"string"},"linkUrl":{"type":"string"},"updatedAt":{"type":"integer","format":"int64"}},"description":"活动信息（最多几条）"},"ApiResultInboxBootstrapResponse":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/InboxBootstrapResponse"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"AppVersionCheckResponse":{"type":"object","properties":{"hasUpdate":{"type":"boolean","description":"是否有更新"},"forceUpdate":{"type":"boolean","description":"是否强制更新"},"versionName":{"type":"string","description":"最新版本名"},"versionCode":{"type":"integer","description":"最新版本号","format":"int32"},"downloadUrl":{"type":"string","description":"下载地址"},"changelog":{"type":"string","description":"更新说明"},"minVersionCode":{"type":"integer","description":"最低支持版本号","format":"int32"}},"description":"App 版本检查结果"},"FeedbackBrief":{"type":"object","properties":{"hasUnreadReply":{"type":"boolean"},"count":{"type":"integer","format":"int64"},"latestId":{"type":"integer","format":"int64"},"updatedAt":{"type":"integer","format":"int64"},"preview":{"type":"string"}},"description":"反馈答复摘要（未登录为 null）"},"InboxBootstrapResponse":{"type":"object","properties":{"etag":{"type":"string","description":"内容指纹，客户端可作条件请求"},"notModified":{"type":"boolean","description":"true 表示相对客户端缓存无变化（用 200 代替 304，避免被当成错误）"},"feedback":{"$ref":"#/components/schemas/FeedbackBrief"},"update":{"$ref":"#/components/schemas/AppVersionCheckResponse"},"activities":{"type":"array","description":"活动信息（最多几条）","items":{"$ref":"#/components/schemas/ActivityBrief"}},"themeTrialMinutes":{"type":"integer","description":"付费风格试用时长（分钟）","format":"int32","example":5},"featureTrialLimits":{"type":"object","additionalProperties":{"type":"integer","description":"各功能试用次数上限（featureId → 次数）","format":"int32"},"description":"各功能试用次数上限（featureId → 次数）"},"membershipCatalog":{"$ref":"#/components/schemas/MembershipCatalogView"}},"description":"冷启动通知摘要（轻量）"},"ApiResultListMapStringObject":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"type":"array","description":"业务数据","items":{"type":"object","additionalProperties":{"type":"object","description":"业务数据"},"description":"业务数据"}},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"ApiResultObject":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"type":"object","description":"业务数据"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"ApiResultListFeedbackEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"type":"array","description":"业务数据","items":{"$ref":"#/components/schemas/FeedbackEntity"}},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"ApiResultAppVersionCheckResponse":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/AppVersionCheckResponse"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"ApiResultPageResultAuthCodeEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/PageResultAuthCodeEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"AuthCodeEntity":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"email":{"type":"string"},"purpose":{"type":"string"},"code":{"type":"string"},"expiresAt":{"type":"integer","format":"int64"},"consumedAt":{"type":"integer","format":"int64"},"attemptCount":{"type":"integer","format":"int32"},"maxAttempts":{"type":"integer","format":"int32"},"aid":{"type":"string"},"ip":{"type":"string"},"device":{"type":"string"},"extend":{"type":"string"},"extra":{"type":"string"},"createdAt":{"type":"integer","format":"int64"}},"description":"当前页数据列表"},"PageResultAuthCodeEntity":{"type":"object","properties":{"total":{"type":"integer","description":"总记录数","format":"int64","example":100},"page":{"type":"integer","description":"当前页码（从 1 开始）","format":"int32","example":1},"pageSize":{"type":"integer","description":"每页条数","format":"int32","example":20},"list":{"type":"array","description":"当前页数据列表","items":{"$ref":"#/components/schemas/AuthCodeEntity"}}},"description":"分页结果"},"ApiResultPageResultUserView":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/PageResultUserView"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"PageResultUserView":{"type":"object","properties":{"total":{"type":"integer","description":"总记录数","format":"int64","example":100},"page":{"type":"integer","description":"当前页码（从 1 开始）","format":"int32","example":1},"pageSize":{"type":"integer","description":"每页条数","format":"int32","example":20},"list":{"type":"array","description":"当前页数据列表","items":{"$ref":"#/components/schemas/UserView"}}},"description":"分页结果"},"ApiResultPageResultTodoEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/PageResultTodoEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"PageResultTodoEntity":{"type":"object","properties":{"total":{"type":"integer","description":"总记录数","format":"int64","example":100},"page":{"type":"integer","description":"当前页码（从 1 开始）","format":"int32","example":1},"pageSize":{"type":"integer","description":"每页条数","format":"int32","example":20},"list":{"type":"array","description":"当前页数据列表","items":{"$ref":"#/components/schemas/TodoEntity"}}},"description":"分页结果"},"AdminSystemStatus":{"type":"object","properties":{"status":{"type":"string","description":"服务状态","example":"UP"},"service":{"type":"string","description":"服务名称","example":"coolnote-api"},"version":{"type":"string","description":"版本号","example":"1.0.0"},"uptimeMs":{"type":"integer","description":"运行时长（毫秒）","format":"int64","example":3600000},"counts":{"type":"object","additionalProperties":{"type":"integer","description":"各实体计数（key 为实体名）","format":"int64"},"description":"各实体计数（key 为实体名）"},"todayRequestTotal":{"type":"integer","description":"今日全局接口总请求数","format":"int64"},"todayRequestFailed":{"type":"integer","description":"今日失败请求数","format":"int64"},"qpsPeak":{"type":"integer","description":"服务 QPS 峰值（进程内采样）","format":"int64"},"apiCrashCount":{"type":"integer","description":"接口崩溃/5xx 次数（累计）","format":"int64"},"diskTotalBytes":{"type":"integer","description":"磁盘总容量（字节）","format":"int64"},"diskUsableBytes":{"type":"integer","description":"磁盘可用空间（字节）","format":"int64"},"jvmHeapUsedBytes":{"type":"integer","description":"JVM 堆内存已用（字节）","format":"int64"},"jvmHeapMaxBytes":{"type":"integer","description":"JVM 堆内存上限（字节）","format":"int64"},"cpuCores":{"type":"integer","description":"CPU 核心数","format":"int32"}},"description":"管理端系统健康与计数状态"},"ApiResultAdminSystemStatus":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/AdminSystemStatus"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"ApiResultListUserGrowthPoint":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"type":"array","description":"业务数据","items":{"$ref":"#/components/schemas/UserGrowthPoint"}},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"UserGrowthPoint":{"type":"object","properties":{"date":{"type":"string","description":"日期 yyyy-MM-dd","example":"2026-08-01"},"count":{"type":"integer","description":"当日新增用户数","format":"int64","example":3},"cumulative":{"type":"integer","description":"截至当日累计用户数","format":"int64","example":120}},"description":"用户增长日点"},"ApiResultFeatureUsageStats":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/FeatureUsageStats"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"DerivedUsageCount":{"type":"object","properties":{"name":{"type":"string","description":"指标名","example":"note_creates"},"count":{"type":"integer","description":"次数","format":"int64"}},"description":"业务表推导的功能使用计数"},"FeatureEventCount":{"type":"object","properties":{"module":{"type":"string","description":"模块"},"event":{"type":"string","description":"事件名"},"count":{"type":"integer","description":"总次数（全用户）","format":"int64"},"uniqueUsers":{"type":"integer","description":"独立用户数","format":"int64"}},"description":"分析事件聚合计数"},"FeatureUsageStats":{"type":"object","properties":{"events":{"type":"array","description":"总用户维度：analytics_event 聚合（含独立用户数）","items":{"$ref":"#/components/schemas/FeatureEventCount"}},"byUser":{"type":"array","description":"单用户维度：按 uid 拆分的功能频次","items":{"$ref":"#/components/schemas/FeatureUserEventCount"}},"derived":{"type":"array","description":"业务表推导指标","items":{"$ref":"#/components/schemas/DerivedUsageCount"}},"toolboxTools":{"type":"array","description":"工具箱：按 props.toolId 拆分的打开次数","items":{"$ref":"#/components/schemas/ToolboxToolCount"}}},"description":"功能使用统计"},"FeatureUserEventCount":{"type":"object","properties":{"uid":{"type":"string","description":"用户 uid"},"module":{"type":"string","description":"模块"},"event":{"type":"string","description":"事件名"},"count":{"type":"integer","description":"次数","format":"int64"}},"description":"单用户功能使用计数"},"ToolboxToolCount":{"type":"object","properties":{"toolId":{"type":"string","description":"工具 ID（props.toolId）"},"label":{"type":"string","description":"展示名（优先 props.label）"},"count":{"type":"integer","description":"打开总次数","format":"int64"},"uniqueUsers":{"type":"integer","description":"独立用户数","format":"int64"}},"description":"工具箱单个工具打开次数聚合"},"ApiResultPageResultShareEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/PageResultShareEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"PageResultShareEntity":{"type":"object","properties":{"total":{"type":"integer","description":"总记录数","format":"int64","example":100},"page":{"type":"integer","description":"当前页码（从 1 开始）","format":"int32","example":1},"pageSize":{"type":"integer","description":"每页条数","format":"int32","example":20},"list":{"type":"array","description":"当前页数据列表","items":{"$ref":"#/components/schemas/ShareEntity"}}},"description":"分页结果"},"AdminOverview":{"type":"object","properties":{"userCount":{"type":"integer","description":"用户总数","format":"int64","example":100},"noteCount":{"type":"integer","description":"笔记总数","format":"int64","example":500},"todoCount":{"type":"integer","description":"待办总数","format":"int64","example":200},"blobCount":{"type":"integer","description":"同步 Blob 总数","format":"int64","example":80},"styleCount":{"type":"integer","description":"风格总数","format":"int64","example":30},"pendingStyleCount":{"type":"integer","description":"待审核风格数","format":"int64","example":5},"shareCount":{"type":"integer","description":"分享总数","format":"int64","example":40},"disabledShareCount":{"type":"integer","description":"停用分享数","format":"int64","example":5},"mailPendingCount":{"type":"integer","description":"待发送邮件数","format":"int64","example":3},"mailFailedCount":{"type":"integer","description":"发送失败邮件数","format":"int64","example":1},"feedbackOpenCount":{"type":"integer","description":"待处理用户反馈数","format":"int64","example":3},"noteTypeCount":{"type":"integer","description":"笔记分类总数","format":"int64","example":50},"disabledUserCount":{"type":"integer","description":"禁用用户数","format":"int64","example":2},"users":{"type":"array","description":"用户数据量明细列表","items":{"$ref":"#/components/schemas/UserDataCounts"}}},"description":"管理端数据大屏概览"},"ApiResultAdminOverview":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/AdminOverview"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"UserDataCounts":{"type":"object","properties":{"uid":{"type":"string","description":"用户 UID","example":"u_abc123"},"email":{"type":"string","description":"邮箱","example":"user@example.com"},"nickname":{"type":"string","description":"昵称","example":"小明"},"status":{"type":"string","description":"账号状态","example":"1"},"noteCount":{"type":"integer","description":"笔记数","format":"int64","example":12},"todoCount":{"type":"integer","description":"待办数","format":"int64","example":5},"blobCount":{"type":"integer","description":"同步 Blob 数","format":"int64","example":2},"createdAt":{"type":"integer","description":"注册时间（毫秒）","format":"int64","example":1710000000000}},"description":"用户数据量统计明细"},"ApiResultPageResultNoteTypeEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/PageResultNoteTypeEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"PageResultNoteTypeEntity":{"type":"object","properties":{"total":{"type":"integer","description":"总记录数","format":"int64","example":100},"page":{"type":"integer","description":"当前页码（从 1 开始）","format":"int32","example":1},"pageSize":{"type":"integer","description":"每页条数","format":"int32","example":20},"list":{"type":"array","description":"当前页数据列表","items":{"$ref":"#/components/schemas/NoteTypeEntity"}}},"description":"分页结果"},"AdminMeView":{"type":"object","properties":{"uid":{"type":"string","description":"用户 UID"},"email":{"type":"string","description":"邮箱"},"role":{"type":"string","description":"控制台角色：superadmin|admin|support|readonly"},"permissions":{"type":"array","description":"按钮/菜单级权限标识；含 * 表示全部","items":{"type":"string","description":"按钮/菜单级权限标识；含 * 表示全部"}}},"description":"管理台当前登录者信息（角色与权限）"},"ApiResultAdminMeView":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/AdminMeView"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"ApiResultPageResultMailQueueEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/PageResultMailQueueEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"PageResultMailQueueEntity":{"type":"object","properties":{"total":{"type":"integer","description":"总记录数","format":"int64","example":100},"page":{"type":"integer","description":"当前页码（从 1 开始）","format":"int32","example":1},"pageSize":{"type":"integer","description":"每页条数","format":"int32","example":20},"list":{"type":"array","description":"当前页数据列表","items":{"$ref":"#/components/schemas/MailQueueEntity"}}},"description":"分页结果"},"ApiResultPageResultLoginLogEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/PageResultLoginLogEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"LoginLogEntity":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"email":{"type":"string"},"uid":{"type":"string"},"success":{"type":"integer","format":"int32"},"ip":{"type":"string"},"device":{"type":"string"},"reason":{"type":"string"},"aid":{"type":"string"},"extend":{"type":"string"},"extra":{"type":"string"},"createdAt":{"type":"integer","format":"int64"}},"description":"登录日志"},"PageResultLoginLogEntity":{"type":"object","properties":{"total":{"type":"integer","description":"总记录数","format":"int64","example":100},"page":{"type":"integer","description":"当前页码（从 1 开始）","format":"int32","example":1},"pageSize":{"type":"integer","description":"每页条数","format":"int32","example":20},"list":{"type":"array","description":"当前页数据列表","items":{"$ref":"#/components/schemas/LoginLogEntity"}}},"description":"分页结果"},"ApiResultPageResultFeedbackEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/PageResultFeedbackEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"PageResultFeedbackEntity":{"type":"object","properties":{"total":{"type":"integer","description":"总记录数","format":"int64","example":100},"page":{"type":"integer","description":"当前页码（从 1 开始）","format":"int32","example":1},"pageSize":{"type":"integer","description":"每页条数","format":"int32","example":20},"list":{"type":"array","description":"当前页数据列表","items":{"$ref":"#/components/schemas/FeedbackEntity"}}},"description":"分页结果"},"AdminBlobView":{"type":"object","properties":{"id":{"type":"integer","description":"记录 ID","format":"int64","example":1},"uid":{"type":"string","description":"用户 UID","example":"u_abc123"},"aid":{"type":"string","description":"应用标识 aid","example":"coolnote"},"blobKey":{"type":"string","description":"Blob 键名","example":"settings"},"version":{"type":"integer","description":"版本号","format":"int32","example":3},"payloadBytes":{"type":"integer","description":"载荷字节数","format":"int64","example":1024},"updatedAt":{"type":"integer","description":"更新时间（毫秒）","format":"int64","example":1710000000000},"payloadPreview":{"type":"string","description":"载荷预览（截断）"}},"description":"管理端同步 Blob 视图"},"ApiResultPageResultAdminBlobView":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/PageResultAdminBlobView"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"PageResultAdminBlobView":{"type":"object","properties":{"total":{"type":"integer","description":"总记录数","format":"int64","example":100},"page":{"type":"integer","description":"当前页码（从 1 开始）","format":"int32","example":1},"pageSize":{"type":"integer","description":"每页条数","format":"int32","example":20},"list":{"type":"array","description":"当前页数据列表","items":{"$ref":"#/components/schemas/AdminBlobView"}}},"description":"分页结果"},"ApiResultAdminBlobView":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/AdminBlobView"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"AdminAuditLogEntity":{"type":"object","properties":{"id":{"type":"integer","description":"日志 ID","format":"int64"},"adminUid":{"type":"string","description":"管理员 UID"},"adminEmail":{"type":"string","description":"管理员邮箱"},"action":{"type":"string","description":"动作","example":"user.update"},"targetType":{"type":"string","description":"目标类型","example":"user"},"targetId":{"type":"string","description":"目标 ID"},"detail":{"type":"string","description":"详情"},"extend":{"type":"string","description":"业务扩展 JSON"},"extra":{"type":"string","description":"预留扩展 JSON"},"createdAt":{"type":"integer","description":"创建时间（毫秒）","format":"int64"}},"description":"管理员操作审计日志"},"ApiResultPageResultAdminAuditLogEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/PageResultAdminAuditLogEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"PageResultAdminAuditLogEntity":{"type":"object","properties":{"total":{"type":"integer","description":"总记录数","format":"int64","example":100},"page":{"type":"integer","description":"当前页码（从 1 开始）","format":"int32","example":1},"pageSize":{"type":"integer","description":"每页条数","format":"int32","example":20},"list":{"type":"array","description":"当前页数据列表","items":{"$ref":"#/components/schemas/AdminAuditLogEntity"}}},"description":"分页结果"},"ApiResultListAppReleaseEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"type":"array","description":"业务数据","items":{"$ref":"#/components/schemas/AppReleaseEntity"}},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"ApiResultListAppActivityEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"type":"array","description":"业务数据","items":{"$ref":"#/components/schemas/AppActivityEntity"}},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"ApiResultPageResultActivationCodeEntity":{"type":"object","properties":{"code":{"type":"integer","description":"业务状态码：200 成功，201 失败，202 未授权","format":"int32","example":200},"message":{"type":"string","description":"提示信息","example":"ok"},"data":{"$ref":"#/components/schemas/PageResultActivationCodeEntity"},"time":{"type":"integer","description":"响应时间戳（毫秒）","format":"int64","example":1710000000000}},"description":"统一 API 响应包装"},"PageResultActivationCodeEntity":{"type":"object","properties":{"total":{"type":"integer","description":"总记录数","format":"int64","example":100},"page":{"type":"integer","description":"当前页码（从 1 开始）","format":"int32","example":1},"pageSize":{"type":"integer","description":"每页条数","format":"int32","example":20},"list":{"type":"array","description":"当前页数据列表","items":{"$ref":"#/components/schemas/ActivationCodeEntity"}}},"description":"分页结果"}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"x-openapi":{"x-setting":{"customCode":200,"language":"zh-CN","enableSwaggerModels":true,"swaggerModelName":"Swagger Models","enableReloadCacheParameter":false,"enableAfterScript":true,"enableDocumentManage":true,"enableVersion":false,"enableRequestCache":true,"enableFilterMultipartApis":false,"enableFilterMultipartApiMethodType":"POST","enableHost":false,"enableHostText":"","enableDynamicParameter":false,"enableDebug":true,"enableFooter":false,"enableFooterCustom":false,"enableSearch":true,"enableOpenApi":true,"enableHomeCustom":false,"enableGroup":true,"enableResponseCode":true},"x-markdownFiles":[]}}