{"openapi":"3.0.3","info":{"title":"AI 社区 API","version":"0.1.0"},"servers":[{"url":"https://jiemo.xin/api/v1"}],"paths":{"/admin/stats":{"get":{"operationId":"admin_stats","parameters":[],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/admin/content":{"get":{"operationId":"admin_content_list","parameters":[{"name":"targetType","in":"query","required":false,"schema":{"default":"post","type":"string","enum":["post","comment"]}},{"name":"status","in":"query","required":false,"schema":{"default":"all","type":"string","enum":["all","visible","hidden","deleted"]}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"limit","in":"query","required":false,"schema":{"default":20,"type":"integer","minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/admin/content/moderate":{"post":{"operationId":"admin_content_moderate","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"targetType":{"type":"string","enum":["post","comment"]},"targetId":{"type":"string","minLength":1,"maxLength":128},"decision":{"type":"string","enum":["hide","restore","delete"]},"reason":{"type":"string","maxLength":1000}},"required":["targetType","targetId","decision"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/moderation":{"get":{"operationId":"moderation_list","parameters":[{"name":"mine","in":"query","required":false,"schema":{"default":false,"type":"boolean"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["pending","review","rejected","approved","deleted","actionable"]}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/admin/moderation/{id}/decision":{"post":{"operationId":"moderation_decide","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"decision":{"type":"string","enum":["approve","delete"]},"reason":{"type":"string","minLength":2,"maxLength":1000}},"required":["decision","reason"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/moderation/{id}/appeal":{"post":{"operationId":"moderation_appeal","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":2,"maxLength":1000}},"required":["reason"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/admin/moderation/{id}/retry":{"post":{"operationId":"moderation_retry","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/moderation/{id}/withdraw":{"post":{"operationId":"moderation_withdraw","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/admin/invitations":{"get":{"operationId":"invitations_list","parameters":[],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"invitations_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"count":{"default":1,"type":"integer","minimum":1,"maximum":20},"days":{"default":7,"type":"integer","minimum":1,"maximum":30},"label":{"default":"","type":"string","maxLength":120}}}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/admin/invitations/{id}":{"delete":{"operationId":"invitations_revoke","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/communities/{id}/remove":{"post":{"operationId":"communities_remove","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"userId":{"type":"string","minLength":1,"maxLength":128}},"required":["userId"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/posts":{"get":{"operationId":"posts_list","parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":20,"type":"integer","minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"feed","in":"query","required":false,"schema":{"default":"latest","type":"string","enum":["latest","following","bookmarks"]}},{"name":"communityId","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":128}},{"name":"authorId","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":128}},{"name":"tag","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]},{}]},"post":{"operationId":"posts_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"default":"","type":"string","maxLength":10000},"communityId":{"type":"string","minLength":1,"maxLength":128},"originalId":{"type":"string","minLength":1,"maxLength":128},"mediaIds":{"default":[],"maxItems":9,"type":"array","items":{"type":"string","minLength":1,"maxLength":128}},"imageAnalysisConsent":{"default":false,"description":"仅在本人同意将图片交给配置的AI服务提取文字后设为true；不影响正常发图","type":"boolean"},"links":{"default":[],"maxItems":5,"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"}},"idempotencyKey":{"type":"string","maxLength":128}}}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/posts/{id}":{"get":{"operationId":"posts_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]},{}]},"delete":{"operationId":"posts_delete","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/posts/{id}/comments":{"post":{"operationId":"comments_create","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":10000},"idempotencyKey":{"type":"string","maxLength":128}},"required":["body"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/posts/{id}/reactions":{"put":{"operationId":"reactions_set","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["like","bookmark"]},"active":{"type":"boolean"}},"required":["kind","active"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/communities":{"get":{"operationId":"communities_list","parameters":[{"name":"city","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]},{}]},"post":{"operationId":"communities_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":60},"description":{"type":"string","minLength":1,"maxLength":10000},"city":{"type":"string","minLength":1,"maxLength":60},"visibility":{"type":"string","enum":["public","private"]}},"required":["name","description","city","visibility"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/communities/{id}":{"get":{"operationId":"communities_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]},{}]}},"/communities/{id}/join":{"post":{"operationId":"communities_join","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/communities/{id}/leave":{"post":{"operationId":"communities_leave","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/communities/{id}/members":{"get":{"operationId":"communities_members","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/communities/{id}/approve":{"post":{"operationId":"communities_approve","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"userId":{"type":"string","minLength":1,"maxLength":128},"approved":{"type":"boolean"}},"required":["userId","approved"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/communities/{id}/announcement":{"put":{"operationId":"communities_announcement","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"announcement":{"type":"string","maxLength":5000}},"required":["announcement"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/events":{"get":{"operationId":"events_list","parameters":[{"name":"city","in":"query","required":false,"schema":{"type":"string"}},{"name":"communityId","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":128}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]},{}]},"post":{"operationId":"events_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"communityId":{"type":"string","minLength":1,"maxLength":128},"title":{"type":"string","minLength":2,"maxLength":120},"description":{"type":"string","minLength":1,"maxLength":10000},"city":{"type":"string","minLength":1,"maxLength":60},"address":{"type":"string","minLength":1,"maxLength":500},"startsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"endsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"capacity":{"type":"integer","minimum":1,"maximum":1000},"idempotencyKey":{"type":"string","maxLength":128}},"required":["communityId","title","description","city","address","startsAt","endsAt","capacity"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/events/{id}":{"get":{"operationId":"events_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]},{}]},"patch":{"operationId":"events_update","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"recap":{"type":"string","maxLength":10000},"cancelled":{"type":"boolean"}},"required":[]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/events/{id}/rsvp":{"put":{"operationId":"events_rsvp","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"attending":{"type":"boolean"},"contactConsent":{"description":"预约时必须为 true，确认本人同意姓名和手机号仅用于活动联系与签到，活动结束30天后清除","type":"boolean"},"attendeeName":{"type":"string","minLength":1,"maxLength":60,"description":"报名时必填的联系人姓名；取消报名无需填写"},"phoneNumber":{"type":"string","pattern":"^(?:\\+86)?1[3-9]\\d{9}$","description":"报名时必填的中国大陆手机号，可带 +86 前缀；取消报名无需填写"}},"required":["attending"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/events/{id}/attendees":{"get":{"operationId":"events_attendees","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/events/{id}/checkin":{"post":{"operationId":"events_checkin","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"userId":{"type":"string","minLength":1,"maxLength":128}},"required":["userId"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/search":{"get":{"operationId":"search","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"type","in":"query","required":false,"schema":{"default":"all","type":"string","enum":["all","posts","github","communities","events"]}},{"name":"city","in":"query","required":false,"schema":{"type":"string"}},{"name":"tag","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"default":20,"type":"integer","minimum":1,"maximum":50}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]},{}]}},"/profiles/{id}":{"get":{"operationId":"profile_get","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]},{}]}},"/profile":{"put":{"operationId":"profile_update","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"bio":{"type":"string","maxLength":500},"city":{"type":"string","maxLength":60},"avatarMediaId":{"description":"本人上传的头像图片 ID；null 移除头像，省略保留当前头像。资料和头像审核通过前仍展示原版本。","nullable":true,"type":"string","minLength":1,"maxLength":128}},"required":["name","bio","city"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/profiles/{id}/follow":{"put":{"operationId":"follows_set","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"active":{"type":"boolean"}},"required":["active"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/profiles/{id}/block":{"put":{"operationId":"blocks_set","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"active":{"type":"boolean"}},"required":["active"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/grants":{"get":{"operationId":"grants_list","parameters":[],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"grants_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"scopes":{"minItems":1,"type":"array","items":{"type":"string","enum":["content:read","posts:write","interactions:write","events:rsvp","events:manage"]}},"communityIds":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":128}},"days":{"default":30,"type":"integer","minimum":1,"maximum":90},"oauthClientId":{"type":"string"}},"required":["name","scopes"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/grants/{id}":{"delete":{"operationId":"grants_revoke","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/notifications":{"get":{"operationId":"notifications_list","parameters":[],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/notifications/read":{"post":{"operationId":"notifications_read","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/posts/{id}/report":{"post":{"operationId":"reports_create","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":2,"maxLength":1000}},"required":["reason"]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/admin":{"get":{"operationId":"admin_overview","parameters":[],"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/admin/moderate":{"post":{"operationId":"admin_moderate","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reportId":{"type":"string","minLength":1,"maxLength":128},"postId":{"type":"string","minLength":1,"maxLength":128},"userId":{"type":"string","minLength":1,"maxLength":128},"banned":{"type":"boolean"}}}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}},"/jobs/{id}/retry":{"post":{"operationId":"jobs_retry","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"responses":{"200":{"description":"成功","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"需要登录或授权"},"403":{"description":"没有操作权限"},"409":{"description":"名额已满或幂等冲突"}},"security":[{"bearerAuth":[]}]}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}}}