{"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":"登录用户给自己邮箱定时投递信件"},{"name":"分类","description":"笔记分类管理"},{"name":"证件照","description":"人像抠图（rembg u2netp），底色/尺寸/排版由客户端合成"},{"name":"认证","description":"登录、注册与邮箱验证码（验证码必须带 purpose）"},{"name":"笔记","description":"笔记 CRUD 与批量操作"},{"name":"文档扫描","description":"轻量透视拉正 + 扫描增强（不含 OCR）"},{"name":"反馈","description":"用户反馈接口（需登录）"},{"name":"助手","description":"词条与诗词辅助内容"},{"name":"分析事件","description":"客户端埋点上报（需登录）"},{"name":"邮件","description":"管理员即时发送与定时入队（禁止普通用户当中继）"},{"name":"分享","description":"分享内容管理（列表/改删仅限本人）"},{"name":"同步","description":"客户端同步 Blob 读写"},{"name":"关于页","description":"App 关于酷记事公开内容"},{"name":"会员激活码","description":"用户兑换会员激活码"},{"name":"风格","description":"主题风格浏览与提交"},{"name":"健康检查","description":"服务存活探测"},{"name":"赞赏","description":"App 赞赏页公开配置"},{"name":"图片识别","description":"RapidOCR 文字识别（接口内直接调用）"},{"name":"会员","description":"套餐与权益"},{"name":"用户","description":"当前用户资料与密码"},{"name":"内部-风格","description":"运维令牌同步推荐风格（无需登录 JWT）"},{"name":"文件","description":"上传与下载"},{"name":"App 版本","description":"客户端版本检查（公开）"},{"name":"启动通知","description":"冷启动一次拉取：反馈答复 / 版本更新 / 活动"},{"name":"内部-部署","description":"运维令牌热部署 jar（无需登录 JWT）"},{"name":"待办","description":"待办 CRUD 与批量删除"},{"name":"会员支付","description":"支付宝下单 / 查单 / 示例模拟支付"}],"paths":{"/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/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","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","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/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/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"}}}}}}}},"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 响应包装"},"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":"业务数据"},"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":"用户提交风格请求"},"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":"风格视图"},"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":"创建分享请求"},"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":"业务数据"},"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 响应包装"},"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":"提交反馈请求"},"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":"用户反馈"},"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":"上报分析事件请求"},"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 响应包装"},"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":"会员套餐"},"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 响应包装"},"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 赞赏页配置"},"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":"赞赏页滑动卡片项"},"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 响应包装"},"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 响应包装"}},"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":[]}}