{"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":"运营管理台接口（需管理员 JWT）"},{"name":"管理-用户","description":"运营管理台接口（需管理员 JWT）"},{"name":"管理-关于页","description":"运营配置 App 关于页文案"},{"name":"管理-赞赏","description":"运营配置 App 赞赏页"},{"name":"管理-反馈","description":"运营管理台反馈接口（需管理员 JWT）"},{"name":"管理-登录日志","description":"运营管理台接口（需管理员 JWT）"},{"name":"管理-统计","description":"运营管理台统计接口（需管理员 JWT）"},{"name":"管理-洞察","description":"运营管理台接口（需管理员 JWT）"},{"name":"管理-应用配置","description":"App 运行时参数"},{"name":"管理-笔记","description":"运营管理台接口（需管理员 JWT）"},{"name":"管理-会话","description":"当前登录管理员角色与权限"},{"name":"管理-邮件","description":"运营管理台接口（需管理员 JWT）"},{"name":"管理-活动","description":"App 启动活动信息（需管理员 JWT）"},{"name":"管理-审计","description":"运营管理台审计日志（需管理员 JWT）"},{"name":"管理-待办","description":"运营管理台接口（需管理员 JWT）"},{"name":"管理-广告","description":"运营管理台接口（需管理员 JWT）"},{"name":"管理-风格","description":"运营管理台接口（需管理员 JWT）"},{"name":"管理-激活码","description":"会员激活码生成与查询（需管理员 JWT）"},{"name":"管理-同步","description":"运营管理台接口（需管理员 JWT）"},{"name":"管理-版本更新","description":"运营管理台 App 版本发布（需管理员 JWT）"}],"paths":{"/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","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_1","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","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","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_2","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/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_1","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_2","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/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","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","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","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_3","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/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_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"}}}}}}}},"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 响应包装"},"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":"管理端更新用户资料请求"},"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）"},"AdminResetPasswordRequest":{"required":["password"],"type":"object","properties":{"password":{"maxLength":64,"minLength":6,"type":"string","description":"新密码","example":"Reset123!"}},"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":"业务数据"},"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":"业务数据"},"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":"业务数据"},"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 响应包装"},"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 响应包装"},"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":"分页结果"},"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 响应包装"},"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 响应包装"},"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 响应包装"},"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":"分页结果"},"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":"分页结果"},"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 响应包装"},"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":"当前页数据列表"},"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":"分页结果"},"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 响应包装"}},"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":[]}}