Explorar el Código

chore(dashboard-v6): 提交从 OpenAPI 生成的接口类型

由 npx openapi-typescript 从 openapi/public/assets/protocol/main.yaml 生成。
覆盖 285 个 path、777 个 operation,其中 128 个 operation 的响应字段结构来自
Resource 的 @return array{...} 声明。

有意提交进版本库而不是 gitignore:目前没有 CI,文件不在库里别人 clone 下来
构建不了;且 API 契约变更在 diff 里可见,review 时能直接看出后端改了什么。

前端类型从此不再手写,改为 `import type { paths } from "./schema"`。
后端改了字段而前端没跟,npm run build 会直接报错。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
visuddhinanda hace 3 semanas
padre
commit
473cfbe96c
Se han modificado 1 ficheros con 34772 adiciones y 0 borrados
  1. 34772 0
      dashboard-v6/src/api/schema.d.ts

+ 34772 - 0
dashboard-v6/src/api/schema.d.ts

@@ -0,0 +1,34772 @@
+/**
+ * This file was auto-generated by openapi-typescript.
+ * Do not make direct changes to the file.
+ */
+
+export interface paths {
+    "/api/sentence/progress/daily/image": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * showprogressdaily api/api/sentence/progress/daily/image
+         * @description 实现:`SentenceInfoController@showprogressdaily`
+         */
+        get: operations["get_api_api_sentence_progress_daily_image"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/api/sentence/progress/image": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 输出一张图片显示进度
+         * @description http://127.0.0.1:8000/api/sentence/progress/image?channel=00ae2c48-c204-4082-ae79-79ba2740d506&&book=168&from=916&to=926&view=page&pages=400
+         *
+         *     实现:`SentenceInfoController@showprogress`
+         */
+        get: operations["get_api_api_sentence_progress_image"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/ops/update-pali-synonyms/{version}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        get?: never;
+        /**
+         * 更新索引使用的 pali 同义词文件版本
+         * @description 将 pali_synonyms filter 的 synonyms_path 指向
+         *     analysis/pali-synonyms-{$version}.txt,该文件须已上传到
+         *     OpenSearch 各节点的 config 目录。
+         *
+         *     实现:`UpdatePaliSynonymsController@update`
+         */
+        put: operations["put_api_ops_update_pali_synonyms_version_"];
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/access-token": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 access-token
+         * @description 实现:`AccessTokenController@index`
+         */
+        get: operations["get_api_v2_access_token"];
+        put?: never;
+        /**
+         * 新建 access-token
+         * @description 实现:`AccessTokenController@store`
+         */
+        post: operations["post_api_v2_access_token"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/access-token/{access_token}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 access-token/{access_token}
+         * @description 实现:`AccessTokenController@show`
+         */
+        get: operations["get_api_v2_access_token_access_token_"];
+        /**
+         * 更新 access-token/{access_token}
+         * @description 实现:`AccessTokenController@update`
+         */
+        put: operations["put_api_v2_access_token_access_token_"];
+        post?: never;
+        /**
+         * 删除 access-token/{access_token}
+         * @description 实现:`AccessTokenController@destroy`
+         */
+        delete: operations["delete_api_v2_access_token_access_token_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 access-token/{access_token}
+         * @description 实现:`AccessTokenController@update`
+         */
+        patch: operations["patch_api_v2_access_token_access_token_"];
+        trace?: never;
+    };
+    "/v2/ai-assistant": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 ai-assistant
+         * @description 实现:`AiAssistantController@index`
+         */
+        get: operations["get_api_v2_ai_assistant"];
+        put?: never;
+        /**
+         * 新建 ai-assistant
+         * @description 实现:`AiAssistantController@store`
+         */
+        post: operations["post_api_v2_ai_assistant"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/ai-assistant/{ai_assistant}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 ai-assistant/{ai_assistant}
+         * @description 实现:`AiAssistantController@show`
+         */
+        get: operations["get_api_v2_ai_assistant_ai_assistant_"];
+        /**
+         * 更新 ai-assistant/{ai_assistant}
+         * @description 实现:`AiAssistantController@update`
+         */
+        put: operations["put_api_v2_ai_assistant_ai_assistant_"];
+        post?: never;
+        /**
+         * 删除 ai-assistant/{ai_assistant}
+         * @description 实现:`AiAssistantController@destroy`
+         */
+        delete: operations["delete_api_v2_ai_assistant_ai_assistant_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 ai-assistant/{ai_assistant}
+         * @description 实现:`AiAssistantController@update`
+         */
+        patch: operations["patch_api_v2_ai_assistant_ai_assistant_"];
+        trace?: never;
+    };
+    "/v2/ai-model": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 ai-model
+         * @description 实现:`AiModelController@index`
+         */
+        get: operations["get_api_v2_ai_model"];
+        put?: never;
+        /**
+         * 新建 ai-model
+         * @description 实现:`AiModelController@store`
+         */
+        post: operations["post_api_v2_ai_model"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/ai-model-token/{ai_model}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 取得指定 AI 模型的 user token。
+         * @description 仅模型 owner 本人可调用(设计决策:模型只挂个人 studio,不支持 group studio)。
+         *     签出的 token 有效期 30 天,可用 destroy() 提前撤销;属高敏感凭据,故记入 ops 日志。
+         *
+         *     实现:`AiModelTokenController@show`
+         */
+        get: operations["get_api_v2_ai_model_token_ai_model_"];
+        put?: never;
+        post?: never;
+        /**
+         * 撤销该模型已签出的全部身份 token。
+         * @description 版本号自增后,旧 token 里的 ver 立即对不上(见 AuthService::current())。
+         *     无法只撤销其中一张——凭据泄漏时本就该全部作废。
+         *
+         *     实现:`AiModelTokenController@destroy`
+         */
+        delete: operations["delete_api_v2_ai_model_token_ai_model_"];
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/ai-model/{ai_model}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 ai-model/{ai_model}
+         * @description 实现:`AiModelController@show`
+         */
+        get: operations["get_api_v2_ai_model_ai_model_"];
+        /**
+         * 更新 ai-model/{ai_model}
+         * @description 实现:`AiModelController@update`
+         */
+        put: operations["put_api_v2_ai_model_ai_model_"];
+        post?: never;
+        /**
+         * 删除 ai-model/{ai_model}
+         * @description 实现:`AiModelController@destroy`
+         */
+        delete: operations["delete_api_v2_ai_model_ai_model_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 ai-model/{ai_model}
+         * @description 实现:`AiModelController@update`
+         */
+        patch: operations["patch_api_v2_ai_model_ai_model_"];
+        trace?: never;
+    };
+    "/v2/ai-translate": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 ai-translate
+         * @description 实现:`AiTranslateController@index`
+         */
+        get: operations["get_api_v2_ai_translate"];
+        put?: never;
+        /**
+         * 新建 ai-translate
+         * @description 实现:`AiTranslateController@store`
+         */
+        post: operations["post_api_v2_ai_translate"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/ai-translate/{ai_translate}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 ai-translate/{ai_translate}
+         * @description 实现:`AiTranslateController@show`
+         */
+        get: operations["get_api_v2_ai_translate_ai_translate_"];
+        /**
+         * 更新 ai-translate/{ai_translate}
+         * @description 实现:`AiTranslateController@update`
+         */
+        put: operations["put_api_v2_ai_translate_ai_translate_"];
+        post?: never;
+        /**
+         * 删除 ai-translate/{ai_translate}
+         * @description 实现:`AiTranslateController@destroy`
+         */
+        delete: operations["delete_api_v2_ai_translate_ai_translate_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 ai-translate/{ai_translate}
+         * @description 实现:`AiTranslateController@update`
+         */
+        patch: operations["patch_api_v2_ai_translate_ai_translate_"];
+        trace?: never;
+    };
+    "/v2/anthology": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 anthology
+         * @description 实现:`CollectionController@index`
+         */
+        get: operations["get_api_v2_anthology"];
+        put?: never;
+        /**
+         * 新建 anthology
+         * @description 实现:`CollectionController@store`
+         */
+        post: operations["post_api_v2_anthology"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/anthology-my-number": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * showMyNumber anthology-my-number
+         * @description 实现:`CollectionController@showMyNumber`
+         */
+        get: operations["get_api_v2_anthology_my_number"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/anthology/{anthology}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 anthology/{anthology}
+         * @description 实现:`CollectionController@show`
+         */
+        get: operations["get_api_v2_anthology_anthology_"];
+        /**
+         * 更新 anthology/{anthology}
+         * @description 实现:`CollectionController@update`
+         */
+        put: operations["put_api_v2_anthology_anthology_"];
+        post?: never;
+        /**
+         * 删除 anthology/{anthology}
+         * @description 实现:`CollectionController@destroy`
+         */
+        delete: operations["delete_api_v2_anthology_anthology_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 anthology/{anthology}
+         * @description 实现:`CollectionController@update`
+         */
+        patch: operations["patch_api_v2_anthology_anthology_"];
+        trace?: never;
+    };
+    "/v2/api": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 api
+         * @description 实现:`ApiController@index`
+         */
+        get: operations["get_api_v2_api"];
+        put?: never;
+        /**
+         * 新建 api
+         * @description 实现:`ApiController@store`
+         */
+        post: operations["post_api_v2_api"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/api/{api}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 api/{api}
+         * @description 实现:`ApiController@show`
+         */
+        get: operations["get_api_v2_api_api_"];
+        /**
+         * 更新 api/{api}
+         * @description 实现:`ApiController@update`
+         */
+        put: operations["put_api_v2_api_api_"];
+        post?: never;
+        /**
+         * 删除 api/{api}
+         * @description 实现:`ApiController@destroy`
+         */
+        delete: operations["delete_api_v2_api_api_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 api/{api}
+         * @description 实现:`ApiController@update`
+         */
+        patch: operations["patch_api_v2_api_api_"];
+        trace?: never;
+    };
+    "/v2/article": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 article(文章)
+         * @description 按 view 指定的口径返回文章列表,支持关键字搜索、分页、排序。
+         *     默认只返回列表字段(uid、title、subtitle、summary、owner、lang、status、editor_id、时间),
+         *     content=true 时才附带正文与正文类型。
+         *     view=studio 需要登录,且当前登录用户必须就是 name 指定的 studio 的拥有者,否则返回 401/403。
+         *
+         *     实现:`ArticleController@index`
+         */
+        get: operations["get_api_v2_article"];
+        put?: never;
+        /**
+         * 新建 article(文章)
+         * @description 需要登录。权限:当前用户必须是 studio 的拥有者;若不是,则必须对 anthologyId 指定的文集
+         *     拥有大于只读的权限(power>10),否则返回 403。
+         *     副作用:整个新建过程在事务中执行——写入 articles 表,若给了 anthologyId 则同时把文章挂进文集;
+         *     若再给了 parentNode,会按目录树重建该文集的 article_collections 记录(删除后整表重插)并刷新文集缓存。
+         *     标题超过 128 字会被截断。
+         *
+         *     实现:`ArticleController@store`
+         */
+        post: operations["post_api_v2_article"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/article-fts": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * http://127.0.0.1:8000/api/v2/article-fts?id=df6c6609-6fc1-42d0-9ef1-535ef3e702c9&anthology=697c9169-cb9d-4a60-8848-92745e467bab&channesl=7fea264d-7a26-40f8-bef7-bc95102760fb
+         * @description 实现:`ArticleFtsController@index`
+         */
+        get: operations["get_api_v2_article_fts"];
+        put?: never;
+        /**
+         * 新建 article-fts
+         * @description 实现:`ArticleFtsController@store`
+         */
+        post: operations["post_api_v2_article_fts"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/article-fts/{article_ft}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 article-fts/{article_ft}
+         * @description 实现:`ArticleFtsController@show`
+         */
+        get: operations["get_api_v2_article_fts_article_ft_"];
+        /**
+         * 更新 article-fts/{article_ft}
+         * @description 实现:`ArticleFtsController@update`
+         */
+        put: operations["put_api_v2_article_fts_article_ft_"];
+        post?: never;
+        /**
+         * 删除 article-fts/{article_ft}
+         * @description 实现:`ArticleFtsController@destroy`
+         */
+        delete: operations["delete_api_v2_article_fts_article_ft_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 article-fts/{article_ft}
+         * @description 实现:`ArticleFtsController@update`
+         */
+        patch: operations["patch_api_v2_article_fts_article_ft_"];
+        trace?: never;
+    };
+    "/v2/article-map": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 article-map
+         * @description 实现:`ArticleMapController@index`
+         */
+        get: operations["get_api_v2_article_map"];
+        put?: never;
+        /**
+         * 新建 article-map
+         * @description 实现:`ArticleMapController@store`
+         */
+        post: operations["post_api_v2_article_map"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/article-map/{article_map}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 article-map/{article_map}
+         * @description 实现:`ArticleMapController@show`
+         */
+        get: operations["get_api_v2_article_map_article_map_"];
+        /**
+         * 更新 article-map/{article_map}
+         * @description 实现:`ArticleMapController@update`
+         */
+        put: operations["put_api_v2_article_map_article_map_"];
+        post?: never;
+        /**
+         * 删除 article-map/{article_map}
+         * @description 实现:`ArticleMapController@destroy`
+         */
+        delete: operations["delete_api_v2_article_map_article_map_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 article-map/{article_map}
+         * @description 实现:`ArticleMapController@update`
+         */
+        patch: operations["patch_api_v2_article_map_article_map_"];
+        trace?: never;
+    };
+    "/v2/article-my-number": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 统计我的文章数量
+         * @description 返回指定 studio 下「我的」和「协作的」两类文章条数。
+         *     需要登录,且当前登录用户必须就是 studio 的拥有者,否则返回鉴权失败。
+         *
+         *     实现:`ArticleController@showMyNumber`
+         */
+        get: operations["get_api_v2_article_my_number"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/article-nav": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 article-nav
+         * @description 实现:`ArticleNavController@index`
+         */
+        get: operations["get_api_v2_article_nav"];
+        put?: never;
+        /**
+         * 新建 article-nav
+         * @description 实现:`ArticleNavController@store`
+         */
+        post: operations["post_api_v2_article_nav"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/article-nav/{article_nav}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 article-nav/{article_nav}
+         * @description 实现:`ArticleNavController@show`
+         */
+        get: operations["get_api_v2_article_nav_article_nav_"];
+        /**
+         * 更新 article-nav/{article_nav}
+         * @description 实现:`ArticleNavController@update`
+         */
+        put: operations["put_api_v2_article_nav_article_nav_"];
+        post?: never;
+        /**
+         * 删除 article-nav/{article_nav}
+         * @description 实现:`ArticleNavController@destroy`
+         */
+        delete: operations["delete_api_v2_article_nav_article_nav_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 article-nav/{article_nav}
+         * @description 实现:`ArticleNavController@update`
+         */
+        patch: operations["patch_api_v2_article_nav_article_nav_"];
+        trace?: never;
+    };
+    "/v2/article-preview/{id}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        get?: never;
+        /**
+         * 预览文章正文
+         * @description PUT /api/v2/article-preview/{id}。用请求体里的 content 覆盖文章正文后走一遍渲染再返回,
+         *     不写数据库,用于编辑器里的即时预览。
+         *     权限与查看文章一致:公开文章匿名可预览,否则需要读权限,无权限返回 401。
+         *     未传 content 时返回 error('no content'),但 HTTP 状态码仍是 200。
+         *
+         *     实现:`ArticleController@preview`
+         */
+        put: operations["put_api_v2_article_preview_id_"];
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/article-progress": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 article-progress
+         * @description 实现:`ArticleProgressController@index`
+         */
+        get: operations["get_api_v2_article_progress"];
+        put?: never;
+        /**
+         * 新建 article-progress
+         * @description 实现:`ArticleProgressController@store`
+         */
+        post: operations["post_api_v2_article_progress"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/article-progress/{article_progress}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 article-progress/{article_progress}
+         * @description 实现:`ArticleProgressController@show`
+         */
+        get: operations["get_api_v2_article_progress_article_progress_"];
+        /**
+         * 更新 article-progress/{article_progress}
+         * @description 实现:`ArticleProgressController@update`
+         */
+        put: operations["put_api_v2_article_progress_article_progress_"];
+        post?: never;
+        /**
+         * 删除 article-progress/{article_progress}
+         * @description 实现:`ArticleProgressController@destroy`
+         */
+        delete: operations["delete_api_v2_article_progress_article_progress_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 article-progress/{article_progress}
+         * @description 实现:`ArticleProgressController@update`
+         */
+        patch: operations["patch_api_v2_article_progress_article_progress_"];
+        trace?: never;
+    };
+    "/v2/article/{article}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 查看单篇 article(文章)
+         * @description 前端阅读页最常用的接口。允许匿名访问:status=30(公开)的文章任何人可读;
+         *     非公开文章需要登录,且满足以下之一——是文章 owner、对该文章有只读以上共享权限(power>=10)、
+         *     或对该文章所在的(同一 owner 的)文集有只读以上共享权限,否则返回 403。
+         *
+         *     实现:`ArticleController@show`
+         */
+        get: operations["get_api_v2_article_article_"];
+        /**
+         * 更新 article(文章)
+         * @description 需要登录。权限:必须是文章 owner,或对文章有编辑以上共享权限(power>=20),
+         *     或对文章所在的同 owner 文集有编辑以上权限,否则返回 401。
+         *     字段会整体覆盖:title/subtitle 截断到 128 字,summary 截断到 1024 字,
+         *     status 未传时会被重置为 10(非公开),即部分更新也必须带全字段。
+         *     副作用:to_tpl=true 时把正文转成模版——按行切句,正文中的句子被替换成 {{book-para-start-end}} 占位,
+         *     同时把原文逐句写入 sentences 表(必要时为文集新建 CustomBook 与 channel),该过程需要对应 channel 的写权限。
+         *
+         *     实现:`ArticleController@update`
+         */
+        put: operations["put_api_v2_article_article_"];
+        post?: never;
+        /**
+         * 删除 article(文章)
+         * @description 需要登录,且只有文章 owner 本人可以删除(协作者不行),否则返回鉴权失败。
+         *     副作用:在事务中删除文章记录,并同步把该文章从所有文集目录(article_collections)中摘除。
+         *
+         *     实现:`ArticleController@destroy`
+         */
+        delete: operations["delete_api_v2_article_article_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 article(文章)
+         * @description 需要登录。权限:必须是文章 owner,或对文章有编辑以上共享权限(power>=20),
+         *     或对文章所在的同 owner 文集有编辑以上权限,否则返回 401。
+         *     字段会整体覆盖:title/subtitle 截断到 128 字,summary 截断到 1024 字,
+         *     status 未传时会被重置为 10(非公开),即部分更新也必须带全字段。
+         *     副作用:to_tpl=true 时把正文转成模版——按行切句,正文中的句子被替换成 {{book-para-start-end}} 占位,
+         *     同时把原文逐句写入 sentences 表(必要时为文集新建 CustomBook 与 channel),该过程需要对应 channel 的写权限。
+         *
+         *     实现:`ArticleController@update`
+         */
+        patch: operations["patch_api_v2_article_article_"];
+        trace?: never;
+    };
+    "/v2/attachment": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 attachment
+         * @description 实现:`AttachmentController@index`
+         */
+        get: operations["get_api_v2_attachment"];
+        put?: never;
+        /**
+         * 新建 attachment
+         * @description 实现:`AttachmentController@store`
+         */
+        post: operations["post_api_v2_attachment"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/attachment/{attachment}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 attachment/{attachment}
+         * @description 实现:`AttachmentController@show`
+         */
+        get: operations["get_api_v2_attachment_attachment_"];
+        /**
+         * 更新 attachment/{attachment}
+         * @description 实现:`AttachmentController@update`
+         */
+        put: operations["put_api_v2_attachment_attachment_"];
+        post?: never;
+        /**
+         * 删除 attachment/{attachment}
+         * @description 实现:`AttachmentController@destroy`
+         */
+        delete: operations["delete_api_v2_attachment_attachment_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 attachment/{attachment}
+         * @description 实现:`AttachmentController@update`
+         */
+        patch: operations["patch_api_v2_attachment_attachment_"];
+        trace?: never;
+    };
+    "/v2/attachments": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 attachments
+         * @description 实现:`UploadController@index`
+         */
+        get: operations["get_api_v2_attachments"];
+        put?: never;
+        /**
+         * 新建 attachments
+         * @description 实现:`UploadController@store`
+         */
+        post: operations["post_api_v2_attachments"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/attachments/{attachment}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 attachments/{attachment}
+         * @description 实现:`UploadController@show`
+         */
+        get: operations["get_api_v2_attachments_attachment_"];
+        /**
+         * 更新 attachments/{attachment}
+         * @description 实现:`UploadController@update`
+         */
+        put: operations["put_api_v2_attachments_attachment_"];
+        post?: never;
+        /**
+         * 删除 attachments/{attachment}
+         * @description 实现:`UploadController@destroy`
+         */
+        delete: operations["delete_api_v2_attachments_attachment_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 attachments/{attachment}
+         * @description 实现:`UploadController@update`
+         */
+        patch: operations["patch_api_v2_attachments_attachment_"];
+        trace?: never;
+    };
+    "/v2/auth/current": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * getUserInfoByToken auth/current
+         * @description 实现:`AuthController@getUserInfoByToken`
+         */
+        get: operations["get_api_v2_auth_current"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/auth/forgot-password": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 auth/forgot-password
+         * @description 实现:`ForgotPasswordController@index`
+         */
+        get: operations["get_api_v2_auth_forgot_password"];
+        put?: never;
+        /**
+         * 新建 auth/forgot-password
+         * @description 实现:`ForgotPasswordController@store`
+         */
+        post: operations["post_api_v2_auth_forgot_password"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/auth/forgot-password/{forgot_password}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 auth/forgot-password/{forgot_password}
+         * @description 实现:`ForgotPasswordController@show`
+         */
+        get: operations["get_api_v2_auth_forgot_password_forgot_password_"];
+        /**
+         * 更新 auth/forgot-password/{forgot_password}
+         * @description 实现:`ForgotPasswordController@update`
+         */
+        put: operations["put_api_v2_auth_forgot_password_forgot_password_"];
+        post?: never;
+        /**
+         * 删除 auth/forgot-password/{forgot_password}
+         * @description 实现:`ForgotPasswordController@destroy`
+         */
+        delete: operations["delete_api_v2_auth_forgot_password_forgot_password_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 auth/forgot-password/{forgot_password}
+         * @description 实现:`ForgotPasswordController@update`
+         */
+        patch: operations["patch_api_v2_auth_forgot_password_forgot_password_"];
+        trace?: never;
+    };
+    "/v2/auth/reset-password": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 auth/reset-password
+         * @description 实现:`ResetPasswordController@index`
+         */
+        get: operations["get_api_v2_auth_reset_password"];
+        put?: never;
+        /**
+         * 新建 auth/reset-password
+         * @description 实现:`ResetPasswordController@store`
+         */
+        post: operations["post_api_v2_auth_reset_password"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/auth/reset-password/{reset_password}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 根据token获取用户名.
+         * @description 实现:`ResetPasswordController@show`
+         */
+        get: operations["get_api_v2_auth_reset_password_reset_password_"];
+        /**
+         * 更新 auth/reset-password/{reset_password}
+         * @description 实现:`ResetPasswordController@update`
+         */
+        put: operations["put_api_v2_auth_reset_password_reset_password_"];
+        post?: never;
+        /**
+         * 删除 auth/reset-password/{reset_password}
+         * @description 实现:`ResetPasswordController@destroy`
+         */
+        delete: operations["delete_api_v2_auth_reset_password_reset_password_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 auth/reset-password/{reset_password}
+         * @description 实现:`ResetPasswordController@update`
+         */
+        patch: operations["patch_api_v2_auth_reset_password_reset_password_"];
+        trace?: never;
+    };
+    "/v2/book-title": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 book-title
+         * @description 实现:`BookTitleController@index`
+         */
+        get: operations["get_api_v2_book_title"];
+        put?: never;
+        /**
+         * 新建 book-title
+         * @description 实现:`BookTitleController@store`
+         */
+        post: operations["post_api_v2_book_title"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/book-title/{book_title}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 book-title/{book_title}
+         * @description 实现:`BookTitleController@show`
+         */
+        get: operations["get_api_v2_book_title_book_title_"];
+        /**
+         * 更新 book-title/{book_title}
+         * @description 实现:`BookTitleController@update`
+         */
+        put: operations["put_api_v2_book_title_book_title_"];
+        post?: never;
+        /**
+         * 删除 book-title/{book_title}
+         * @description 实现:`BookTitleController@destroy`
+         */
+        delete: operations["delete_api_v2_book_title_book_title_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 book-title/{book_title}
+         * @description 实现:`BookTitleController@update`
+         */
+        patch: operations["patch_api_v2_book_title_book_title_"];
+        trace?: never;
+    };
+    "/v2/case": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 case
+         * @description 实现:`CaseController@index`
+         */
+        get: operations["get_api_v2_case"];
+        put?: never;
+        /**
+         * 新建 case
+         * @description 实现:`CaseController@store`
+         */
+        post: operations["post_api_v2_case"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/case/{case}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 输入一个单词,输出三藏中所有可能的变形
+         * @description 实现:`CaseController@show`
+         */
+        get: operations["get_api_v2_case_case_"];
+        /**
+         * 更新 case/{case}
+         * @description 实现:`CaseController@update`
+         */
+        put: operations["put_api_v2_case_case_"];
+        post?: never;
+        /**
+         * 删除 case/{case}
+         * @description 实现:`CaseController@destroy`
+         */
+        delete: operations["delete_api_v2_case_case_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 case/{case}
+         * @description 实现:`CaseController@update`
+         */
+        patch: operations["patch_api_v2_case_case_"];
+        trace?: never;
+    };
+    "/v2/channel": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 channel(译文集)
+         * @description 按 view 指定的口径返回 channel 列表,支持关键字搜索、分页、排序。
+         *     需要登录的口径:studio、studio-all、user-edit、user-in-chapter。
+         *
+         *     实现:`ChannelController@index`
+         */
+        get: operations["get_api_v2_channel"];
+        put?: never;
+        /**
+         * 新建 channel
+         * @description 在指定 studio 下新建译文集。同一 studio 内不允许重名。
+         *     调用者必须对该 studio 有管理权限。
+         *
+         *     实现:`ChannelController@store`
+         */
+        post: operations["post_api_v2_channel"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        /**
+         * 局部更新 channel
+         * @description 只更新请求体中出现的字段。系统 channel 不可修改;非 owner 需要 30 以上的协作权限。
+         *
+         *     实现:`ChannelController@patch`
+         */
+        patch: operations["patch_api_v2_channel"];
+        trace?: never;
+    };
+    "/v2/channel-io": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 channel-io
+         * @description 实现:`ChannelIOController@index`
+         */
+        get: operations["get_api_v2_channel_io"];
+        put?: never;
+        /**
+         * 新建 channel-io
+         * @description 实现:`ChannelIOController@store`
+         */
+        post: operations["post_api_v2_channel_io"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/channel-io/{channel_io}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 channel-io/{channel_io}
+         * @description 实现:`ChannelIOController@show`
+         */
+        get: operations["get_api_v2_channel_io_channel_io_"];
+        /**
+         * 更新 channel-io/{channel_io}
+         * @description 实现:`ChannelIOController@update`
+         */
+        put: operations["put_api_v2_channel_io_channel_io_"];
+        post?: never;
+        /**
+         * 删除 channel-io/{channel_io}
+         * @description 实现:`ChannelIOController@destroy`
+         */
+        delete: operations["delete_api_v2_channel_io_channel_io_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 channel-io/{channel_io}
+         * @description 实现:`ChannelIOController@update`
+         */
+        patch: operations["patch_api_v2_channel_io_channel_io_"];
+        trace?: never;
+    };
+    "/v2/channel-my-number": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取我的,和协作channel数量
+         * @description 实现:`ChannelController@showMyNumber`
+         */
+        get: operations["get_api_v2_channel_my_number"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/channel-name/{name}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 按名称获取 channel
+         * @description 实现:`ChannelController@showByName`
+         */
+        get: operations["get_api_v2_channel_name_name_"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/channel-progress": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        get?: never;
+        put?: never;
+        /**
+         * 获取章节的进度
+         * @description 实现:`ChannelController@progress`
+         */
+        post: operations["post_api_v2_channel_progress"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/channel/{channel}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 channel
+         * @description 返回 channel 详情,附带所属 studio 与作者信息。
+         *
+         *     实现:`ChannelController@show`
+         */
+        get: operations["get_api_v2_channel_channel_"];
+        /**
+         * 整体更新 channel
+         * @description 覆盖式更新,未传的字段会被写成 null;只改部分字段请用 PATCH /channel。
+         *     系统 channel 不可修改;非 owner 需要 30 以上的协作权限。
+         *
+         *     实现:`ChannelController@update`
+         */
+        put: operations["put_api_v2_channel_channel_"];
+        post?: never;
+        /**
+         * 删除 channel
+         * @description 只有 owner 可以删除。channel 下已有译文、术语或逐词解析数据时拒绝删除。
+         *
+         *     实现:`ChannelController@destroy`
+         */
+        delete: operations["delete_api_v2_channel_channel_"];
+        options?: never;
+        head?: never;
+        /**
+         * 整体更新 channel
+         * @description 覆盖式更新,未传的字段会被写成 null;只改部分字段请用 PATCH /channel。
+         *     系统 channel 不可修改;非 owner 需要 30 以上的协作权限。
+         *
+         *     实现:`ChannelController@update`
+         */
+        patch: operations["patch_api_v2_channel_channel_"];
+        trace?: never;
+    };
+    "/v2/chapter": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 chapter
+         * @description 实现:`ChapterController@index`
+         */
+        get: operations["get_api_v2_chapter"];
+        put?: never;
+        /**
+         * 新建 chapter
+         * @description 实现:`ChapterController@store`
+         */
+        post: operations["post_api_v2_chapter"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/chapter-content": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 chapter-content
+         * @description 实现:`ChapterContentController@index`
+         */
+        get: operations["get_api_v2_chapter_content"];
+        put?: never;
+        /**
+         * 新建 chapter-content
+         * @description 实现:`ChapterContentController@store`
+         */
+        post: operations["post_api_v2_chapter_content"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/chapter-content/{chapter_content}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 chapter-content/{chapter_content}
+         * @description 实现:`ChapterContentController@show`
+         */
+        get: operations["get_api_v2_chapter_content_chapter_content_"];
+        /**
+         * 更新 chapter-content/{chapter_content}
+         * @description 实现:`ChapterContentController@update`
+         */
+        put: operations["put_api_v2_chapter_content_chapter_content_"];
+        post?: never;
+        /**
+         * 删除 chapter-content/{chapter_content}
+         * @description 实现:`ChapterContentController@destroy`
+         */
+        delete: operations["delete_api_v2_chapter_content_chapter_content_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 chapter-content/{chapter_content}
+         * @description 实现:`ChapterContentController@update`
+         */
+        patch: operations["patch_api_v2_chapter_content_chapter_content_"];
+        trace?: never;
+    };
+    "/v2/chapter-index": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 chapter-index
+         * @description 实现:`ChapterIndexController@index`
+         */
+        get: operations["get_api_v2_chapter_index"];
+        put?: never;
+        /**
+         * 新建 chapter-index
+         * @description 实现:`ChapterIndexController@store`
+         */
+        post: operations["post_api_v2_chapter_index"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/chapter-index/{chapter_index}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 chapter-index/{chapter_index}
+         * @description 实现:`ChapterIndexController@show`
+         */
+        get: operations["get_api_v2_chapter_index_chapter_index_"];
+        /**
+         * 更新 chapter-index/{chapter_index}
+         * @description 实现:`ChapterIndexController@update`
+         */
+        put: operations["put_api_v2_chapter_index_chapter_index_"];
+        post?: never;
+        /**
+         * 删除 chapter-index/{chapter_index}
+         * @description 实现:`ChapterIndexController@destroy`
+         */
+        delete: operations["delete_api_v2_chapter_index_chapter_index_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 chapter-index/{chapter_index}
+         * @description 实现:`ChapterIndexController@update`
+         */
+        patch: operations["patch_api_v2_chapter_index_chapter_index_"];
+        trace?: never;
+    };
+    "/v2/chapter-io": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 chapter-io
+         * @description 实现:`ChapterIOController@index`
+         */
+        get: operations["get_api_v2_chapter_io"];
+        put?: never;
+        /**
+         * 新建 chapter-io
+         * @description 实现:`ChapterIOController@store`
+         */
+        post: operations["post_api_v2_chapter_io"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/chapter-io/{chapter_io}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 chapter-io/{chapter_io}
+         * @description 实现:`ChapterIOController@show`
+         */
+        get: operations["get_api_v2_chapter_io_chapter_io_"];
+        /**
+         * 更新 chapter-io/{chapter_io}
+         * @description 实现:`ChapterIOController@update`
+         */
+        put: operations["put_api_v2_chapter_io_chapter_io_"];
+        post?: never;
+        /**
+         * 删除 chapter-io/{chapter_io}
+         * @description 实现:`ChapterIOController@destroy`
+         */
+        delete: operations["delete_api_v2_chapter_io_chapter_io_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 chapter-io/{chapter_io}
+         * @description 实现:`ChapterIOController@update`
+         */
+        patch: operations["patch_api_v2_chapter_io_chapter_io_"];
+        trace?: never;
+    };
+    "/v2/chapter/{chapter}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 chapter/{chapter}
+         * @description 实现:`ChapterController@show`
+         */
+        get: operations["get_api_v2_chapter_chapter_"];
+        /**
+         * 更新 chapter/{chapter}
+         * @description 实现:`ChapterController@update`
+         */
+        put: operations["put_api_v2_chapter_chapter_"];
+        post?: never;
+        /**
+         * 删除 chapter/{chapter}
+         * @description 实现:`ChapterController@destroy`
+         */
+        delete: operations["delete_api_v2_chapter_chapter_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 chapter/{chapter}
+         * @description 实现:`ChapterController@update`
+         */
+        patch: operations["patch_api_v2_chapter_chapter_"];
+        trace?: never;
+    };
+    "/v2/chat-messages": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 chat-messages
+         * @description 实现:`ChatMessageController@index`
+         */
+        get: operations["get_api_v2_chat_messages"];
+        put?: never;
+        /**
+         * 新建 chat-messages
+         * @description 实现:`ChatMessageController@store`
+         */
+        post: operations["post_api_v2_chat_messages"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/chat-messages/{chat_message}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 chat-messages/{chat_message}
+         * @description 实现:`ChatMessageController@show`
+         */
+        get: operations["get_api_v2_chat_messages_chat_message_"];
+        /**
+         * 更新 chat-messages/{chat_message}
+         * @description 实现:`ChatMessageController@update`
+         */
+        put: operations["put_api_v2_chat_messages_chat_message_"];
+        post?: never;
+        /**
+         * 删除 chat-messages/{chat_message}
+         * @description 实现:`ChatMessageController@destroy`
+         */
+        delete: operations["delete_api_v2_chat_messages_chat_message_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 chat-messages/{chat_message}
+         * @description 实现:`ChatMessageController@update`
+         */
+        patch: operations["patch_api_v2_chat_messages_chat_message_"];
+        trace?: never;
+    };
+    "/v2/chats": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 chats
+         * @description 实现:`ChatController@index`
+         */
+        get: operations["get_api_v2_chats"];
+        put?: never;
+        /**
+         * 新建 chats
+         * @description 实现:`ChatController@store`
+         */
+        post: operations["post_api_v2_chats"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/chats/{chat}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 chats/{chat}
+         * @description 实现:`ChatController@show`
+         */
+        get: operations["get_api_v2_chats_chat_"];
+        /**
+         * 更新 chats/{chat}
+         * @description 实现:`ChatController@update`
+         */
+        put: operations["put_api_v2_chats_chat_"];
+        post?: never;
+        /**
+         * 单个软删除
+         * @description 实现:`ChatController@destroy`
+         */
+        delete: operations["delete_api_v2_chats_chat_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 chats/{chat}
+         * @description 实现:`ChatController@update`
+         */
+        patch: operations["patch_api_v2_chats_chat_"];
+        trace?: never;
+    };
+    "/v2/command": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 command
+         * @description 实现:`CommandController@index`
+         */
+        get: operations["get_api_v2_command"];
+        put?: never;
+        /**
+         * 新建 command
+         * @description 实现:`CommandController@store`
+         */
+        post: operations["post_api_v2_command"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/command/{command}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 command/{command}
+         * @description 实现:`CommandController@show`
+         */
+        get: operations["get_api_v2_command_command_"];
+        /**
+         * 更新 command/{command}
+         * @description 实现:`CommandController@update`
+         */
+        put: operations["put_api_v2_command_command_"];
+        post?: never;
+        /**
+         * 删除 command/{command}
+         * @description 实现:`CommandController@destroy`
+         */
+        delete: operations["delete_api_v2_command_command_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 command/{command}
+         * @description 实现:`CommandController@update`
+         */
+        patch: operations["patch_api_v2_command_command_"];
+        trace?: never;
+    };
+    "/v2/compound": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 compound
+         * @description 实现:`CompoundController@index`
+         */
+        get: operations["get_api_v2_compound"];
+        put?: never;
+        /**
+         * 新建 compound
+         * @description 实现:`CompoundController@store`
+         */
+        post: operations["post_api_v2_compound"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/compound/{compound}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 compound/{compound}
+         * @description 实现:`CompoundController@show`
+         */
+        get: operations["get_api_v2_compound_compound_"];
+        /**
+         * 更新 compound/{compound}
+         * @description 实现:`CompoundController@update`
+         */
+        put: operations["put_api_v2_compound_compound_"];
+        post?: never;
+        /**
+         * 删除 compound/{compound}
+         * @description 实现:`CompoundController@destroy`
+         */
+        delete: operations["delete_api_v2_compound_compound_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 compound/{compound}
+         * @description 实现:`CompoundController@update`
+         */
+        patch: operations["patch_api_v2_compound_compound_"];
+        trace?: never;
+    };
+    "/v2/corpus": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 corpus
+         * @description 实现:`CorpusController@index`
+         */
+        get: operations["get_api_v2_corpus"];
+        put?: never;
+        /**
+         * 新建 corpus
+         * @description 实现:`CorpusController@store`
+         */
+        post: operations["post_api_v2_corpus"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/corpus-chapter/{id}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * showChapter corpus-chapter/{id}
+         * @description 实现:`CorpusController@showChapter`
+         */
+        get: operations["get_api_v2_corpus_chapter_id_"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/corpus-sent/{id}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * showSent corpus-sent/{id}
+         * @description 实现:`CorpusController@showSent`
+         */
+        get: operations["get_api_v2_corpus_sent_id_"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/corpus-sentences/{type}/{id}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取某句子的全部译文
+         * @description 实现:`CorpusController@showSentences`
+         */
+        get: operations["get_api_v2_corpus_sentences_type_id_"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/corpus/{corpu}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 corpus/{corpu}
+         * @description 实现:`CorpusController@show`
+         */
+        get: operations["get_api_v2_corpus_corpu_"];
+        /**
+         * 更新 corpus/{corpu}
+         * @description 实现:`CorpusController@update`
+         */
+        put: operations["put_api_v2_corpus_corpu_"];
+        post?: never;
+        /**
+         * 删除 corpus/{corpu}
+         * @description 实现:`CorpusController@destroy`
+         */
+        delete: operations["delete_api_v2_corpus_corpu_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 corpus/{corpu}
+         * @description 实现:`CorpusController@update`
+         */
+        patch: operations["patch_api_v2_corpus_corpu_"];
+        trace?: never;
+    };
+    "/v2/course": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 course
+         * @description 实现:`CourseController@index`
+         */
+        get: operations["get_api_v2_course"];
+        put?: never;
+        /**
+         * 新建 course
+         * @description 实现:`CourseController@store`
+         */
+        post: operations["post_api_v2_course"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/course-curr": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取当前用户在指定课程中的角色与 channel
+         * @description 必须登录。只读取 is_current=true 的记录,返回 role 与 channel_id 两个字段。
+         *     当前用户不是该课程成员时返回 not member。
+         *
+         *     实现:`CourseMemberController@curr`
+         */
+        get: operations["get_api_v2_course_curr"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/course-member": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出课程成员
+         * @description 按 view 指定的口径返回课程成员列表,支持角色/状态过滤、按昵称搜索、分页与排序。
+         *     必须登录,且当前用户必须已经是该 course 的成员(在 course_member 中有 role),否则返回 403。
+         *     返回 rows(成员列表)、role(当前用户在该 course 中的当前角色)、count(过滤后的总数)。
+         *
+         *     实现:`CourseMemberController@index`
+         */
+        get: operations["get_api_v2_course_member"];
+        put?: never;
+        /**
+         * 新增课程成员记录(加入/申请/邀请)
+         * @description 必须登录。status=invited 表示由当前用户邀请他人,成员归属 user_id 指定的用户;
+         *     其余情况(自己加入或申请)一律忽略 user_id,成员归属当前登录用户。
+         *     非 invited 时若该 user 已在该 course 中存在任何记录,返回 member exists(HTTP 200)。
+         *     写入前会把同一 course + user 的旧记录 is_current 置为 false,新记录成为当前记录。
+         *     状态必须与课程加入方式匹配:course.join=open 只接受 joined/invited,manual 只接受 applied/invited,
+         *     不匹配返回 invalid course(HTTP 200)。course 不存在返回 invalid course。
+         *
+         *     实现:`CourseMemberController@store`
+         */
+        post: operations["post_api_v2_course_member"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/course-member-export": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 导出课程成员名单为 Excel
+         * @description 导出该课程全部 is_current 成员,表头为 nickname、username、role、status、created_at,
+         *     昵称与用户名通过 UserApi 按 user_id 逐条查询。
+         *     直接以 xlsx 附件(course_member.xlsx)写入输出流,不返回 JSON,且不做登录与权限校验。
+         *
+         *     实现:`CourseMemberController@export`
+         */
+        get: operations["get_api_v2_course_member_export"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/course-member/{course_member}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 查询某用户在指定课程中的当前成员记录
+         * @description 必须登录。默认查当前登录用户,传 user_uid 可查他人(无额外权限校验)。
+         *     只返回 is_current=true 的那条记录;查不到返回 no result(HTTP 200)。
+         *
+         *     实现:`CourseMemberController@show`
+         */
+        get: operations["get_api_v2_course_member_course_member_"];
+        /**
+         * 更新课程成员(以新增记录的方式保留历史)
+         * @description 必须登录。不会就地修改原记录:先复制一条新记录,把原记录 is_current 置为 false,
+         *     再把请求中出现的字段写到新记录上,原记录作为历史保留。
+         *     修改 channel_id 只允许成员本人操作,否则返回 auth.failed。
+         *
+         *     实现:`CourseMemberController@update`
+         */
+        put: operations["put_api_v2_course_member_course_member_"];
+        post?: never;
+        /**
+         * 删除课程成员记录
+         * @description 必须登录。课程所有者(course.studio_id 等于当前用户)可以直接删除;
+         *     否则按当前用户在该课程中的角色判断权限,普通 student 无删除权限,返回 auth.failed。
+         *
+         *     实现:`CourseMemberController@destroy`
+         */
+        delete: operations["delete_api_v2_course_member_course_member_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新课程成员(以新增记录的方式保留历史)
+         * @description 必须登录。不会就地修改原记录:先复制一条新记录,把原记录 is_current 置为 false,
+         *     再把请求中出现的字段写到新记录上,原记录作为历史保留。
+         *     修改 channel_id 只允许成员本人操作,否则返回 auth.failed。
+         *
+         *     实现:`CourseMemberController@update`
+         */
+        patch: operations["patch_api_v2_course_member_course_member_"];
+        trace?: never;
+    };
+    "/v2/course-member_set-channel": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        get?: never;
+        /**
+         * 设置当前用户在某课程中使用的 channel
+         * @description 必须登录。就地修改当前用户在该 course 的 is_current 记录(不产生历史记录)。
+         *     未传 channel_id、或当前用户不是该课程的当前成员,都返回 auth.failed。
+         *
+         *     实现:`CourseMemberController@set_channel`
+         */
+        put: operations["put_api_v2_course_member_set_channel"];
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/course-my-course": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * showMyCourseNumber course-my-course
+         * @description 实现:`CourseController@showMyCourseNumber`
+         */
+        get: operations["get_api_v2_course_my_course"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/course/{course}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 course/{course}
+         * @description 实现:`CourseController@show`
+         */
+        get: operations["get_api_v2_course_course_"];
+        /**
+         * 更新 course/{course}
+         * @description 实现:`CourseController@update`
+         */
+        put: operations["put_api_v2_course_course_"];
+        post?: never;
+        /**
+         * 删除 course/{course}
+         * @description 实现:`CourseController@destroy`
+         */
+        delete: operations["delete_api_v2_course_course_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 course/{course}
+         * @description 实现:`CourseController@update`
+         */
+        patch: operations["patch_api_v2_course_course_"];
+        trace?: never;
+    };
+    "/v2/dict": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 dict
+         * @description 实现:`DictController@index`
+         */
+        get: operations["get_api_v2_dict"];
+        put?: never;
+        /**
+         * 新建 dict
+         * @description 实现:`DictController@store`
+         */
+        post: operations["post_api_v2_dict"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/dict-info": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 dict-info
+         * @description 实现:`DictInfoController@index`
+         */
+        get: operations["get_api_v2_dict_info"];
+        put?: never;
+        /**
+         * 新建 dict-info
+         * @description 实现:`DictInfoController@store`
+         */
+        post: operations["post_api_v2_dict_info"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/dict-info/{dict_info}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 dict-info/{dict_info}
+         * @description 实现:`DictInfoController@show`
+         */
+        get: operations["get_api_v2_dict_info_dict_info_"];
+        /**
+         * 更新 dict-info/{dict_info}
+         * @description 实现:`DictInfoController@update`
+         */
+        put: operations["put_api_v2_dict_info_dict_info_"];
+        post?: never;
+        /**
+         * 删除 dict-info/{dict_info}
+         * @description 实现:`DictInfoController@destroy`
+         */
+        delete: operations["delete_api_v2_dict_info_dict_info_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 dict-info/{dict_info}
+         * @description 实现:`DictInfoController@update`
+         */
+        patch: operations["patch_api_v2_dict_info_dict_info_"];
+        trace?: never;
+    };
+    "/v2/dict-meaning": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 dict-meaning
+         * @description 实现:`DictMeaningController@index`
+         */
+        get: operations["get_api_v2_dict_meaning"];
+        put?: never;
+        /**
+         * 新建 dict-meaning
+         * @description 实现:`DictMeaningController@store`
+         */
+        post: operations["post_api_v2_dict_meaning"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/dict-meaning/{dict_meaning}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 dict-meaning/{dict_meaning}
+         * @description 实现:`DictMeaningController@show`
+         */
+        get: operations["get_api_v2_dict_meaning_dict_meaning_"];
+        /**
+         * 更新 dict-meaning/{dict_meaning}
+         * @description 实现:`DictMeaningController@update`
+         */
+        put: operations["put_api_v2_dict_meaning_dict_meaning_"];
+        post?: never;
+        /**
+         * 删除 dict-meaning/{dict_meaning}
+         * @description 实现:`DictMeaningController@destroy`
+         */
+        delete: operations["delete_api_v2_dict_meaning_dict_meaning_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 dict-meaning/{dict_meaning}
+         * @description 实现:`DictMeaningController@update`
+         */
+        patch: operations["patch_api_v2_dict_meaning_dict_meaning_"];
+        trace?: never;
+    };
+    "/v2/dict-preference": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 dict-preference
+         * @description 实现:`DictPreferenceController@index`
+         */
+        get: operations["get_api_v2_dict_preference"];
+        put?: never;
+        /**
+         * 新建 dict-preference
+         * @description 实现:`DictPreferenceController@store`
+         */
+        post: operations["post_api_v2_dict_preference"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/dict-preference/{dict_preference}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 dict-preference/{dict_preference}
+         * @description 实现:`DictPreferenceController@show`
+         */
+        get: operations["get_api_v2_dict_preference_dict_preference_"];
+        /**
+         * 更新 dict-preference/{dict_preference}
+         * @description 实现:`DictPreferenceController@update`
+         */
+        put: operations["put_api_v2_dict_preference_dict_preference_"];
+        post?: never;
+        /**
+         * 删除 dict-preference/{dict_preference}
+         * @description 实现:`DictPreferenceController@destroy`
+         */
+        delete: operations["delete_api_v2_dict_preference_dict_preference_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 dict-preference/{dict_preference}
+         * @description 实现:`DictPreferenceController@update`
+         */
+        patch: operations["patch_api_v2_dict_preference_dict_preference_"];
+        trace?: never;
+    };
+    "/v2/dict-statistic": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 dict-statistic
+         * @description 实现:`DictStatisticController@index`
+         */
+        get: operations["get_api_v2_dict_statistic"];
+        put?: never;
+        /**
+         * 新建 dict-statistic
+         * @description 实现:`DictStatisticController@store`
+         */
+        post: operations["post_api_v2_dict_statistic"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/dict-statistic/{dict_statistic}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 dict-statistic/{dict_statistic}
+         * @description 实现:`DictStatisticController@show`
+         */
+        get: operations["get_api_v2_dict_statistic_dict_statistic_"];
+        /**
+         * 更新 dict-statistic/{dict_statistic}
+         * @description 实现:`DictStatisticController@update`
+         */
+        put: operations["put_api_v2_dict_statistic_dict_statistic_"];
+        post?: never;
+        /**
+         * 删除 dict-statistic/{dict_statistic}
+         * @description 实现:`DictStatisticController@destroy`
+         */
+        delete: operations["delete_api_v2_dict_statistic_dict_statistic_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 dict-statistic/{dict_statistic}
+         * @description 实现:`DictStatisticController@update`
+         */
+        patch: operations["patch_api_v2_dict_statistic_dict_statistic_"];
+        trace?: never;
+    };
+    "/v2/dict-vocabulary": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 dict-vocabulary
+         * @description 实现:`DictVocabularyController@index`
+         */
+        get: operations["get_api_v2_dict_vocabulary"];
+        put?: never;
+        /**
+         * 新建 dict-vocabulary
+         * @description 实现:`DictVocabularyController@store`
+         */
+        post: operations["post_api_v2_dict_vocabulary"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/dict-vocabulary/{dict_vocabulary}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 dict-vocabulary/{dict_vocabulary}
+         * @description 实现:`DictVocabularyController@show`
+         */
+        get: operations["get_api_v2_dict_vocabulary_dict_vocabulary_"];
+        /**
+         * 更新 dict-vocabulary/{dict_vocabulary}
+         * @description 实现:`DictVocabularyController@update`
+         */
+        put: operations["put_api_v2_dict_vocabulary_dict_vocabulary_"];
+        post?: never;
+        /**
+         * 删除 dict-vocabulary/{dict_vocabulary}
+         * @description 实现:`DictVocabularyController@destroy`
+         */
+        delete: operations["delete_api_v2_dict_vocabulary_dict_vocabulary_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 dict-vocabulary/{dict_vocabulary}
+         * @description 实现:`DictVocabularyController@update`
+         */
+        patch: operations["patch_api_v2_dict_vocabulary_dict_vocabulary_"];
+        trace?: never;
+    };
+    "/v2/dict/{dict}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 dict/{dict}
+         * @description 实现:`DictController@show`
+         */
+        get: operations["get_api_v2_dict_dict_"];
+        /**
+         * 更新 dict/{dict}
+         * @description 实现:`DictController@update`
+         */
+        put: operations["put_api_v2_dict_dict_"];
+        post?: never;
+        /**
+         * 删除 dict/{dict}
+         * @description 实现:`DictController@destroy`
+         */
+        delete: operations["delete_api_v2_dict_dict_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 dict/{dict}
+         * @description 实现:`DictController@update`
+         */
+        patch: operations["patch_api_v2_dict_dict_"];
+        trace?: never;
+    };
+    "/v2/discussion": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出讨论 / 批注
+         * @description 按 view 指定的口径返回 discussion 列表,支持状态过滤、分页与排序。
+         *     权限:未登录用户请求 type=discussion 时直接返回空结果;basic 角色用户在自己无编辑权限的
+         *     channel 上只能看到自己发表的 discussion;view=topic-by-user 必须登录,否则返回 403。
+         *     返回 rows、count(当前口径总数)、active/close(顶级节点的活跃与关闭数)、
+         *     can_create/can_reply(当前用户能否发起与回复,按 type 与 res_type 计算)。
+         *
+         *     实现:`DiscussionController@index`
+         */
+        get: operations["get_api_v2_discussion"];
+        put?: never;
+        /**
+         * 发表讨论 / 批注或回复
+         * @description 必须登录,未登录返回 401。传了 parent 即为回复:res_id 与 res_type 继承自父节点,
+         *     无需再传,父节点不存在返回 no record,保存后父节点 children_count 自增;
+         *     不传 parent 为顶级节点,此时 res_id、res_type、title 均为必填。
+         *     锚点字段(pos_start/pos_end/quote_exact/quote_prefix/quote_suffix)两种情况都可选。
+         *     默认会向消息队列 discussion 推送通知,可用 notification=false 关闭。
+         *
+         *     实现:`DiscussionController@store`
+         */
+        post: operations["post_api_v2_discussion"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/discussion-anchor/{id}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取 discussion 锚点的数据
+         * @description 以句子为最小单位返回锚点上下文:res_type=wbw 时,由单词定位到所属 wbw block 与巴利句子,
+         *     再用该 block 的 channel 渲染出句子内容的 markdown。其他 res_type 暂返回空字符串。
+         *     不做登录与权限校验;wbw、wbw block 或句子任一查不到时分别返回 no wbw data / no wbwBlock data / no sent data。
+         *
+         *     实现:`DiscussionController@anchor`
+         */
+        get: operations["get_api_v2_discussion_anchor_id_"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/discussion-count": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 discussion-count
+         * @description 实现:`DiscussionCountController@index`
+         */
+        get: operations["get_api_v2_discussion_count"];
+        put?: never;
+        /**
+         * 课程模式业务逻辑
+         * @description 标准答案channel:学生提问
+         *     学生channel: 老师批改作业
+         *     老师:
+         *     标准答案channel: 本期学生,老师(区分已经回复,未回复)
+         *     学生channel: 本期学生,老师
+         *     学生:
+         *     标准答案channel:我自己topic(区分已经回复,未回复)
+         *     学生自己channel: 我自己,本期老师
+         *     输入:
+         *     句子列表
+         *     courseId
+         *     返回数据
+         *     resId
+         *     type:'discussion':
+         *     my:number
+         *     myReplied:number
+         *     all:number
+         *     allReplied:number
+         *
+         *     实现:`DiscussionCountController@store`
+         */
+        post: operations["post_api_v2_discussion_count"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/discussion-count/{discussion_count}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 discussion-count/{discussion_count}
+         * @description 实现:`DiscussionCountController@show`
+         */
+        get: operations["get_api_v2_discussion_count_discussion_count_"];
+        /**
+         * 更新 discussion-count/{discussion_count}
+         * @description 实现:`DiscussionCountController@update`
+         */
+        put: operations["put_api_v2_discussion_count_discussion_count_"];
+        post?: never;
+        /**
+         * 删除 discussion-count/{discussion_count}
+         * @description 实现:`DiscussionCountController@destroy`
+         */
+        delete: operations["delete_api_v2_discussion_count_discussion_count_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 discussion-count/{discussion_count}
+         * @description 实现:`DiscussionCountController@update`
+         */
+        patch: operations["patch_api_v2_discussion_count_discussion_count_"];
+        trace?: never;
+    };
+    "/v2/discussion/{discussion}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 查询单条讨论
+         * @description 按路径参数做路由模型绑定并直接返回,不做登录与权限校验。
+         *
+         *     实现:`DiscussionController@show`
+         */
+        get: operations["get_api_v2_discussion_discussion_"];
+        /**
+         * 修改讨论 / 批注
+         * @description 必须登录,未登录返回 403。作者本人可改;非作者则要求是资源所属 channel 的可编辑者
+         *     (res_type=sentence 取 sentence.channel_uid,res_type=wbw 经 wbw block 取 channel_uid),
+         *     两者都不满足返回 403。
+         *     title、content、status 按请求覆盖,未提交时分别回落为 null、null、active;
+         *     type 与五个锚点字段为增量更新,只改请求里出现的字段,未提交的原样保留。
+         *
+         *     实现:`DiscussionController@update`
+         */
+        put: operations["put_api_v2_discussion_discussion_"];
+        post?: never;
+        /**
+         * 删除讨论 / 批注
+         * @description 必须登录,未登录返回 401。目前只允许作者本人删除,其他人返回 403。
+         *     不会级联删除子回复,也不会回退父节点的 children_count。
+         *
+         *     实现:`DiscussionController@destroy`
+         */
+        delete: operations["delete_api_v2_discussion_discussion_"];
+        options?: never;
+        head?: never;
+        /**
+         * 修改讨论 / 批注
+         * @description 必须登录,未登录返回 403。作者本人可改;非作者则要求是资源所属 channel 的可编辑者
+         *     (res_type=sentence 取 sentence.channel_uid,res_type=wbw 经 wbw block 取 channel_uid),
+         *     两者都不满足返回 403。
+         *     title、content、status 按请求覆盖,未提交时分别回落为 null、null、active;
+         *     type 与五个锚点字段为增量更新,只改请求里出现的字段,未提交的原样保留。
+         *
+         *     实现:`DiscussionController@update`
+         */
+        patch: operations["patch_api_v2_discussion_discussion_"];
+        trace?: never;
+    };
+    "/v2/editable-sentence": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 editable-sentence
+         * @description 实现:`EditableSentenceController@index`
+         */
+        get: operations["get_api_v2_editable_sentence"];
+        put?: never;
+        /**
+         * 新建 editable-sentence
+         * @description 实现:`EditableSentenceController@store`
+         */
+        post: operations["post_api_v2_editable_sentence"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/editable-sentence/{editable_sentence}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 editable-sentence/{editable_sentence}
+         * @description 实现:`EditableSentenceController@show`
+         */
+        get: operations["get_api_v2_editable_sentence_editable_sentence_"];
+        /**
+         * 更新 editable-sentence/{editable_sentence}
+         * @description 实现:`EditableSentenceController@update`
+         */
+        put: operations["put_api_v2_editable_sentence_editable_sentence_"];
+        post?: never;
+        /**
+         * 删除 editable-sentence/{editable_sentence}
+         * @description 实现:`EditableSentenceController@destroy`
+         */
+        delete: operations["delete_api_v2_editable_sentence_editable_sentence_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 editable-sentence/{editable_sentence}
+         * @description 实现:`EditableSentenceController@update`
+         */
+        patch: operations["patch_api_v2_editable_sentence_editable_sentence_"];
+        trace?: never;
+    };
+    "/v2/email-certification": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 email-certification
+         * @description 实现:`EmailCertificationController@index`
+         */
+        get: operations["get_api_v2_email_certification"];
+        put?: never;
+        /**
+         * 新建 email-certification
+         * @description 实现:`EmailCertificationController@store`
+         */
+        post: operations["post_api_v2_email_certification"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/email-certification/{email_certification}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 email-certification/{email_certification}
+         * @description 实现:`EmailCertificationController@show`
+         */
+        get: operations["get_api_v2_email_certification_email_certification_"];
+        /**
+         * 更新 email-certification/{email_certification}
+         * @description 实现:`EmailCertificationController@update`
+         */
+        put: operations["put_api_v2_email_certification_email_certification_"];
+        post?: never;
+        /**
+         * 删除 email-certification/{email_certification}
+         * @description 实现:`EmailCertificationController@destroy`
+         */
+        delete: operations["delete_api_v2_email_certification_email_certification_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 email-certification/{email_certification}
+         * @description 实现:`EmailCertificationController@update`
+         */
+        patch: operations["patch_api_v2_email_certification_email_certification_"];
+        trace?: never;
+    };
+    "/v2/exercise": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 exercise
+         * @description 实现:`ExerciseController@index`
+         */
+        get: operations["get_api_v2_exercise"];
+        put?: never;
+        /**
+         * 新建 exercise
+         * @description 实现:`ExerciseController@store`
+         */
+        post: operations["post_api_v2_exercise"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/exercise/{exercise}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 exercise/{exercise}
+         * @description 实现:`ExerciseController@show`
+         */
+        get: operations["get_api_v2_exercise_exercise_"];
+        /**
+         * 更新 exercise/{exercise}
+         * @description 实现:`ExerciseController@update`
+         */
+        put: operations["put_api_v2_exercise_exercise_"];
+        post?: never;
+        /**
+         * 删除 exercise/{exercise}
+         * @description 实现:`ExerciseController@destroy`
+         */
+        delete: operations["delete_api_v2_exercise_exercise_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 exercise/{exercise}
+         * @description 实现:`ExerciseController@update`
+         */
+        patch: operations["patch_api_v2_exercise_exercise_"];
+        trace?: never;
+    };
+    "/v2/export": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 export
+         * @description 实现:`ExportController@index`
+         */
+        get: operations["get_api_v2_export"];
+        put?: never;
+        /**
+         * 新建 export
+         * @description 实现:`ExportController@store`
+         */
+        post: operations["post_api_v2_export"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/export/{export}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 export/{export}
+         * @description 实现:`ExportController@show`
+         */
+        get: operations["get_api_v2_export_export_"];
+        /**
+         * 更新 export/{export}
+         * @description 实现:`ExportController@update`
+         */
+        put: operations["put_api_v2_export_export_"];
+        post?: never;
+        /**
+         * 删除 export/{export}
+         * @description 实现:`ExportController@destroy`
+         */
+        delete: operations["delete_api_v2_export_export_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 export/{export}
+         * @description 实现:`ExportController@update`
+         */
+        patch: operations["patch_api_v2_export_export_"];
+        trace?: never;
+    };
+    "/v2/export_wbw": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        get?: never;
+        put?: never;
+        /**
+         * 列出 export_wbw
+         * @description 实现:`ExportWbwController@index`
+         */
+        post: operations["post_api_v2_export_wbw"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/grammar-guide": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 grammar-guide
+         * @description 实现:`GrammarGuideController@index`
+         */
+        get: operations["get_api_v2_grammar_guide"];
+        put?: never;
+        /**
+         * 新建 grammar-guide
+         * @description 实现:`GrammarGuideController@store`
+         */
+        post: operations["post_api_v2_grammar_guide"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/grammar-guide/{grammar_guide}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 grammar-guide/{grammar_guide}
+         * @description 实现:`GrammarGuideController@show`
+         */
+        get: operations["get_api_v2_grammar_guide_grammar_guide_"];
+        /**
+         * 更新 grammar-guide/{grammar_guide}
+         * @description 实现:`GrammarGuideController@update`
+         */
+        put: operations["put_api_v2_grammar_guide_grammar_guide_"];
+        post?: never;
+        /**
+         * 删除 grammar-guide/{grammar_guide}
+         * @description 实现:`GrammarGuideController@destroy`
+         */
+        delete: operations["delete_api_v2_grammar_guide_grammar_guide_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 grammar-guide/{grammar_guide}
+         * @description 实现:`GrammarGuideController@update`
+         */
+        patch: operations["patch_api_v2_grammar_guide_grammar_guide_"];
+        trace?: never;
+    };
+    "/v2/group": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 group
+         * @description 实现:`GroupController@index`
+         */
+        get: operations["get_api_v2_group"];
+        put?: never;
+        /**
+         * 新建 group
+         * @description 实现:`GroupController@store`
+         */
+        post: operations["post_api_v2_group"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/group-member": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 group-member
+         * @description 实现:`GroupMemberController@index`
+         */
+        get: operations["get_api_v2_group_member"];
+        put?: never;
+        /**
+         * 新建 group-member
+         * @description 实现:`GroupMemberController@store`
+         */
+        post: operations["post_api_v2_group_member"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/group-member/{group_member}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 group-member/{group_member}
+         * @description 实现:`GroupMemberController@show`
+         */
+        get: operations["get_api_v2_group_member_group_member_"];
+        /**
+         * 更新 group-member/{group_member}
+         * @description 实现:`GroupMemberController@update`
+         */
+        put: operations["put_api_v2_group_member_group_member_"];
+        post?: never;
+        /**
+         * 删除 group-member/{group_member}
+         * @description 实现:`GroupMemberController@destroy`
+         */
+        delete: operations["delete_api_v2_group_member_group_member_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 group-member/{group_member}
+         * @description 实现:`GroupMemberController@update`
+         */
+        patch: operations["patch_api_v2_group_member_group_member_"];
+        trace?: never;
+    };
+    "/v2/group-my-number": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取我的,和协作channel数量
+         * @description 实现:`GroupController@showMyNumber`
+         */
+        get: operations["get_api_v2_group_my_number"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/group/{group}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 group/{group}
+         * @description 实现:`GroupController@show`
+         */
+        get: operations["get_api_v2_group_group_"];
+        /**
+         * 更新 group/{group}
+         * @description 实现:`GroupController@update`
+         */
+        put: operations["put_api_v2_group_group_"];
+        post?: never;
+        /**
+         * 删除 group/{group}
+         * @description 实现:`GroupController@destroy`
+         */
+        delete: operations["delete_api_v2_group_group_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 group/{group}
+         * @description 实现:`GroupController@update`
+         */
+        patch: operations["patch_api_v2_group_group_"];
+        trace?: never;
+    };
+    "/v2/health-check": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 health-check
+         * @description 实现:`HealthCheckController@index`
+         */
+        get: operations["get_api_v2_health_check"];
+        put?: never;
+        /**
+         * 新建 health-check
+         * @description 实现:`HealthCheckController@store`
+         */
+        post: operations["post_api_v2_health_check"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/health-check/{health_check}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 health-check/{health_check}
+         * @description 实现:`HealthCheckController@show`
+         */
+        get: operations["get_api_v2_health_check_health_check_"];
+        /**
+         * 更新 health-check/{health_check}
+         * @description 实现:`HealthCheckController@update`
+         */
+        put: operations["put_api_v2_health_check_health_check_"];
+        post?: never;
+        /**
+         * 删除 health-check/{health_check}
+         * @description 实现:`HealthCheckController@destroy`
+         */
+        delete: operations["delete_api_v2_health_check_health_check_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 health-check/{health_check}
+         * @description 实现:`HealthCheckController@update`
+         */
+        patch: operations["patch_api_v2_health_check_health_check_"];
+        trace?: never;
+    };
+    "/v2/heartbeat": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 heartbeat
+         * @description 实现:`HeartbeatController@index`
+         */
+        get: operations["get_api_v2_heartbeat"];
+        put?: never;
+        /**
+         * 新建 heartbeat
+         * @description 实现:`HeartbeatController@store`
+         */
+        post: operations["post_api_v2_heartbeat"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/heartbeat/{heartbeat}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 heartbeat/{heartbeat}
+         * @description 实现:`HeartbeatController@show`
+         */
+        get: operations["get_api_v2_heartbeat_heartbeat_"];
+        /**
+         * 更新 heartbeat/{heartbeat}
+         * @description 实现:`HeartbeatController@update`
+         */
+        put: operations["put_api_v2_heartbeat_heartbeat_"];
+        post?: never;
+        /**
+         * 删除 heartbeat/{heartbeat}
+         * @description 实现:`HeartbeatController@destroy`
+         */
+        delete: operations["delete_api_v2_heartbeat_heartbeat_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 heartbeat/{heartbeat}
+         * @description 实现:`HeartbeatController@update`
+         */
+        patch: operations["patch_api_v2_heartbeat_heartbeat_"];
+        trace?: never;
+    };
+    "/v2/interactive": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 interactive
+         * @description 实现:`InteractiveController@index`
+         */
+        get: operations["get_api_v2_interactive"];
+        put?: never;
+        /**
+         * 新建 interactive
+         * @description 实现:`InteractiveController@store`
+         */
+        post: operations["post_api_v2_interactive"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/interactive/{interactive}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取某个资源,某个用户的权限
+         * @description 实现:`InteractiveController@show`
+         */
+        get: operations["get_api_v2_interactive_interactive_"];
+        /**
+         * 更新 interactive/{interactive}
+         * @description 实现:`InteractiveController@update`
+         */
+        put: operations["put_api_v2_interactive_interactive_"];
+        post?: never;
+        /**
+         * 删除 interactive/{interactive}
+         * @description 实现:`InteractiveController@destroy`
+         */
+        delete: operations["delete_api_v2_interactive_interactive_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 interactive/{interactive}
+         * @description 实现:`InteractiveController@update`
+         */
+        patch: operations["patch_api_v2_interactive_interactive_"];
+        trace?: never;
+    };
+    "/v2/invite": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 invite
+         * @description 实现:`InviteController@index`
+         */
+        get: operations["get_api_v2_invite"];
+        put?: never;
+        /**
+         * 新建 invite
+         * @description 实现:`InviteController@store`
+         */
+        post: operations["post_api_v2_invite"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/invite/{invite}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 invite/{invite}
+         * @description 实现:`InviteController@show`
+         */
+        get: operations["get_api_v2_invite_invite_"];
+        /**
+         * 更新 invite/{invite}
+         * @description 实现:`InviteController@update`
+         */
+        put: operations["put_api_v2_invite_invite_"];
+        post?: never;
+        /**
+         * 删除 invite/{invite}
+         * @description 实现:`InviteController@destroy`
+         */
+        delete: operations["delete_api_v2_invite_invite_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 invite/{invite}
+         * @description 实现:`InviteController@update`
+         */
+        patch: operations["patch_api_v2_invite_invite_"];
+        trace?: never;
+    };
+    "/v2/like": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 like
+         * @description 实现:`LikeController@index`
+         */
+        get: operations["get_api_v2_like"];
+        put?: never;
+        /**
+         * 新建 like
+         * @description 实现:`LikeController@store`
+         */
+        post: operations["post_api_v2_like"];
+        /**
+         * delete like
+         * @description 实现:`LikeController@delete`
+         */
+        delete: operations["delete_api_v2_like"];
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/like/{like}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 like/{like}
+         * @description 实现:`LikeController@show`
+         */
+        get: operations["get_api_v2_like_like_"];
+        /**
+         * 更新 like/{like}
+         * @description 实现:`LikeController@update`
+         */
+        put: operations["put_api_v2_like_like_"];
+        post?: never;
+        /**
+         * 删除 like/{like}
+         * @description 实现:`LikeController@destroy`
+         */
+        delete: operations["delete_api_v2_like_like_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 like/{like}
+         * @description 实现:`LikeController@update`
+         */
+        patch: operations["patch_api_v2_like_like_"];
+        trace?: never;
+    };
+    "/v2/milestone": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 milestone
+         * @description 实现:`MilestoneController@index`
+         */
+        get: operations["get_api_v2_milestone"];
+        put?: never;
+        /**
+         * 新建 milestone
+         * @description 实现:`MilestoneController@store`
+         */
+        post: operations["post_api_v2_milestone"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/milestone/{milestone}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 milestone/{milestone}
+         * @description 实现:`MilestoneController@show`
+         */
+        get: operations["get_api_v2_milestone_milestone_"];
+        /**
+         * 更新 milestone/{milestone}
+         * @description 实现:`MilestoneController@update`
+         */
+        put: operations["put_api_v2_milestone_milestone_"];
+        post?: never;
+        /**
+         * 删除 milestone/{milestone}
+         * @description 实现:`MilestoneController@destroy`
+         */
+        delete: operations["delete_api_v2_milestone_milestone_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 milestone/{milestone}
+         * @description 实现:`MilestoneController@update`
+         */
+        patch: operations["patch_api_v2_milestone_milestone_"];
+        trace?: never;
+    };
+    "/v2/mock/openai/chat/completions": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        get?: never;
+        put?: never;
+        /**
+         * 模拟 Chat Completions API
+         * @description 实现:`MockOpenAIController@chatCompletions`
+         */
+        post: operations["post_api_v2_mock_openai_chat_completions"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/mock/openai/completions": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        get?: never;
+        put?: never;
+        /**
+         * 模拟 Completions API
+         * @description 实现:`MockOpenAIController@completions`
+         */
+        post: operations["post_api_v2_mock_openai_completions"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/mock/openai/models": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 模拟 Models API
+         * @description 实现:`MockOpenAIController@models`
+         */
+        get: operations["get_api_v2_mock_openai_models"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/model-log": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 model-log
+         * @description 实现:`ModelLogController@index`
+         */
+        get: operations["get_api_v2_model_log"];
+        put?: never;
+        /**
+         * 新建 model-log
+         * @description 实现:`ModelLogController@store`
+         */
+        post: operations["post_api_v2_model_log"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/model-log/{model_log}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 model-log/{model_log}
+         * @description 实现:`ModelLogController@show`
+         */
+        get: operations["get_api_v2_model_log_model_log_"];
+        /**
+         * 更新 model-log/{model_log}
+         * @description 实现:`ModelLogController@update`
+         */
+        put: operations["put_api_v2_model_log_model_log_"];
+        post?: never;
+        /**
+         * 删除 model-log/{model_log}
+         * @description 实现:`ModelLogController@destroy`
+         */
+        delete: operations["delete_api_v2_model_log_model_log_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 model-log/{model_log}
+         * @description 实现:`ModelLogController@update`
+         */
+        patch: operations["patch_api_v2_model_log_model_log_"];
+        trace?: never;
+    };
+    "/v2/nav-article": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 nav-article
+         * @description 实现:`NavArticleController@index`
+         */
+        get: operations["get_api_v2_nav_article"];
+        put?: never;
+        /**
+         * 新建 nav-article
+         * @description 实现:`NavArticleController@store`
+         */
+        post: operations["post_api_v2_nav_article"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/nav-article/{nav_article}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 文章导航
+         * @description 文集中 某个文章的 前一个,后一个
+         *
+         *     实现:`NavArticleController@show`
+         */
+        get: operations["get_api_v2_nav_article_nav_article_"];
+        /**
+         * 更新 nav-article/{nav_article}
+         * @description 实现:`NavArticleController@update`
+         */
+        put: operations["put_api_v2_nav_article_nav_article_"];
+        post?: never;
+        /**
+         * 删除 nav-article/{nav_article}
+         * @description 实现:`NavArticleController@destroy`
+         */
+        delete: operations["delete_api_v2_nav_article_nav_article_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 nav-article/{nav_article}
+         * @description 实现:`NavArticleController@update`
+         */
+        patch: operations["patch_api_v2_nav_article_nav_article_"];
+        trace?: never;
+    };
+    "/v2/nav-cs-para": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 nav-cs-para
+         * @description 实现:`NavCSParaController@index`
+         */
+        get: operations["get_api_v2_nav_cs_para"];
+        put?: never;
+        /**
+         * 新建 nav-cs-para
+         * @description 实现:`NavCSParaController@store`
+         */
+        post: operations["post_api_v2_nav_cs_para"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/nav-cs-para/{nav_cs_para}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 nav-cs-para/{nav_cs_para}
+         * @description 实现:`NavCSParaController@show`
+         */
+        get: operations["get_api_v2_nav_cs_para_nav_cs_para_"];
+        /**
+         * 更新 nav-cs-para/{nav_cs_para}
+         * @description 实现:`NavCSParaController@update`
+         */
+        put: operations["put_api_v2_nav_cs_para_nav_cs_para_"];
+        post?: never;
+        /**
+         * 删除 nav-cs-para/{nav_cs_para}
+         * @description 实现:`NavCSParaController@destroy`
+         */
+        delete: operations["delete_api_v2_nav_cs_para_nav_cs_para_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 nav-cs-para/{nav_cs_para}
+         * @description 实现:`NavCSParaController@update`
+         */
+        patch: operations["patch_api_v2_nav_cs_para_nav_cs_para_"];
+        trace?: never;
+    };
+    "/v2/nav-page": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 nav-page
+         * @description 实现:`NavPageController@index`
+         */
+        get: operations["get_api_v2_nav_page"];
+        put?: never;
+        /**
+         * 页码导航
+         * @description 支持缅文版,PTS,等当前页,前一页,后一页,页面信息的获取
+         *
+         *     实现:`NavPageController@store`
+         */
+        post: operations["post_api_v2_nav_page"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/nav-page/{nav_page}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 nav-page/{nav_page}
+         * @description 实现:`NavPageController@show`
+         */
+        get: operations["get_api_v2_nav_page_nav_page_"];
+        /**
+         * 更新 nav-page/{nav_page}
+         * @description 实现:`NavPageController@update`
+         */
+        put: operations["put_api_v2_nav_page_nav_page_"];
+        post?: never;
+        /**
+         * 删除 nav-page/{nav_page}
+         * @description 实现:`NavPageController@destroy`
+         */
+        delete: operations["delete_api_v2_nav_page_nav_page_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 nav-page/{nav_page}
+         * @description 实现:`NavPageController@update`
+         */
+        patch: operations["patch_api_v2_nav_page_nav_page_"];
+        trace?: never;
+    };
+    "/v2/nissaya-card": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 nissaya-card
+         * @description 实现:`NissayaCardController@index`
+         */
+        get: operations["get_api_v2_nissaya_card"];
+        put?: never;
+        /**
+         * 新建 nissaya-card
+         * @description 实现:`NissayaCardController@store`
+         */
+        post: operations["post_api_v2_nissaya_card"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/nissaya-card/{nissaya_card}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 nissaya-card/{nissaya_card}
+         * @description 实现:`NissayaCardController@show`
+         */
+        get: operations["get_api_v2_nissaya_card_nissaya_card_"];
+        /**
+         * 更新 nissaya-card/{nissaya_card}
+         * @description 实现:`NissayaCardController@update`
+         */
+        put: operations["put_api_v2_nissaya_card_nissaya_card_"];
+        post?: never;
+        /**
+         * 删除 nissaya-card/{nissaya_card}
+         * @description 实现:`NissayaCardController@destroy`
+         */
+        delete: operations["delete_api_v2_nissaya_card_nissaya_card_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 nissaya-card/{nissaya_card}
+         * @description 实现:`NissayaCardController@update`
+         */
+        patch: operations["patch_api_v2_nissaya_card_nissaya_card_"];
+        trace?: never;
+    };
+    "/v2/nissaya-cover": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 nissaya-cover
+         * @description 实现:`NissayaCoverController@index`
+         */
+        get: operations["get_api_v2_nissaya_cover"];
+        put?: never;
+        /**
+         * 新建 nissaya-cover
+         * @description 实现:`NissayaCoverController@store`
+         */
+        post: operations["post_api_v2_nissaya_cover"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/nissaya-cover/{nissaya_cover}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 nissaya-cover/{nissaya_cover}
+         * @description 实现:`NissayaCoverController@show`
+         */
+        get: operations["get_api_v2_nissaya_cover_nissaya_cover_"];
+        /**
+         * 更新 nissaya-cover/{nissaya_cover}
+         * @description 实现:`NissayaCoverController@update`
+         */
+        put: operations["put_api_v2_nissaya_cover_nissaya_cover_"];
+        post?: never;
+        /**
+         * 删除 nissaya-cover/{nissaya_cover}
+         * @description 实现:`NissayaCoverController@destroy`
+         */
+        delete: operations["delete_api_v2_nissaya_cover_nissaya_cover_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 nissaya-cover/{nissaya_cover}
+         * @description 实现:`NissayaCoverController@update`
+         */
+        patch: operations["patch_api_v2_nissaya_cover_nissaya_cover_"];
+        trace?: never;
+    };
+    "/v2/nissaya-ending": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 nissaya-ending
+         * @description 实现:`NissayaEndingController@index`
+         */
+        get: operations["get_api_v2_nissaya_ending"];
+        put?: never;
+        /**
+         * 新建 nissaya-ending
+         * @description 实现:`NissayaEndingController@store`
+         */
+        post: operations["post_api_v2_nissaya_ending"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/nissaya-ending-export": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * export nissaya-ending-export
+         * @description 实现:`NissayaEndingController@export`
+         */
+        get: operations["get_api_v2_nissaya_ending_export"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/nissaya-ending-import": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * import nissaya-ending-import
+         * @description 实现:`NissayaEndingController@import`
+         */
+        get: operations["get_api_v2_nissaya_ending_import"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/nissaya-ending-vocabulary": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * vocabulary nissaya-ending-vocabulary
+         * @description 实现:`NissayaEndingController@vocabulary`
+         */
+        get: operations["get_api_v2_nissaya_ending_vocabulary"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/nissaya-ending/{nissaya_ending}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 nissaya-ending/{nissaya_ending}
+         * @description 实现:`NissayaEndingController@show`
+         */
+        get: operations["get_api_v2_nissaya_ending_nissaya_ending_"];
+        /**
+         * 更新 nissaya-ending/{nissaya_ending}
+         * @description 实现:`NissayaEndingController@update`
+         */
+        put: operations["put_api_v2_nissaya_ending_nissaya_ending_"];
+        post?: never;
+        /**
+         * 删除 nissaya-ending/{nissaya_ending}
+         * @description 实现:`NissayaEndingController@destroy`
+         */
+        delete: operations["delete_api_v2_nissaya_ending_nissaya_ending_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 nissaya-ending/{nissaya_ending}
+         * @description 实现:`NissayaEndingController@update`
+         */
+        patch: operations["patch_api_v2_nissaya_ending_nissaya_ending_"];
+        trace?: never;
+    };
+    "/v2/notification": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 notification
+         * @description 实现:`NotificationController@index`
+         */
+        get: operations["get_api_v2_notification"];
+        put?: never;
+        /**
+         * 新建 notification
+         * @description 实现:`NotificationController@store`
+         */
+        post: operations["post_api_v2_notification"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/notification/{notification}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 notification/{notification}
+         * @description 实现:`NotificationController@show`
+         */
+        get: operations["get_api_v2_notification_notification_"];
+        /**
+         * 更新 notification/{notification}
+         * @description 实现:`NotificationController@update`
+         */
+        put: operations["put_api_v2_notification_notification_"];
+        post?: never;
+        /**
+         * 删除 notification/{notification}
+         * @description 实现:`NotificationController@destroy`
+         */
+        delete: operations["delete_api_v2_notification_notification_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 notification/{notification}
+         * @description 实现:`NotificationController@update`
+         */
+        patch: operations["patch_api_v2_notification_notification_"];
+        trace?: never;
+    };
+    "/v2/offline-index": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 offline-index
+         * @description 实现:`OfflineIndexController@index`
+         */
+        get: operations["get_api_v2_offline_index"];
+        put?: never;
+        /**
+         * 新建 offline-index
+         * @description 实现:`OfflineIndexController@store`
+         */
+        post: operations["post_api_v2_offline_index"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/offline-index/{offline_index}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 offline-index/{offline_index}
+         * @description 实现:`OfflineIndexController@show`
+         */
+        get: operations["get_api_v2_offline_index_offline_index_"];
+        /**
+         * 更新 offline-index/{offline_index}
+         * @description 实现:`OfflineIndexController@update`
+         */
+        put: operations["put_api_v2_offline_index_offline_index_"];
+        post?: never;
+        /**
+         * 删除 offline-index/{offline_index}
+         * @description 实现:`OfflineIndexController@destroy`
+         */
+        delete: operations["delete_api_v2_offline_index_offline_index_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 offline-index/{offline_index}
+         * @description 实现:`OfflineIndexController@update`
+         */
+        patch: operations["patch_api_v2_offline_index_offline_index_"];
+        trace?: never;
+    };
+    "/v2/pali-book-category": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 pali-book-category
+         * @description 实现:`PaliBookCategoryController@index`
+         */
+        get: operations["get_api_v2_pali_book_category"];
+        put?: never;
+        /**
+         * 新建 pali-book-category
+         * @description 实现:`PaliBookCategoryController@store`
+         */
+        post: operations["post_api_v2_pali_book_category"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/pali-book-category/{pali_book_category}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 pali-book-category/{pali_book_category}
+         * @description 实现:`PaliBookCategoryController@show`
+         */
+        get: operations["get_api_v2_pali_book_category_pali_book_category_"];
+        /**
+         * 更新 pali-book-category/{pali_book_category}
+         * @description 实现:`PaliBookCategoryController@update`
+         */
+        put: operations["put_api_v2_pali_book_category_pali_book_category_"];
+        post?: never;
+        /**
+         * 删除 pali-book-category/{pali_book_category}
+         * @description 实现:`PaliBookCategoryController@destroy`
+         */
+        delete: operations["delete_api_v2_pali_book_category_pali_book_category_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 pali-book-category/{pali_book_category}
+         * @description 实现:`PaliBookCategoryController@update`
+         */
+        patch: operations["patch_api_v2_pali_book_category_pali_book_category_"];
+        trace?: never;
+    };
+    "/v2/pali-search-data": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 pali-search-data
+         * @description 实现:`SearchPaliDataController@index`
+         */
+        get: operations["get_api_v2_pali_search_data"];
+        put?: never;
+        /**
+         * 新建 pali-search-data
+         * @description 实现:`SearchPaliDataController@store`
+         */
+        post: operations["post_api_v2_pali_search_data"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/pali-search-data/{pali_search_datum}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 pali-search-data/{pali_search_datum}
+         * @description 实现:`SearchPaliDataController@show`
+         */
+        get: operations["get_api_v2_pali_search_data_pali_search_datum_"];
+        /**
+         * 更新 pali-search-data/{pali_search_datum}
+         * @description 实现:`SearchPaliDataController@update`
+         */
+        put: operations["put_api_v2_pali_search_data_pali_search_datum_"];
+        post?: never;
+        /**
+         * 删除 pali-search-data/{pali_search_datum}
+         * @description 实现:`SearchPaliDataController@destroy`
+         */
+        delete: operations["delete_api_v2_pali_search_data_pali_search_datum_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 pali-search-data/{pali_search_datum}
+         * @description 实现:`SearchPaliDataController@update`
+         */
+        patch: operations["patch_api_v2_pali_search_data_pali_search_datum_"];
+        trace?: never;
+    };
+    "/v2/pali-word-index": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 pali-word-index
+         * @description 实现:`WordIndexController@index`
+         */
+        get: operations["get_api_v2_pali_word_index"];
+        put?: never;
+        /**
+         * 新建 pali-word-index
+         * @description 实现:`WordIndexController@store`
+         */
+        post: operations["post_api_v2_pali_word_index"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/pali-word-index/{pali_word_index}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 pali-word-index/{pali_word_index}
+         * @description 实现:`WordIndexController@show`
+         */
+        get: operations["get_api_v2_pali_word_index_pali_word_index_"];
+        /**
+         * 更新 pali-word-index/{pali_word_index}
+         * @description 实现:`WordIndexController@update`
+         */
+        put: operations["put_api_v2_pali_word_index_pali_word_index_"];
+        post?: never;
+        /**
+         * 删除 pali-word-index/{pali_word_index}
+         * @description 实现:`WordIndexController@destroy`
+         */
+        delete: operations["delete_api_v2_pali_word_index_pali_word_index_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 pali-word-index/{pali_word_index}
+         * @description 实现:`WordIndexController@update`
+         */
+        patch: operations["patch_api_v2_pali_word_index_pali_word_index_"];
+        trace?: never;
+    };
+    "/v2/palitext": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 palitext
+         * @description 实现:`PaliTextController@index`
+         */
+        get: operations["get_api_v2_palitext"];
+        put?: never;
+        /**
+         * 新建 palitext
+         * @description 实现:`PaliTextController@store`
+         */
+        post: operations["post_api_v2_palitext"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/palitext/{palitext}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 palitext/{palitext}
+         * @description 实现:`PaliTextController@show`
+         */
+        get: operations["get_api_v2_palitext_palitext_"];
+        /**
+         * 更新 palitext/{palitext}
+         * @description 实现:`PaliTextController@update`
+         */
+        put: operations["put_api_v2_palitext_palitext_"];
+        post?: never;
+        /**
+         * 删除 palitext/{palitext}
+         * @description 实现:`PaliTextController@destroy`
+         */
+        delete: operations["delete_api_v2_palitext_palitext_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 palitext/{palitext}
+         * @description 实现:`PaliTextController@update`
+         */
+        patch: operations["patch_api_v2_palitext_palitext_"];
+        trace?: never;
+    };
+    "/v2/para-info": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 取一个章节内 pali_texts 的全部段落记录。
+         * @description 以 (book, para) 定位章节起始段,再按 chapter_len 取出该章节覆盖的整段区间。
+         *     每条记录附带 related_paragraphs 里的 CS6 锚点(book_name + cs_para),
+         *     没有锚点的段落这两个字段为 null——约 2% 的段落没有锚点,属正常情况。
+         *
+         *     实现:`ParaInfoController@index`
+         */
+        get: operations["get_api_v2_para_info"];
+        put?: never;
+        /**
+         * 新建 para-info
+         * @description 实现:`ParaInfoController@store`
+         */
+        post: operations["post_api_v2_para_info"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/para-info/{para_info}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 para-info/{para_info}
+         * @description 实现:`ParaInfoController@show`
+         */
+        get: operations["get_api_v2_para_info_para_info_"];
+        /**
+         * 更新 para-info/{para_info}
+         * @description 实现:`ParaInfoController@update`
+         */
+        put: operations["put_api_v2_para_info_para_info_"];
+        post?: never;
+        /**
+         * 删除 para-info/{para_info}
+         * @description 实现:`ParaInfoController@destroy`
+         */
+        delete: operations["delete_api_v2_para_info_para_info_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 para-info/{para_info}
+         * @description 实现:`ParaInfoController@update`
+         */
+        patch: operations["patch_api_v2_para_info_para_info_"];
+        trace?: never;
+    };
+    "/v2/paragraph-content": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 paragraph-content
+         * @description 实现:`ParagraphContentController@index`
+         */
+        get: operations["get_api_v2_paragraph_content"];
+        put?: never;
+        /**
+         * 新建 paragraph-content
+         * @description 实现:`ParagraphContentController@store`
+         */
+        post: operations["post_api_v2_paragraph_content"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/paragraph-content/{paragraph_content}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 paragraph-content/{paragraph_content}
+         * @description 实现:`ParagraphContentController@show`
+         */
+        get: operations["get_api_v2_paragraph_content_paragraph_content_"];
+        /**
+         * 更新 paragraph-content/{paragraph_content}
+         * @description 实现:`ParagraphContentController@update`
+         */
+        put: operations["put_api_v2_paragraph_content_paragraph_content_"];
+        post?: never;
+        /**
+         * 删除 paragraph-content/{paragraph_content}
+         * @description 实现:`ParagraphContentController@destroy`
+         */
+        delete: operations["delete_api_v2_paragraph_content_paragraph_content_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 paragraph-content/{paragraph_content}
+         * @description 实现:`ParagraphContentController@update`
+         */
+        patch: operations["patch_api_v2_paragraph_content_paragraph_content_"];
+        trace?: never;
+    };
+    "/v2/pg-pali-dict-download": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 pg-pali-dict-download
+         * @description 实现:`PgPaliDictDownloadController@index`
+         */
+        get: operations["get_api_v2_pg_pali_dict_download"];
+        put?: never;
+        /**
+         * 新建 pg-pali-dict-download
+         * @description 实现:`PgPaliDictDownloadController@store`
+         */
+        post: operations["post_api_v2_pg_pali_dict_download"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/pg-pali-dict-download/{pg_pali_dict_download}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 pg-pali-dict-download/{pg_pali_dict_download}
+         * @description 实现:`PgPaliDictDownloadController@show`
+         */
+        get: operations["get_api_v2_pg_pali_dict_download_pg_pali_dict_download_"];
+        /**
+         * 更新 pg-pali-dict-download/{pg_pali_dict_download}
+         * @description 实现:`PgPaliDictDownloadController@update`
+         */
+        put: operations["put_api_v2_pg_pali_dict_download_pg_pali_dict_download_"];
+        post?: never;
+        /**
+         * 删除 pg-pali-dict-download/{pg_pali_dict_download}
+         * @description 实现:`PgPaliDictDownloadController@destroy`
+         */
+        delete: operations["delete_api_v2_pg_pali_dict_download_pg_pali_dict_download_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 pg-pali-dict-download/{pg_pali_dict_download}
+         * @description 实现:`PgPaliDictDownloadController@update`
+         */
+        patch: operations["patch_api_v2_pg_pali_dict_download_pg_pali_dict_download_"];
+        trace?: never;
+    };
+    "/v2/progress": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 progress
+         * @description 实现:`ProgressChapterController@index`
+         */
+        get: operations["get_api_v2_progress"];
+        put?: never;
+        /**
+         * 新建 progress
+         * @description 实现:`ProgressChapterController@store`
+         */
+        post: operations["post_api_v2_progress"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/progress-img": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 progress-img
+         * @description 实现:`ProgressImgController@index`
+         */
+        get: operations["get_api_v2_progress_img"];
+        put?: never;
+        /**
+         * 新建 progress-img
+         * @description 实现:`ProgressImgController@store`
+         */
+        post: operations["post_api_v2_progress_img"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/progress-img/{progress_img}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 progress-img/{progress_img}
+         * @description 实现:`ProgressImgController@show`
+         */
+        get: operations["get_api_v2_progress_img_progress_img_"];
+        /**
+         * 更新 progress-img/{progress_img}
+         * @description 实现:`ProgressImgController@update`
+         */
+        put: operations["put_api_v2_progress_img_progress_img_"];
+        post?: never;
+        /**
+         * 删除 progress-img/{progress_img}
+         * @description 实现:`ProgressImgController@destroy`
+         */
+        delete: operations["delete_api_v2_progress_img_progress_img_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 progress-img/{progress_img}
+         * @description 实现:`ProgressImgController@update`
+         */
+        patch: operations["patch_api_v2_progress_img_progress_img_"];
+        trace?: never;
+    };
+    "/v2/progress/{progress}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 progress/{progress}
+         * @description 实现:`ProgressChapterController@show`
+         */
+        get: operations["get_api_v2_progress_progress_"];
+        /**
+         * 更新 progress/{progress}
+         * @description 实现:`ProgressChapterController@update`
+         */
+        put: operations["put_api_v2_progress_progress_"];
+        post?: never;
+        /**
+         * 删除 progress/{progress}
+         * @description 实现:`ProgressChapterController@destroy`
+         */
+        delete: operations["delete_api_v2_progress_progress_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 progress/{progress}
+         * @description 实现:`ProgressChapterController@update`
+         */
+        patch: operations["patch_api_v2_progress_progress_"];
+        trace?: never;
+    };
+    "/v2/project": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出工程(project)
+         * @description 按 view 指定的口径返回工程列表,支持关键字搜索、状态过滤、排序和分页。
+         *     必须登录,否则返回 401;view 缺失或不在枚举内时返回错误提示 view。
+         *     未传 studio 时,studio 默认取当前用户自己。
+         *
+         *     实现:`ProjectController@index`
+         */
+        get: operations["get_api_v2_project"];
+        put?: never;
+        /**
+         * 新建工程
+         * @description 在指定 studio 下创建工程。必须登录(否则 401),且当前用户必须是该 studio 本人
+         *     (studio_name 解析出的 id 等于当前用户 uid),否则返回 403。
+         *     传入 parent_id 时会读取父工程的 path 并追加父工程 id,写入本工程的 path,
+         *     以便按树查询子工程。
+         *
+         *     实现:`ProjectController@store`
+         */
+        post: operations["post_api_v2_project"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/project-tree": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 project-tree
+         * @description 实现:`ProjectTreeController@index`
+         */
+        get: operations["get_api_v2_project_tree"];
+        put?: never;
+        /**
+         * 新建 project-tree
+         * @description 实现:`ProjectTreeController@store`
+         */
+        post: operations["post_api_v2_project_tree"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/project-tree/{project_tree}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 project-tree/{project_tree}
+         * @description 实现:`ProjectTreeController@show`
+         */
+        get: operations["get_api_v2_project_tree_project_tree_"];
+        /**
+         * 更新 project-tree/{project_tree}
+         * @description 实现:`ProjectTreeController@update`
+         */
+        put: operations["put_api_v2_project_tree_project_tree_"];
+        post?: never;
+        /**
+         * 删除 project-tree/{project_tree}
+         * @description 实现:`ProjectTreeController@destroy`
+         */
+        delete: operations["delete_api_v2_project_tree_project_tree_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 project-tree/{project_tree}
+         * @description 实现:`ProjectTreeController@update`
+         */
+        patch: operations["patch_api_v2_project_tree_project_tree_"];
+        trace?: never;
+    };
+    "/v2/project/{project}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 查看单个工程
+         * @description 通过路由模型绑定按工程 uid 取出工程并返回详情,工程不存在时返回 404。
+         *     该接口不做登录与权限校验,私有工程同样可被读取。
+         *
+         *     实现:`ProjectController@show`
+         */
+        get: operations["get_api_v2_project_project_"];
+        /**
+         * 修改工程
+         * @description 整体覆盖式更新:title、description、parent_id、privacy 会无条件按请求体写入,
+         *     未传的字段会被置空,调用方需回传完整数据。必须登录(否则 401),
+         *     且只有工程拥有者本人可以修改,否则返回 403。
+         *     传入合法的 parent_id 时会按父工程重新计算 path。
+         *
+         *     实现:`ProjectController@update`
+         */
+        put: operations["put_api_v2_project_project_"];
+        post?: never;
+        /**
+         * 删除工程
+         * @description 尚未实现:方法体为空,不会删除任何数据,也不返回任何内容(响应为 200 空 body)。
+         *
+         *     实现:`ProjectController@destroy`
+         */
+        delete: operations["delete_api_v2_project_project_"];
+        options?: never;
+        head?: never;
+        /**
+         * 修改工程
+         * @description 整体覆盖式更新:title、description、parent_id、privacy 会无条件按请求体写入,
+         *     未传的字段会被置空,调用方需回传完整数据。必须登录(否则 401),
+         *     且只有工程拥有者本人可以修改,否则返回 403。
+         *     传入合法的 parent_id 时会按父工程重新计算 path。
+         *
+         *     实现:`ProjectController@update`
+         */
+        patch: operations["patch_api_v2_project_project_"];
+        trace?: never;
+    };
+    "/v2/recent": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 recent
+         * @description 实现:`RecentController@index`
+         */
+        get: operations["get_api_v2_recent"];
+        put?: never;
+        /**
+         * 新建 recent
+         * @description 实现:`RecentController@store`
+         */
+        post: operations["post_api_v2_recent"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/recent/{recent}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 recent/{recent}
+         * @description 实现:`RecentController@show`
+         */
+        get: operations["get_api_v2_recent_recent_"];
+        /**
+         * 更新 recent/{recent}
+         * @description 实现:`RecentController@update`
+         */
+        put: operations["put_api_v2_recent_recent_"];
+        post?: never;
+        /**
+         * 删除 recent/{recent}
+         * @description 实现:`RecentController@destroy`
+         */
+        delete: operations["delete_api_v2_recent_recent_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 recent/{recent}
+         * @description 实现:`RecentController@update`
+         */
+        patch: operations["patch_api_v2_recent_recent_"];
+        trace?: never;
+    };
+    "/v2/related-paragraph": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 related-paragraph
+         * @description 实现:`RelatedParagraphController@index`
+         */
+        get: operations["get_api_v2_related_paragraph"];
+        put?: never;
+        /**
+         * 新建 related-paragraph
+         * @description 实现:`RelatedParagraphController@store`
+         */
+        post: operations["post_api_v2_related_paragraph"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/related-paragraph/{related_paragraph}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 related-paragraph/{related_paragraph}
+         * @description 实现:`RelatedParagraphController@show`
+         */
+        get: operations["get_api_v2_related_paragraph_related_paragraph_"];
+        /**
+         * 更新 related-paragraph/{related_paragraph}
+         * @description 实现:`RelatedParagraphController@update`
+         */
+        put: operations["put_api_v2_related_paragraph_related_paragraph_"];
+        post?: never;
+        /**
+         * 删除 related-paragraph/{related_paragraph}
+         * @description 实现:`RelatedParagraphController@destroy`
+         */
+        delete: operations["delete_api_v2_related_paragraph_related_paragraph_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 related-paragraph/{related_paragraph}
+         * @description 实现:`RelatedParagraphController@update`
+         */
+        patch: operations["patch_api_v2_related_paragraph_related_paragraph_"];
+        trace?: never;
+    };
+    "/v2/relation": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * Supports optional filters: case, search, name, from, to, match, category.
+         * @description When the `vocabulary` parameter is present, returns the full unfiltered
+         *     list from cache (suitable for populating UI dropdowns / autocomplete).
+         *
+         *     实现:`RelationController@index`
+         */
+        get: operations["get_api_v2_relation"];
+        put?: never;
+        /**
+         * Requires authentication. Invalidates the vocabulary cache on success.
+         * @description 实现:`RelationController@store`
+         */
+        post: operations["post_api_v2_relation"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/relation-export": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * Export all relations as an XLSX file download.
+         * @description Streams the spreadsheet directly to the browser via php://output.
+         *     Columns: id, name, from, to, match, category.
+         *
+         *     实现:`RelationController@export`
+         */
+        get: operations["get_api_v2_relation_export"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/relation-import": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * Import relations from an uploaded XLSX file.
+         * @description Requires authentication. Reads the file path from the `filename` request
+         *     parameter. Existing records are matched by id and updated in place;
+         *     rows without a matching id are inserted as new records.
+         *     Invalidates the vocabulary cache on completion.
+         *
+         *     实现:`RelationController@import`
+         */
+        get: operations["get_api_v2_relation_import"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/relation/{relation}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 relation/{relation}
+         * @description 实现:`RelationController@show`
+         */
+        get: operations["get_api_v2_relation_relation_"];
+        /**
+         * Requires authentication. Invalidates the vocabulary cache on success.
+         * @description 实现:`RelationController@update`
+         */
+        put: operations["put_api_v2_relation_relation_"];
+        post?: never;
+        /**
+         * Requires authentication. Invalidates the vocabulary cache on success.
+         * @description 实现:`RelationController@destroy`
+         */
+        delete: operations["delete_api_v2_relation_relation_"];
+        options?: never;
+        head?: never;
+        /**
+         * Requires authentication. Invalidates the vocabulary cache on success.
+         * @description 实现:`RelationController@update`
+         */
+        patch: operations["patch_api_v2_relation_relation_"];
+        trace?: never;
+    };
+    "/v2/search": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 search
+         * @description 实现:`SearchController@index`
+         */
+        get: operations["get_api_v2_search"];
+        put?: never;
+        /**
+         * 新建 search
+         * @description 实现:`SearchController@store`
+         */
+        post: operations["post_api_v2_search"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/search-book-list": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * book_list search-book-list
+         * @description 实现:`SearchController@book_list`
+         */
+        get: operations["get_api_v2_search_book_list"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/search-page-number": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 search-page-number
+         * @description 实现:`SearchPageNumberController@index`
+         */
+        get: operations["get_api_v2_search_page_number"];
+        put?: never;
+        /**
+         * 新建 search-page-number
+         * @description 实现:`SearchPageNumberController@store`
+         */
+        post: operations["post_api_v2_search_page_number"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/search-page-number/{search_page_number}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 search-page-number/{search_page_number}
+         * @description 实现:`SearchPageNumberController@show`
+         */
+        get: operations["get_api_v2_search_page_number_search_page_number_"];
+        /**
+         * 更新 search-page-number/{search_page_number}
+         * @description 实现:`SearchPageNumberController@update`
+         */
+        put: operations["put_api_v2_search_page_number_search_page_number_"];
+        post?: never;
+        /**
+         * 删除 search-page-number/{search_page_number}
+         * @description 实现:`SearchPageNumberController@destroy`
+         */
+        delete: operations["delete_api_v2_search_page_number_search_page_number_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 search-page-number/{search_page_number}
+         * @description 实现:`SearchPageNumberController@update`
+         */
+        patch: operations["patch_api_v2_search_page_number_search_page_number_"];
+        trace?: never;
+    };
+    "/v2/search-pali-wbw": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 search-pali-wbw
+         * @description 实现:`SearchPaliWbwController@index`
+         */
+        get: operations["get_api_v2_search_pali_wbw"];
+        put?: never;
+        /**
+         * 新建 search-pali-wbw
+         * @description 实现:`SearchPaliWbwController@store`
+         */
+        post: operations["post_api_v2_search_pali_wbw"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/search-pali-wbw-books": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * book_list search-pali-wbw-books
+         * @description 实现:`SearchPaliWbwController@book_list`
+         */
+        get: operations["get_api_v2_search_pali_wbw_books"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/search-pali-wbw/{search_pali_wbw}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 search-pali-wbw/{search_pali_wbw}
+         * @description 实现:`SearchPaliWbwController@show`
+         */
+        get: operations["get_api_v2_search_pali_wbw_search_pali_wbw_"];
+        /**
+         * 更新 search-pali-wbw/{search_pali_wbw}
+         * @description 实现:`SearchPaliWbwController@update`
+         */
+        put: operations["put_api_v2_search_pali_wbw_search_pali_wbw_"];
+        post?: never;
+        /**
+         * 删除 search-pali-wbw/{search_pali_wbw}
+         * @description 实现:`SearchPaliWbwController@destroy`
+         */
+        delete: operations["delete_api_v2_search_pali_wbw_search_pali_wbw_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 search-pali-wbw/{search_pali_wbw}
+         * @description 实现:`SearchPaliWbwController@update`
+         */
+        patch: operations["patch_api_v2_search_pali_wbw_search_pali_wbw_"];
+        trace?: never;
+    };
+    "/v2/search-title-index": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 search-title-index
+         * @description 实现:`SearchTitleController@index`
+         */
+        get: operations["get_api_v2_search_title_index"];
+        put?: never;
+        /**
+         * 新建 search-title-index
+         * @description 实现:`SearchTitleController@store`
+         */
+        post: operations["post_api_v2_search_title_index"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/search-title-index/{search_title_index}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 search-title-index/{search_title_index}
+         * @description 实现:`SearchTitleController@show`
+         */
+        get: operations["get_api_v2_search_title_index_search_title_index_"];
+        /**
+         * 更新 search-title-index/{search_title_index}
+         * @description 实现:`SearchTitleController@update`
+         */
+        put: operations["put_api_v2_search_title_index_search_title_index_"];
+        post?: never;
+        /**
+         * 删除 search-title-index/{search_title_index}
+         * @description 实现:`SearchTitleController@destroy`
+         */
+        delete: operations["delete_api_v2_search_title_index_search_title_index_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 search-title-index/{search_title_index}
+         * @description 实现:`SearchTitleController@update`
+         */
+        patch: operations["patch_api_v2_search_title_index_search_title_index_"];
+        trace?: never;
+    };
+    "/v2/search-word-slice": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 search-word-slice
+         * @description 实现:`SearchWordSliceController@index`
+         */
+        get: operations["get_api_v2_search_word_slice"];
+        put?: never;
+        /**
+         * 新建 search-word-slice
+         * @description 实现:`SearchWordSliceController@store`
+         */
+        post: operations["post_api_v2_search_word_slice"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/search-word-slice/{search_word_slouse}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 search-word-slice/{search_word_slouse}
+         * @description 实现:`SearchWordSliceController@show`
+         */
+        get: operations["get_api_v2_search_word_slice_search_word_slouse_"];
+        /**
+         * 更新 search-word-slice/{search_word_slouse}
+         * @description 实现:`SearchWordSliceController@update`
+         */
+        put: operations["put_api_v2_search_word_slice_search_word_slouse_"];
+        post?: never;
+        /**
+         * 删除 search-word-slice/{search_word_slouse}
+         * @description 实现:`SearchWordSliceController@destroy`
+         */
+        delete: operations["delete_api_v2_search_word_slice_search_word_slouse_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 search-word-slice/{search_word_slouse}
+         * @description 实现:`SearchWordSliceController@update`
+         */
+        patch: operations["patch_api_v2_search_word_slice_search_word_slouse_"];
+        trace?: never;
+    };
+    "/v2/search/{search}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 search/{search}
+         * @description 实现:`SearchController@show`
+         */
+        get: operations["get_api_v2_search_search_"];
+        /**
+         * 更新 search/{search}
+         * @description 实现:`SearchController@update`
+         */
+        put: operations["put_api_v2_search_search_"];
+        post?: never;
+        /**
+         * 删除 search/{search}
+         * @description 实现:`SearchController@destroy`
+         */
+        delete: operations["delete_api_v2_search_search_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 search/{search}
+         * @description 实现:`SearchController@update`
+         */
+        patch: operations["patch_api_v2_search_search_"];
+        trace?: never;
+    };
+    "/v2/sent-discussion-tree": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        get?: never;
+        put?: never;
+        /**
+         * 按句子批量查询讨论概览
+         * @description 对传入的每个句子定位(book/paragraph/word_start/word_end/channel_id)先查到 sentence,
+         *     再取该句上全部顶级讨论(title、children_count、editor_uid,按创建时间倒序)。
+         *     没有讨论的句子会被跳过,不做登录与权限校验。返回 rows 与 count。
+         *
+         *     实现:`DiscussionController@discussion_tree`
+         */
+        post: operations["post_api_v2_sent_discussion_tree"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/sent-in-channel": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 用channel 和句子编号列表查询句子
+         * @description 实现:`SentInChannelController@index`
+         */
+        get: operations["get_api_v2_sent_in_channel"];
+        put?: never;
+        /**
+         * 新建 sent-in-channel
+         * @description 实现:`SentInChannelController@store`
+         */
+        post: operations["post_api_v2_sent_in_channel"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/sent-in-channel/{sent_in_channel}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 sent-in-channel/{sent_in_channel}
+         * @description 实现:`SentInChannelController@show`
+         */
+        get: operations["get_api_v2_sent_in_channel_sent_in_channel_"];
+        /**
+         * 更新 sent-in-channel/{sent_in_channel}
+         * @description 实现:`SentInChannelController@update`
+         */
+        put: operations["put_api_v2_sent_in_channel_sent_in_channel_"];
+        post?: never;
+        /**
+         * 删除 sent-in-channel/{sent_in_channel}
+         * @description 实现:`SentInChannelController@destroy`
+         */
+        delete: operations["delete_api_v2_sent_in_channel_sent_in_channel_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 sent-in-channel/{sent_in_channel}
+         * @description 实现:`SentInChannelController@update`
+         */
+        patch: operations["patch_api_v2_sent_in_channel_sent_in_channel_"];
+        trace?: never;
+    };
+    "/v2/sent-pr-tree": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        get?: never;
+        put?: never;
+        /**
+         * pr_tree sent-pr-tree
+         * @description 实现:`SentPrController@pr_tree`
+         */
+        post: operations["post_api_v2_sent_pr_tree"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/sent-sim": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 sent-sim
+         * @description 实现:`SentSimController@index`
+         */
+        get: operations["get_api_v2_sent_sim"];
+        put?: never;
+        /**
+         * 新建 sent-sim
+         * @description 实现:`SentSimController@store`
+         */
+        post: operations["post_api_v2_sent_sim"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/sent-sim/{sent_sim}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 sent-sim/{sent_sim}
+         * @description 实现:`SentSimController@show`
+         */
+        get: operations["get_api_v2_sent_sim_sent_sim_"];
+        /**
+         * 更新 sent-sim/{sent_sim}
+         * @description 实现:`SentSimController@update`
+         */
+        put: operations["put_api_v2_sent_sim_sent_sim_"];
+        post?: never;
+        /**
+         * 删除 sent-sim/{sent_sim}
+         * @description 实现:`SentSimController@destroy`
+         */
+        delete: operations["delete_api_v2_sent_sim_sent_sim_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 sent-sim/{sent_sim}
+         * @description 实现:`SentSimController@update`
+         */
+        patch: operations["patch_api_v2_sent_sim_sent_sim_"];
+        trace?: never;
+    };
+    "/v2/sent_history": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 sent_history
+         * @description 实现:`SentHistoryController@index`
+         */
+        get: operations["get_api_v2_sent_history"];
+        put?: never;
+        /**
+         * 新建 sent_history
+         * @description 实现:`SentHistoryController@store`
+         */
+        post: operations["post_api_v2_sent_history"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/sent_history/{sent_history}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 sent_history/{sent_history}
+         * @description 实现:`SentHistoryController@show`
+         */
+        get: operations["get_api_v2_sent_history_sent_history_"];
+        /**
+         * 更新 sent_history/{sent_history}
+         * @description 实现:`SentHistoryController@update`
+         */
+        put: operations["put_api_v2_sent_history_sent_history_"];
+        post?: never;
+        /**
+         * 删除 sent_history/{sent_history}
+         * @description 实现:`SentHistoryController@destroy`
+         */
+        delete: operations["delete_api_v2_sent_history_sent_history_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 sent_history/{sent_history}
+         * @description 实现:`SentHistoryController@update`
+         */
+        patch: operations["patch_api_v2_sent_history_sent_history_"];
+        trace?: never;
+    };
+    "/v2/sent_history_contribution": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * contribution sent_history_contribution
+         * @description 实现:`SentHistoryController@contribution`
+         */
+        get: operations["get_api_v2_sent_history_contribution"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/sentence": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 sentence
+         * @description 实现:`SentenceController@index`
+         */
+        get: operations["get_api_v2_sentence"];
+        put?: never;
+        /**
+         * 新建多个句子
+         * @description 如果句子存在,修改
+         *
+         *     实现:`SentenceController@store`
+         */
+        post: operations["post_api_v2_sentence"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/sentence-attachment": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 sentence-attachment
+         * @description 实现:`SentenceAttachmentController@index`
+         */
+        get: operations["get_api_v2_sentence_attachment"];
+        put?: never;
+        /**
+         * 新建 sentence-attachment
+         * @description 实现:`SentenceAttachmentController@store`
+         */
+        post: operations["post_api_v2_sentence_attachment"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/sentence-attachment/{sentence_attachment}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 sentence-attachment/{sentence_attachment}
+         * @description 实现:`SentenceAttachmentController@show`
+         */
+        get: operations["get_api_v2_sentence_attachment_sentence_attachment_"];
+        /**
+         * 更新 sentence-attachment/{sentence_attachment}
+         * @description 实现:`SentenceAttachmentController@update`
+         */
+        put: operations["put_api_v2_sentence_attachment_sentence_attachment_"];
+        post?: never;
+        /**
+         * 删除 sentence-attachment/{sentence_attachment}
+         * @description 实现:`SentenceAttachmentController@destroy`
+         */
+        delete: operations["delete_api_v2_sentence_attachment_sentence_attachment_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 sentence-attachment/{sentence_attachment}
+         * @description 实现:`SentenceAttachmentController@update`
+         */
+        patch: operations["patch_api_v2_sentence_attachment_sentence_attachment_"];
+        trace?: never;
+    };
+    "/v2/sentence-info": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 sentence-info
+         * @description 实现:`SentenceInfoController@index`
+         */
+        get: operations["get_api_v2_sentence_info"];
+        put?: never;
+        /**
+         * 新建 sentence-info
+         * @description 实现:`SentenceInfoController@store`
+         */
+        post: operations["post_api_v2_sentence_info"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/sentence-info/{sentence_info}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 sentence-info/{sentence_info}
+         * @description 实现:`SentenceInfoController@show`
+         */
+        get: operations["get_api_v2_sentence_info_sentence_info_"];
+        /**
+         * 更新 sentence-info/{sentence_info}
+         * @description 实现:`SentenceInfoController@update`
+         */
+        put: operations["put_api_v2_sentence_info_sentence_info_"];
+        post?: never;
+        /**
+         * 删除 sentence-info/{sentence_info}
+         * @description 实现:`SentenceInfoController@destroy`
+         */
+        delete: operations["delete_api_v2_sentence_info_sentence_info_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 sentence-info/{sentence_info}
+         * @description 实现:`SentenceInfoController@update`
+         */
+        patch: operations["patch_api_v2_sentence_info_sentence_info_"];
+        trace?: never;
+    };
+    "/v2/sentence-io": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 sentence-io
+         * @description 实现:`SentenceIOController@index`
+         */
+        get: operations["get_api_v2_sentence_io"];
+        put?: never;
+        /**
+         * 新建 sentence-io
+         * @description 实现:`SentenceIOController@store`
+         */
+        post: operations["post_api_v2_sentence_io"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/sentence-io/{sentence_io}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 sentence-io/{sentence_io}
+         * @description 实现:`SentenceIOController@show`
+         */
+        get: operations["get_api_v2_sentence_io_sentence_io_"];
+        /**
+         * 更新 sentence-io/{sentence_io}
+         * @description 实现:`SentenceIOController@update`
+         */
+        put: operations["put_api_v2_sentence_io_sentence_io_"];
+        post?: never;
+        /**
+         * 删除 sentence-io/{sentence_io}
+         * @description 实现:`SentenceIOController@destroy`
+         */
+        delete: operations["delete_api_v2_sentence_io_sentence_io_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 sentence-io/{sentence_io}
+         * @description 实现:`SentenceIOController@update`
+         */
+        patch: operations["patch_api_v2_sentence_io_sentence_io_"];
+        trace?: never;
+    };
+    "/v2/sentence/{sentence}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 sentence/{sentence}
+         * @description 实现:`SentenceController@show`
+         */
+        get: operations["get_api_v2_sentence_sentence_"];
+        /**
+         * 修改单个句子
+         * @description 实现:`SentenceController@update`
+         */
+        put: operations["put_api_v2_sentence_sentence_"];
+        post?: never;
+        /**
+         * 删除 sentence/{sentence}
+         * @description 实现:`SentenceController@destroy`
+         */
+        delete: operations["delete_api_v2_sentence_sentence_"];
+        options?: never;
+        head?: never;
+        /**
+         * 修改单个句子
+         * @description 实现:`SentenceController@update`
+         */
+        patch: operations["patch_api_v2_sentence_sentence_"];
+        trace?: never;
+    };
+    "/v2/sentences-in-chapter": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 sentences-in-chapter
+         * @description 实现:`SentencesInChapterController@index`
+         */
+        get: operations["get_api_v2_sentences_in_chapter"];
+        put?: never;
+        /**
+         * 新建 sentences-in-chapter
+         * @description 实现:`SentencesInChapterController@store`
+         */
+        post: operations["post_api_v2_sentences_in_chapter"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/sentences-in-chapter/{sentences_in_chapter}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 sentences-in-chapter/{sentences_in_chapter}
+         * @description 实现:`SentencesInChapterController@show`
+         */
+        get: operations["get_api_v2_sentences_in_chapter_sentences_in_chapter_"];
+        /**
+         * 更新 sentences-in-chapter/{sentences_in_chapter}
+         * @description 实现:`SentencesInChapterController@update`
+         */
+        put: operations["put_api_v2_sentences_in_chapter_sentences_in_chapter_"];
+        post?: never;
+        /**
+         * 删除 sentences-in-chapter/{sentences_in_chapter}
+         * @description 实现:`SentencesInChapterController@destroy`
+         */
+        delete: operations["delete_api_v2_sentences_in_chapter_sentences_in_chapter_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 sentences-in-chapter/{sentences_in_chapter}
+         * @description 实现:`SentencesInChapterController@update`
+         */
+        patch: operations["patch_api_v2_sentences_in_chapter_sentences_in_chapter_"];
+        trace?: never;
+    };
+    "/v2/sentpr": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 sentpr
+         * @description 实现:`SentPrController@index`
+         */
+        get: operations["get_api_v2_sentpr"];
+        put?: never;
+        /**
+         * 新建 sentpr
+         * @description 实现:`SentPrController@store`
+         */
+        post: operations["post_api_v2_sentpr"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/sentpr/{sentpr}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 sentpr/{sentpr}
+         * @description 实现:`SentPrController@show`
+         */
+        get: operations["get_api_v2_sentpr_sentpr_"];
+        /**
+         * 更新 sentpr/{sentpr}
+         * @description 实现:`SentPrController@update`
+         */
+        put: operations["put_api_v2_sentpr_sentpr_"];
+        post?: never;
+        /**
+         * 删除 sentpr/{sentpr}
+         * @description 实现:`SentPrController@destroy`
+         */
+        delete: operations["delete_api_v2_sentpr_sentpr_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 sentpr/{sentpr}
+         * @description 实现:`SentPrController@update`
+         */
+        patch: operations["patch_api_v2_sentpr_sentpr_"];
+        trace?: never;
+    };
+    "/v2/share": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 share
+         * @description 实现:`ShareController@index`
+         */
+        get: operations["get_api_v2_share"];
+        put?: never;
+        /**
+         * 新建 share
+         * @description 实现:`ShareController@store`
+         */
+        post: operations["post_api_v2_share"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/share/{share}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 share/{share}
+         * @description 实现:`ShareController@show`
+         */
+        get: operations["get_api_v2_share_share_"];
+        /**
+         * 更新 share/{share}
+         * @description 实现:`ShareController@update`
+         */
+        put: operations["put_api_v2_share_share_"];
+        post?: never;
+        /**
+         * 删除 share/{share}
+         * @description 实现:`ShareController@destroy`
+         */
+        delete: operations["delete_api_v2_share_share_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 share/{share}
+         * @description 实现:`ShareController@update`
+         */
+        patch: operations["patch_api_v2_share_share_"];
+        trace?: never;
+    };
+    "/v2/sign-in": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        get?: never;
+        put?: never;
+        /**
+         * signIn sign-in
+         * @description 实现:`AuthController@signIn`
+         */
+        post: operations["post_api_v2_sign_in"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/sign-up": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 sign-up
+         * @description 实现:`SignUpController@index`
+         */
+        get: operations["get_api_v2_sign_up"];
+        put?: never;
+        /**
+         * 新建 sign-up
+         * @description 实现:`SignUpController@store`
+         */
+        post: operations["post_api_v2_sign_up"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/sign-up/{sign_up}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 sign-up/{sign_up}
+         * @description 实现:`SignUpController@show`
+         */
+        get: operations["get_api_v2_sign_up_sign_up_"];
+        /**
+         * 更新 sign-up/{sign_up}
+         * @description 实现:`SignUpController@update`
+         */
+        put: operations["put_api_v2_sign_up_sign_up_"];
+        post?: never;
+        /**
+         * 删除 sign-up/{sign_up}
+         * @description 实现:`SignUpController@destroy`
+         */
+        delete: operations["delete_api_v2_sign_up_sign_up_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 sign-up/{sign_up}
+         * @description 实现:`SignUpController@update`
+         */
+        patch: operations["patch_api_v2_sign_up_sign_up_"];
+        trace?: never;
+    };
+    "/v2/site-info": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 site-info
+         * @description 实现:`SiteInfoController@index`
+         */
+        get: operations["get_api_v2_site_info"];
+        put?: never;
+        /**
+         * 新建 site-info
+         * @description 实现:`SiteInfoController@store`
+         */
+        post: operations["post_api_v2_site_info"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/site-info/{site_info}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 site-info/{site_info}
+         * @description 实现:`SiteInfoController@show`
+         */
+        get: operations["get_api_v2_site_info_site_info_"];
+        /**
+         * 更新 site-info/{site_info}
+         * @description 实现:`SiteInfoController@update`
+         */
+        put: operations["put_api_v2_site_info_site_info_"];
+        post?: never;
+        /**
+         * 删除 site-info/{site_info}
+         * @description 实现:`SiteInfoController@destroy`
+         */
+        delete: operations["delete_api_v2_site_info_site_info_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 site-info/{site_info}
+         * @description 实现:`SiteInfoController@update`
+         */
+        patch: operations["patch_api_v2_site_info_site_info_"];
+        trace?: never;
+    };
+    "/v2/snowflake": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 snowflake
+         * @description 实现:`SnowFlakeIdController@index`
+         */
+        get: operations["get_api_v2_snowflake"];
+        put?: never;
+        /**
+         * 新建 snowflake
+         * @description 实现:`SnowFlakeIdController@store`
+         */
+        post: operations["post_api_v2_snowflake"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/snowflake/{snowflake}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 snowflake/{snowflake}
+         * @description 实现:`SnowFlakeIdController@show`
+         */
+        get: operations["get_api_v2_snowflake_snowflake_"];
+        /**
+         * 更新 snowflake/{snowflake}
+         * @description 实现:`SnowFlakeIdController@update`
+         */
+        put: operations["put_api_v2_snowflake_snowflake_"];
+        post?: never;
+        /**
+         * 删除 snowflake/{snowflake}
+         * @description 实现:`SnowFlakeIdController@destroy`
+         */
+        delete: operations["delete_api_v2_snowflake_snowflake_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 snowflake/{snowflake}
+         * @description 实现:`SnowFlakeIdController@update`
+         */
+        patch: operations["patch_api_v2_snowflake_snowflake_"];
+        trace?: never;
+    };
+    "/v2/studio": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 studio
+         * @description 实现:`StudioController@index`
+         */
+        get: operations["get_api_v2_studio"];
+        put?: never;
+        /**
+         * 新建 studio
+         * @description 实现:`StudioController@store`
+         */
+        post: operations["post_api_v2_studio"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/studio/{studio}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 studio/{studio}
+         * @description 实现:`StudioController@show`
+         */
+        get: operations["get_api_v2_studio_studio_"];
+        /**
+         * 更新 studio/{studio}
+         * @description 实现:`StudioController@update`
+         */
+        put: operations["put_api_v2_studio_studio_"];
+        post?: never;
+        /**
+         * 删除 studio/{studio}
+         * @description 实现:`StudioController@destroy`
+         */
+        delete: operations["delete_api_v2_studio_studio_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 studio/{studio}
+         * @description 实现:`StudioController@update`
+         */
+        patch: operations["patch_api_v2_studio_studio_"];
+        trace?: never;
+    };
+    "/v2/system-model": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 system-model
+         * @description 实现:`SysModelController@index`
+         */
+        get: operations["get_api_v2_system_model"];
+        put?: never;
+        /**
+         * 新建 system-model
+         * @description 实现:`SysModelController@store`
+         */
+        post: operations["post_api_v2_system_model"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/system-model/{system_model}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 system-model/{system_model}
+         * @description 实现:`SysModelController@show`
+         */
+        get: operations["get_api_v2_system_model_system_model_"];
+        /**
+         * 更新 system-model/{system_model}
+         * @description 实现:`SysModelController@update`
+         */
+        put: operations["put_api_v2_system_model_system_model_"];
+        post?: never;
+        /**
+         * 删除 system-model/{system_model}
+         * @description 实现:`SysModelController@destroy`
+         */
+        delete: operations["delete_api_v2_system_model_system_model_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 system-model/{system_model}
+         * @description 实现:`SysModelController@update`
+         */
+        patch: operations["patch_api_v2_system_model_system_model_"];
+        trace?: never;
+    };
+    "/v2/system-term/{lang}/{word}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 system-term/{lang}/{word}
+         * @description 实现:`SystemTermController@show`
+         */
+        get: operations["get_api_v2_system_term_lang_word_"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/tag": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 tag
+         * @description 实现:`TagController@index`
+         */
+        get: operations["get_api_v2_tag"];
+        put?: never;
+        /**
+         * 新建 tag
+         * @description 实现:`TagController@store`
+         */
+        post: operations["post_api_v2_tag"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/tag-map": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 tag-map
+         * @description 实现:`TagMapController@index`
+         */
+        get: operations["get_api_v2_tag_map"];
+        put?: never;
+        /**
+         * 新建 tag-map
+         * @description 实现:`TagMapController@store`
+         */
+        post: operations["post_api_v2_tag_map"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/tag-map/{tag_map}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 tag-map/{tag_map}
+         * @description 实现:`TagMapController@show`
+         */
+        get: operations["get_api_v2_tag_map_tag_map_"];
+        /**
+         * 更新 tag-map/{tag_map}
+         * @description 实现:`TagMapController@update`
+         */
+        put: operations["put_api_v2_tag_map_tag_map_"];
+        post?: never;
+        /**
+         * 删除 tag-map/{tag_map}
+         * @description 实现:`TagMapController@destroy`
+         */
+        delete: operations["delete_api_v2_tag_map_tag_map_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 tag-map/{tag_map}
+         * @description 实现:`TagMapController@update`
+         */
+        patch: operations["patch_api_v2_tag_map_tag_map_"];
+        trace?: never;
+    };
+    "/v2/tag/{tag}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 tag/{tag}
+         * @description 实现:`TagController@show`
+         */
+        get: operations["get_api_v2_tag_tag_"];
+        /**
+         * 更新 tag/{tag}
+         * @description 实现:`TagController@update`
+         */
+        put: operations["put_api_v2_tag_tag_"];
+        post?: never;
+        /**
+         * 删除 tag/{tag}
+         * @description 实现:`TagController@destroy`
+         */
+        delete: operations["delete_api_v2_tag_tag_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 tag/{tag}
+         * @description 实现:`TagController@update`
+         */
+        patch: operations["patch_api_v2_tag_tag_"];
+        trace?: never;
+    };
+    "/v2/tags-in-chapter": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 tags-in-chapter
+         * @description 实现:`TagsInChapterCountController@index`
+         */
+        get: operations["get_api_v2_tags_in_chapter"];
+        put?: never;
+        /**
+         * 新建 tags-in-chapter
+         * @description 实现:`TagsInChapterCountController@store`
+         */
+        post: operations["post_api_v2_tags_in_chapter"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/tags-in-chapter/{tags_in_chapter}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 tags-in-chapter/{tags_in_chapter}
+         * @description 实现:`TagsInChapterCountController@show`
+         */
+        get: operations["get_api_v2_tags_in_chapter_tags_in_chapter_"];
+        /**
+         * 更新 tags-in-chapter/{tags_in_chapter}
+         * @description 实现:`TagsInChapterCountController@update`
+         */
+        put: operations["put_api_v2_tags_in_chapter_tags_in_chapter_"];
+        post?: never;
+        /**
+         * 删除 tags-in-chapter/{tags_in_chapter}
+         * @description 实现:`TagsInChapterCountController@destroy`
+         */
+        delete: operations["delete_api_v2_tags_in_chapter_tags_in_chapter_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 tags-in-chapter/{tags_in_chapter}
+         * @description 实现:`TagsInChapterCountController@update`
+         */
+        patch: operations["patch_api_v2_tags_in_chapter_tags_in_chapter_"];
+        trace?: never;
+    };
+    "/v2/task": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出任务
+         * @description 按 view 指定的口径返回任务列表,支持按执行人、责任人(指派)、参与者、
+         *     关键字、状态过滤,并支持排序与分页。必须登录,未登录返回 401。
+         *     注意:view 取值不在枚举内时不会构造查询,会导致请求失败。
+         *
+         *     实现:`TaskController@index`
+         */
+        get: operations["get_api_v2_task"];
+        put?: never;
+        /**
+         * 新建任务
+         * @description 在指定 studio 下创建任务。必须登录(否则 401),且当前用户必须是该 studio 本人
+         *     (studio_name 解析出的 id 等于当前用户 uid),否则返回 403。
+         *     新任务的 order 自动取同一 parent(无 parent 时取同一 project)下最大 order + 1,
+         *     没有兄弟节点时为 1;owner_id 为该 studio,creator_id 与 editor_id 为当前用户。
+         *
+         *     实现:`TaskController@store`
+         */
+        post: operations["post_api_v2_task"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/task-group": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 task-group
+         * @description 实现:`TaskGroupController@index`
+         */
+        get: operations["get_api_v2_task_group"];
+        put?: never;
+        /**
+         * 新建 task-group
+         * @description 实现:`TaskGroupController@store`
+         */
+        post: operations["post_api_v2_task_group"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/task-group/{task_group}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 task-group/{task_group}
+         * @description 实现:`TaskGroupController@show`
+         */
+        get: operations["get_api_v2_task_group_task_group_"];
+        /**
+         * 更新 task-group/{task_group}
+         * @description 实现:`TaskGroupController@update`
+         */
+        put: operations["put_api_v2_task_group_task_group_"];
+        post?: never;
+        /**
+         * 删除 task-group/{task_group}
+         * @description 实现:`TaskGroupController@destroy`
+         */
+        delete: operations["delete_api_v2_task_group_task_group_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 task-group/{task_group}
+         * @description 实现:`TaskGroupController@update`
+         */
+        patch: operations["patch_api_v2_task_group_task_group_"];
+        trace?: never;
+    };
+    "/v2/task-status": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 task-status
+         * @description 实现:`TaskStatusController@index`
+         */
+        get: operations["get_api_v2_task_status"];
+        put?: never;
+        /**
+         * 新建 task-status
+         * @description 实现:`TaskStatusController@store`
+         */
+        post: operations["post_api_v2_task_status"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/task-status/{task_status}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 task-status/{task_status}
+         * @description 实现:`TaskStatusController@show`
+         */
+        get: operations["get_api_v2_task_status_task_status_"];
+        /**
+         * 更新 task-status/{task_status}
+         * @description 实现:`TaskStatusController@update`
+         */
+        put: operations["put_api_v2_task_status_task_status_"];
+        post?: never;
+        /**
+         * 删除 task-status/{task_status}
+         * @description 实现:`TaskStatusController@destroy`
+         */
+        delete: operations["delete_api_v2_task_status_task_status_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 task-status/{task_status}
+         * @description 实现:`TaskStatusController@update`
+         */
+        patch: operations["patch_api_v2_task_status_task_status_"];
+        trace?: never;
+    };
+    "/v2/task/{task}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 查看单个任务
+         * @description 通过路由模型绑定按任务 uuid 取出任务并返回详情,任务不存在时返回 404。
+         *     该接口不做登录与权限校验,任何人都能读取。
+         *
+         *     实现:`TaskController@show`
+         */
+        get: operations["get_api_v2_task_task_"];
+        /**
+         * 修改任务
+         * @description 局部更新:只更新请求体里出现的字段,未出现的字段保持不变。必须登录(否则 401);
+         *     只有任务拥有者、实际执行人或责任人之一可以修改,否则返回 403。
+         *     副作用:传 assignees_id 会先删除该任务全部责任人再整体重建;
+         *     传 pre_task_id / next_task_id 会整体重写任务的前置 / 后续关联关系。
+         *     每次保存都会把 editor_id 更新为当前用户。
+         *
+         *     实现:`TaskController@update`
+         */
+        put: operations["put_api_v2_task_task_"];
+        post?: never;
+        /**
+         * 删除任务
+         * @description 必须登录(否则 401),且当前用户必须是任务拥有者,否则返回 403。
+         *     删除成功返回 ok,失败返回 500。
+         *
+         *     实现:`TaskController@destroy`
+         */
+        delete: operations["delete_api_v2_task_task_"];
+        options?: never;
+        head?: never;
+        /**
+         * 修改任务
+         * @description 局部更新:只更新请求体里出现的字段,未出现的字段保持不变。必须登录(否则 401);
+         *     只有任务拥有者、实际执行人或责任人之一可以修改,否则返回 403。
+         *     副作用:传 assignees_id 会先删除该任务全部责任人再整体重建;
+         *     传 pre_task_id / next_task_id 会整体重写任务的前置 / 后续关联关系。
+         *     每次保存都会把 editor_id 更新为当前用户。
+         *
+         *     实现:`TaskController@update`
+         */
+        patch: operations["patch_api_v2_task_task_"];
+        trace?: never;
+    };
+    "/v2/term-summary": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 term-summary
+         * @description 实现:`TermSummaryController@index`
+         */
+        get: operations["get_api_v2_term_summary"];
+        put?: never;
+        /**
+         * 新建 term-summary
+         * @description 实现:`TermSummaryController@store`
+         */
+        post: operations["post_api_v2_term_summary"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/term-summary/{term_summary}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 term-summary/{term_summary}
+         * @description 实现:`TermSummaryController@show`
+         */
+        get: operations["get_api_v2_term_summary_term_summary_"];
+        /**
+         * 更新 term-summary/{term_summary}
+         * @description 实现:`TermSummaryController@update`
+         */
+        put: operations["put_api_v2_term_summary_term_summary_"];
+        post?: never;
+        /**
+         * 删除 term-summary/{term_summary}
+         * @description 实现:`TermSummaryController@destroy`
+         */
+        delete: operations["delete_api_v2_term_summary_term_summary_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 term-summary/{term_summary}
+         * @description 实现:`TermSummaryController@update`
+         */
+        patch: operations["patch_api_v2_term_summary_term_summary_"];
+        trace?: never;
+    };
+    "/v2/term-vocabulary": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 term-vocabulary
+         * @description 实现:`TermVocabularyController@index`
+         */
+        get: operations["get_api_v2_term_vocabulary"];
+        put?: never;
+        /**
+         * 新建 term-vocabulary
+         * @description 实现:`TermVocabularyController@store`
+         */
+        post: operations["post_api_v2_term_vocabulary"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/term-vocabulary/{term_vocabulary}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 term-vocabulary/{term_vocabulary}
+         * @description 实现:`TermVocabularyController@show`
+         */
+        get: operations["get_api_v2_term_vocabulary_term_vocabulary_"];
+        /**
+         * 更新 term-vocabulary/{term_vocabulary}
+         * @description 实现:`TermVocabularyController@update`
+         */
+        put: operations["put_api_v2_term_vocabulary_term_vocabulary_"];
+        post?: never;
+        /**
+         * 删除 term-vocabulary/{term_vocabulary}
+         * @description 实现:`TermVocabularyController@destroy`
+         */
+        delete: operations["delete_api_v2_term_vocabulary_term_vocabulary_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 term-vocabulary/{term_vocabulary}
+         * @description 实现:`TermVocabularyController@update`
+         */
+        patch: operations["patch_api_v2_term_vocabulary_term_vocabulary_"];
+        trace?: never;
+    };
+    "/v2/terms": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出术语(dhamma term)
+         * @description 按 view 指定的口径返回术语列表。studio、channel、user 三个口径需要登录;
+         *     studio 要求 name 指向的 studio 属于当前用户,否则 403;channel 要求当前用户是
+         *     channel owner 或协作者(ShareApi 权限值非 0),否则 403。
+         *     create-by-channel、show、hot-meaning 三个口径直接返回各自的数据结构,
+         *     不走后面的搜索/排序/分页;其余口径统一返回 {rows, count}。
+         *     hot-meaning 结果会按 config('mint.cache.expire') 缓存在 term/hot_meaning 键下。
+         *     未指定 view(或给了无法识别的值)时没有任何基础查询,会直接报错,调用方必须传 view。
+         *
+         *     实现:`DhammaTermController@index`
+         */
+        get: operations["get_api_v2_terms"];
+        put?: never;
+        /**
+         * 新建术语
+         * @description 需要登录。传了 channel 则建 channel 级术语,owner 取该 channel 所属 studio、
+         *     language 取该 channel 的语言(请求里的 language 被覆盖),并要求当前身份对该
+         *     channel 有编辑权(owner / 协作者 / channel access token),否则 403。
+         *     不传 channel 则建 studio 级术语,只允许 studio 本人创建(studioId 必须等于当前
+         *     用户 uid,否则 403);AI 模型身份一律禁止(403),因为 access token 只能代持
+         *     channel 级权限。
+         *     唯一性:channel 级按 channel+word+tag 查重,studio 级按 owner+word+tag+language
+         *     且 channal 为空查重;重复时返回 'word existed',HTTP 状态仍是 200。
+         *     写入成功后清除该词的 term 缓存并重建 OpenSearch 索引(索引失败只记日志)。
+         *
+         *     实现:`DhammaTermController@store`
+         */
+        post: operations["post_api_v2_terms"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/terms-export": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 terms-export
+         * @description 实现:`TermExportController@index`
+         */
+        get: operations["get_api_v2_terms_export"];
+        put?: never;
+        /**
+         * 新建 terms-export
+         * @description 实现:`TermExportController@store`
+         */
+        post: operations["post_api_v2_terms_export"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/terms-export/{terms_export}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 terms-export/{terms_export}
+         * @description 实现:`TermExportController@show`
+         */
+        get: operations["get_api_v2_terms_export_terms_export_"];
+        /**
+         * 更新 terms-export/{terms_export}
+         * @description 实现:`TermExportController@update`
+         */
+        put: operations["put_api_v2_terms_export_terms_export_"];
+        post?: never;
+        /**
+         * 删除 terms-export/{terms_export}
+         * @description 实现:`TermExportController@destroy`
+         */
+        delete: operations["delete_api_v2_terms_export_terms_export_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 terms-export/{terms_export}
+         * @description 实现:`TermExportController@update`
+         */
+        patch: operations["patch_api_v2_terms_export_terms_export_"];
+        trace?: never;
+    };
+    "/v2/terms-import": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * import terms-import
+         * @description 实现:`TermExportController@import`
+         */
+        get: operations["get_api_v2_terms_import"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/terms/{term}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 查询单条术语
+         * @description 按 guid(不是自增 id)查找,公开接口,不需要登录。查不到返回错误 '没有查询到数据'。
+         *
+         *     实现:`DhammaTermController@show`
+         */
+        get: operations["get_api_v2_terms_term_"];
+        /**
+         * 修改术语
+         * @description 需要登录(未登录 401),按主键 id 查找,不存在返回 '404'。
+         *     权限:studio 级术语(channal 为空)只有 owner 本人能改,AI 模型一律 403;
+         *     channel 级术语要求对该 channel 有编辑权(owner / 协作者 / access token),否则 403。
+         *     增量更新——只有请求里出现的字段才会被写入,未提交的字段保持原值;
+         *     提交 word 时会同步重算 word_en。create_time 不变,只刷新 modify_time。
+         *     保存后清除该词的 term 缓存并重建 OpenSearch 索引(索引失败只记日志)。
+         *
+         *     实现:`DhammaTermController@update`
+         */
+        put: operations["put_api_v2_terms_term_"];
+        post?: never;
+        /**
+         * 批量删除术语
+         * @description 需要登录。一次可以删除多条,返回实际删除的条数;无权限的条目被跳过而不报错。
+         *     传了 uuid 参数时,id 按数组处理:owner 本人可删,非 owner 且术语属于某个 channel 时
+         *     需要该 channel 的协作权限达到 20(编辑)才可删,studio 级术语非 owner 一律跳过。
+         *     未传 uuid 时,id 按 JSON 字符串数组处理,且只能删除 owner 是当前用户的术语。
+         *     每删一条都会清除该词对应的 term 缓存。
+         *
+         *     实现:`DhammaTermController@destroy`
+         */
+        delete: operations["delete_api_v2_terms_term_"];
+        options?: never;
+        head?: never;
+        /**
+         * 修改术语
+         * @description 需要登录(未登录 401),按主键 id 查找,不存在返回 '404'。
+         *     权限:studio 级术语(channal 为空)只有 owner 本人能改,AI 模型一律 403;
+         *     channel 级术语要求对该 channel 有编辑权(owner / 协作者 / access token),否则 403。
+         *     增量更新——只有请求里出现的字段才会被写入,未提交的字段保持原值;
+         *     提交 word 时会同步重算 word_en。create_time 不变,只刷新 modify_time。
+         *     保存后清除该词的 term 缓存并重建 OpenSearch 索引(索引失败只记日志)。
+         *
+         *     实现:`DhammaTermController@update`
+         */
+        patch: operations["patch_api_v2_terms_term_"];
+        trace?: never;
+    };
+    "/v2/tipitaka-content": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 tipitaka-content
+         * @description 实现:`TipitakaContentController@index`
+         */
+        get: operations["get_api_v2_tipitaka_content"];
+        put?: never;
+        /**
+         * 新建 tipitaka-content
+         * @description 实现:`TipitakaContentController@store`
+         */
+        post: operations["post_api_v2_tipitaka_content"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/tipitaka-content/{tipitaka_content}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 tipitaka-content/{tipitaka_content}
+         * @description 实现:`TipitakaContentController@show`
+         */
+        get: operations["get_api_v2_tipitaka_content_tipitaka_content_"];
+        /**
+         * 更新 tipitaka-content/{tipitaka_content}
+         * @description 实现:`TipitakaContentController@update`
+         */
+        put: operations["put_api_v2_tipitaka_content_tipitaka_content_"];
+        post?: never;
+        /**
+         * 删除 tipitaka-content/{tipitaka_content}
+         * @description 实现:`TipitakaContentController@destroy`
+         */
+        delete: operations["delete_api_v2_tipitaka_content_tipitaka_content_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 tipitaka-content/{tipitaka_content}
+         * @description 实现:`TipitakaContentController@update`
+         */
+        patch: operations["patch_api_v2_tipitaka_content_tipitaka_content_"];
+        trace?: never;
+    };
+    "/v2/transfer": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 transfer
+         * @description 实现:`TransferController@index`
+         */
+        get: operations["get_api_v2_transfer"];
+        put?: never;
+        /**
+         * 新建 transfer
+         * @description 实现:`TransferController@store`
+         */
+        post: operations["post_api_v2_transfer"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/transfer/{transfer}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 transfer/{transfer}
+         * @description 实现:`TransferController@show`
+         */
+        get: operations["get_api_v2_transfer_transfer_"];
+        /**
+         * 更新 transfer/{transfer}
+         * @description 实现:`TransferController@update`
+         */
+        put: operations["put_api_v2_transfer_transfer_"];
+        post?: never;
+        /**
+         * 删除 transfer/{transfer}
+         * @description 实现:`TransferController@destroy`
+         */
+        delete: operations["delete_api_v2_transfer_transfer_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 transfer/{transfer}
+         * @description 实现:`TransferController@update`
+         */
+        patch: operations["patch_api_v2_transfer_transfer_"];
+        trace?: never;
+    };
+    "/v2/user": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出用户
+         * @description 按 view 指定的口径返回用户列表,支持按昵称搜索、按角色过滤、分页与排序。
+         *     注意:view 只识别 key 和 all 两个值,传其他值或不传会因为查询对象未初始化而报错。
+         *
+         *     实现:`UserController@index`
+         */
+        get: operations["get_api_v2_user"];
+        put?: never;
+        /**
+         * 新建用户(未实现)
+         * @description 路由已注册 POST /api/v2/user,但方法体为空,不做任何事也不返回内容。
+         *     用户注册走认证相关接口,不走这里。
+         *
+         *     实现:`UserController@store`
+         */
+        post: operations["post_api_v2_user"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/user-milestone": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 user-milestone
+         * @description 实现:`UserMilestoneController@index`
+         */
+        get: operations["get_api_v2_user_milestone"];
+        put?: never;
+        /**
+         * 新建 user-milestone
+         * @description 实现:`UserMilestoneController@store`
+         */
+        post: operations["post_api_v2_user_milestone"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/user-milestone/{user_milestone}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 user-milestone/{user_milestone}
+         * @description 实现:`UserMilestoneController@show`
+         */
+        get: operations["get_api_v2_user_milestone_user_milestone_"];
+        /**
+         * 更新 user-milestone/{user_milestone}
+         * @description 实现:`UserMilestoneController@update`
+         */
+        put: operations["put_api_v2_user_milestone_user_milestone_"];
+        post?: never;
+        /**
+         * 删除 user-milestone/{user_milestone}
+         * @description 实现:`UserMilestoneController@destroy`
+         */
+        delete: operations["delete_api_v2_user_milestone_user_milestone_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 user-milestone/{user_milestone}
+         * @description 实现:`UserMilestoneController@update`
+         */
+        patch: operations["patch_api_v2_user_milestone_user_milestone_"];
+        trace?: never;
+    };
+    "/v2/user-operation-daily": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 user-operation-daily
+         * @description 实现:`UserOperationDailyController@index`
+         */
+        get: operations["get_api_v2_user_operation_daily"];
+        put?: never;
+        /**
+         * 新建 user-operation-daily
+         * @description 实现:`UserOperationDailyController@store`
+         */
+        post: operations["post_api_v2_user_operation_daily"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/user-operation-daily/{user_operation_daily}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 user-operation-daily/{user_operation_daily}
+         * @description 实现:`UserOperationDailyController@show`
+         */
+        get: operations["get_api_v2_user_operation_daily_user_operation_daily_"];
+        /**
+         * 更新 user-operation-daily/{user_operation_daily}
+         * @description 实现:`UserOperationDailyController@update`
+         */
+        put: operations["put_api_v2_user_operation_daily_user_operation_daily_"];
+        post?: never;
+        /**
+         * 删除 user-operation-daily/{user_operation_daily}
+         * @description 实现:`UserOperationDailyController@destroy`
+         */
+        delete: operations["delete_api_v2_user_operation_daily_user_operation_daily_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 user-operation-daily/{user_operation_daily}
+         * @description 实现:`UserOperationDailyController@update`
+         */
+        patch: operations["patch_api_v2_user_operation_daily_user_operation_daily_"];
+        trace?: never;
+    };
+    "/v2/user-statistic": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 user-statistic
+         * @description 实现:`UserStatisticController@index`
+         */
+        get: operations["get_api_v2_user_statistic"];
+        put?: never;
+        /**
+         * 新建 user-statistic
+         * @description 实现:`UserStatisticController@store`
+         */
+        post: operations["post_api_v2_user_statistic"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/user-statistic/{user_statistic}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 user-statistic/{user_statistic}
+         * @description 实现:`UserStatisticController@show`
+         */
+        get: operations["get_api_v2_user_statistic_user_statistic_"];
+        /**
+         * 更新 user-statistic/{user_statistic}
+         * @description 实现:`UserStatisticController@update`
+         */
+        put: operations["put_api_v2_user_statistic_user_statistic_"];
+        post?: never;
+        /**
+         * 删除 user-statistic/{user_statistic}
+         * @description 实现:`UserStatisticController@destroy`
+         */
+        delete: operations["delete_api_v2_user_statistic_user_statistic_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 user-statistic/{user_statistic}
+         * @description 实现:`UserStatisticController@update`
+         */
+        patch: operations["patch_api_v2_user_statistic_user_statistic_"];
+        trace?: never;
+    };
+    "/v2/user/{user}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 查看单个用户
+         * @description 按 userid 查询用户资料并返回(id、用户名、昵称、邮箱、角色、头像等)。
+         *     方法内没有任何鉴权,任何人都可以读取;查不到用户时会以空资源返回。
+         *
+         *     实现:`UserController@show`
+         */
+        get: operations["get_api_v2_user_user_"];
+        /**
+         * 更新用户资料或角色
+         * @description 两种互斥的用法:请求体里带 roles 时只更新角色(整体覆盖,以 JSON 存入 role 字段);
+         *     不带 roles 时更新昵称、头像、邮箱三个字段(未传的会被置空)。
+         *     方法内没有任何鉴权,也没有校验,调用方需自行保证权限;userid 不存在时会报错。
+         *
+         *     实现:`UserController@update`
+         */
+        put: operations["put_api_v2_user_user_"];
+        post?: never;
+        /**
+         * 删除用户(未实现)
+         * @description 路由已注册 DELETE /api/v2/user/{user},但方法体为空,不会删除任何数据也不返回内容。
+         *
+         *     实现:`UserController@destroy`
+         */
+        delete: operations["delete_api_v2_user_user_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新用户资料或角色
+         * @description 两种互斥的用法:请求体里带 roles 时只更新角色(整体覆盖,以 JSON 存入 role 字段);
+         *     不带 roles 时更新昵称、头像、邮箱三个字段(未传的会被置空)。
+         *     方法内没有任何鉴权,也没有校验,调用方需自行保证权限;userid 不存在时会报错。
+         *
+         *     实现:`UserController@update`
+         */
+        patch: operations["patch_api_v2_user_user_"];
+        trace?: never;
+    };
+    "/v2/userdict": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出用户词典条目
+         * @description 按 view 指定的口径返回 user_dict 记录,支持按单词、词根、词典过滤,以及分页与排序。
+         *     需要登录的口径:all、studio;studio 口径还要求 name 指定的 studio 属于当前用户,否则返回 auth.failed。
+         *     community 口径只返回 status>5 且来源为 _USER_WBW_/_USER_DICT_ 的社区公开数据。
+         *     返回 rows 与 count(过滤后总数)。
+         *
+         *     实现:`UserDictController@index`
+         */
+        get: operations["get_api_v2_userdict"];
+        put?: never;
+        /**
+         * 批量新增/更新用户词典条目
+         * @description 需要登录。data 是 JSON 字符串,解码后逐条处理:以 creator_id + word 以及请求中给出的
+         *     type/grammar/parent/mean/factors 组合判重,不存在则插入(自动生成雪花 id、按 view 写入 source、
+         *     记录 create_time 与 creator_id),已存在则只更新 note 与 confidence。
+         *     新增且 status>5 时会同步刷新系统汇总词典 _SYS_USER_WBW_;每次新增都会刷新该单词的 Redis 缓存 dict/user。
+         *     返回 [新增条数, 汇总表更新结果]。
+         *
+         *     实现:`UserDictController@store`
+         */
+        post: operations["post_api_v2_userdict"];
+        /**
+         * 批量删除用户词典记录(旧接口)
+         * @description 不走 AuthService,凭据取自 cookie 中的 user_id,只删除该用户创建的记录。
+         *     每删一条都会同步刷新 _SYS_USER_WBW_ 汇总与该单词的 Redis 缓存 dict/user。
+         *     返回 deleted(实际删除条数)。
+         *
+         *     实现:`UserDictController@delete`
+         */
+        delete: operations["delete_api_v2_userdict"];
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/userdict/{userdict}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 查询单条用户词典记录
+         * @description 按主键查找,不做登录与权限校验;查不到返回「没有查询到数据」。
+         *
+         *     实现:`UserDictController@show`
+         */
+        get: operations["get_api_v2_userdict_userdict_"];
+        /**
+         * 更新单条用户词典记录
+         * @description 把请求体中的全部字段直接写入该记录(未做字段白名单与权限校验)。
+         *     更新成功后同步刷新系统汇总词典 _SYS_USER_WBW_ 与该单词的 Redis 缓存 dict/user。
+         *     没有记录被更新时返回「没有查询到数据」。
+         *
+         *     实现:`UserDictController@update`
+         */
+        put: operations["put_api_v2_userdict_userdict_"];
+        post?: never;
+        /**
+         * 删除用户词典记录(支持批量)
+         * @description 需要登录,未登录返回 403。传了查询参数 id(JSON 数组)时走批量分支,逐条只删除 creator_id
+         *     等于当前用户的记录,返回 [实际删除条数, 汇总表更新结果];否则删除路径参数指定的单条记录,
+         *     非本人创建返回 auth.failed。两种分支都会同步刷新 _SYS_USER_WBW_ 汇总与 Redis 缓存 dict/user。
+         *
+         *     实现:`UserDictController@destroy`
+         */
+        delete: operations["delete_api_v2_userdict_userdict_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新单条用户词典记录
+         * @description 把请求体中的全部字段直接写入该记录(未做字段白名单与权限校验)。
+         *     更新成功后同步刷新系统汇总词典 _SYS_USER_WBW_ 与该单词的 Redis 缓存 dict/user。
+         *     没有记录被更新时返回「没有查询到数据」。
+         *
+         *     实现:`UserDictController@update`
+         */
+        patch: operations["patch_api_v2_userdict_userdict_"];
+        trace?: never;
+    };
+    "/v2/view": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 view
+         * @description 实现:`ViewController@index`
+         */
+        get: operations["get_api_v2_view"];
+        put?: never;
+        /**
+         * 新建 view
+         * @description 实现:`ViewController@store`
+         */
+        post: operations["post_api_v2_view"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/view/{view}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 view/{view}
+         * @description 实现:`ViewController@show`
+         */
+        get: operations["get_api_v2_view_view_"];
+        /**
+         * 更新 view/{view}
+         * @description 实现:`ViewController@update`
+         */
+        put: operations["put_api_v2_view_view_"];
+        post?: never;
+        /**
+         * 删除 view/{view}
+         * @description 实现:`ViewController@destroy`
+         */
+        delete: operations["delete_api_v2_view_view_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 view/{view}
+         * @description 实现:`ViewController@update`
+         */
+        patch: operations["patch_api_v2_view_view_"];
+        trace?: never;
+    };
+    "/v2/vocabulary": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 vocabulary
+         * @description 实现:`VocabularyController@index`
+         */
+        get: operations["get_api_v2_vocabulary"];
+        put?: never;
+        /**
+         * 新建 vocabulary
+         * @description 实现:`VocabularyController@store`
+         */
+        post: operations["post_api_v2_vocabulary"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/vocabulary/{vocabulary}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 vocabulary/{vocabulary}
+         * @description 实现:`VocabularyController@show`
+         */
+        get: operations["get_api_v2_vocabulary_vocabulary_"];
+        /**
+         * 更新 vocabulary/{vocabulary}
+         * @description 实现:`VocabularyController@update`
+         */
+        put: operations["put_api_v2_vocabulary_vocabulary_"];
+        post?: never;
+        /**
+         * 删除 vocabulary/{vocabulary}
+         * @description 实现:`VocabularyController@destroy`
+         */
+        delete: operations["delete_api_v2_vocabulary_vocabulary_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 vocabulary/{vocabulary}
+         * @description 实现:`VocabularyController@update`
+         */
+        patch: operations["patch_api_v2_vocabulary_vocabulary_"];
+        trace?: never;
+    };
+    "/v2/wbw": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 wbw
+         * @description 实现:`WbwController@index`
+         */
+        get: operations["get_api_v2_wbw"];
+        put?: never;
+        /**
+         * 新建多个
+         * @description 如果存在,修改
+         *
+         *     实现:`WbwController@store`
+         */
+        post: operations["post_api_v2_wbw"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/wbw-sentence": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 wbw-sentence
+         * @description 实现:`WbwSentenceController@index`
+         */
+        get: operations["get_api_v2_wbw_sentence"];
+        put?: never;
+        /**
+         * 新建 wbw-sentence
+         * @description 实现:`WbwSentenceController@store`
+         */
+        post: operations["post_api_v2_wbw_sentence"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/wbw-sentence/{wbw_sentence}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 wbw-sentence/{wbw_sentence}
+         * @description 实现:`WbwSentenceController@show`
+         */
+        get: operations["get_api_v2_wbw_sentence_wbw_sentence_"];
+        /**
+         * 更新 wbw-sentence/{wbw_sentence}
+         * @description 实现:`WbwSentenceController@update`
+         */
+        put: operations["put_api_v2_wbw_sentence_wbw_sentence_"];
+        post?: never;
+        /**
+         * 删除 wbw-sentence/{wbw_sentence}
+         * @description 实现:`WbwSentenceController@destroy`
+         */
+        delete: operations["delete_api_v2_wbw_sentence_wbw_sentence_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 wbw-sentence/{wbw_sentence}
+         * @description 实现:`WbwSentenceController@update`
+         */
+        patch: operations["patch_api_v2_wbw_sentence_wbw_sentence_"];
+        trace?: never;
+    };
+    "/v2/wbw/{wbw}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 wbw/{wbw}
+         * @description 实现:`WbwController@show`
+         */
+        get: operations["get_api_v2_wbw_wbw_"];
+        /**
+         * 更新 wbw/{wbw}
+         * @description 实现:`WbwController@update`
+         */
+        put: operations["put_api_v2_wbw_wbw_"];
+        post?: never;
+        /**
+         * 删除 wbw/{wbw}
+         * @description 实现:`WbwController@destroy`
+         */
+        delete: operations["delete_api_v2_wbw_wbw_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 wbw/{wbw}
+         * @description 实现:`WbwController@update`
+         */
+        patch: operations["patch_api_v2_wbw_wbw_"];
+        trace?: never;
+    };
+    "/v2/wbw_templates": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 wbw_templates
+         * @description 实现:`WbwTemplateController@index`
+         */
+        get: operations["get_api_v2_wbw_templates"];
+        put?: never;
+        /**
+         * 新建 wbw_templates
+         * @description 实现:`WbwTemplateController@store`
+         */
+        post: operations["post_api_v2_wbw_templates"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/wbw_templates/{wbw_template}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 wbw_templates/{wbw_template}
+         * @description 实现:`WbwTemplateController@show`
+         */
+        get: operations["get_api_v2_wbw_templates_wbw_template_"];
+        /**
+         * 更新 wbw_templates/{wbw_template}
+         * @description 实现:`WbwTemplateController@update`
+         */
+        put: operations["put_api_v2_wbw_templates_wbw_template_"];
+        post?: never;
+        /**
+         * 删除 wbw_templates/{wbw_template}
+         * @description 实现:`WbwTemplateController@destroy`
+         */
+        delete: operations["delete_api_v2_wbw_templates_wbw_template_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 wbw_templates/{wbw_template}
+         * @description 实现:`WbwTemplateController@update`
+         */
+        patch: operations["patch_api_v2_wbw_templates_wbw_template_"];
+        trace?: never;
+    };
+    "/v2/wbwlookup": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 wbwlookup
+         * @description 实现:`WbwLookupController@index`
+         */
+        get: operations["get_api_v2_wbwlookup"];
+        put?: never;
+        /**
+         * 自动查词
+         * @description 实现:`WbwLookupController@store`
+         */
+        post: operations["post_api_v2_wbwlookup"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/wbwlookup/{wbwlookup}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 自动查词
+         * @description 实现:`WbwLookupController@show`
+         */
+        get: operations["get_api_v2_wbwlookup_wbwlookup_"];
+        /**
+         * 更新 wbwlookup/{wbwlookup}
+         * @description 实现:`WbwLookupController@update`
+         */
+        put: operations["put_api_v2_wbwlookup_wbwlookup_"];
+        post?: never;
+        /**
+         * 删除 wbwlookup/{wbwlookup}
+         * @description 实现:`WbwLookupController@destroy`
+         */
+        delete: operations["delete_api_v2_wbwlookup_wbwlookup_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 wbwlookup/{wbwlookup}
+         * @description 实现:`WbwLookupController@update`
+         */
+        patch: operations["patch_api_v2_wbwlookup_wbwlookup_"];
+        trace?: never;
+    };
+    "/v2/webhook": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 webhook
+         * @description 实现:`WebHookController@index`
+         */
+        get: operations["get_api_v2_webhook"];
+        put?: never;
+        /**
+         * 新建 webhook
+         * @description 实现:`WebHookController@store`
+         */
+        post: operations["post_api_v2_webhook"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v2/webhook/{webhook}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 webhook/{webhook}
+         * @description 实现:`WebHookController@show`
+         */
+        get: operations["get_api_v2_webhook_webhook_"];
+        /**
+         * 更新 webhook/{webhook}
+         * @description 实现:`WebHookController@update`
+         */
+        put: operations["put_api_v2_webhook_webhook_"];
+        post?: never;
+        /**
+         * 删除 webhook/{webhook}
+         * @description 实现:`WebHookController@destroy`
+         */
+        delete: operations["delete_api_v2_webhook_webhook_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 webhook/{webhook}
+         * @description 实现:`WebHookController@update`
+         */
+        patch: operations["patch_api_v2_webhook_webhook_"];
+        trace?: never;
+    };
+    "/v3/progress": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 progress
+         * @description 实现:`ProgressController@index`
+         */
+        get: operations["get_api_v3_progress"];
+        put?: never;
+        /**
+         * 新建 progress
+         * @description 实现:`ProgressController@store`
+         */
+        post: operations["post_api_v3_progress"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v3/progress/{progress}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 progress/{progress}
+         * @description 实现:`ProgressController@show`
+         */
+        get: operations["get_api_v3_progress_progress_"];
+        /**
+         * 更新 progress/{progress}
+         * @description 实现:`ProgressController@update`
+         */
+        put: operations["put_api_v3_progress_progress_"];
+        post?: never;
+        /**
+         * 删除 progress/{progress}
+         * @description 实现:`ProgressController@destroy`
+         */
+        delete: operations["delete_api_v3_progress_progress_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 progress/{progress}
+         * @description 实现:`ProgressController@update`
+         */
+        patch: operations["patch_api_v3_progress_progress_"];
+        trace?: never;
+    };
+    "/v3/search": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 处理搜索请求,支持 fuzzy / exact / semantic / hybrid 四种模式。
+         * @description 接收查询参数并调用 OpenSearchService 执行搜索。
+         *     支持 GET 和 POST 请求
+         *     - q (string): 搜索关键词
+         *     - resource_type (string): 资源类型 (article|term|dictionary|translation|origin_text|nissaya)
+         *     - granularity (string): 文档颗粒度 (book|chapter|sutta|section|paragraph|sentence)
+         *     - language (string): 语言,如 pali, zh-Hans, zh-Hant, en-US, my
+         *     - category (string): 文档分类 (pali|commentary|subcommentary)
+         *     - tags (array): 标签过滤
+         *     - page_refs (array): 页码标记 ["V3.81","M3.58"]
+         *     - related_id (array): 关联 ID,如 ["chapter_93-5","m.n. 38"]
+         *     - author (string): 作者或译者 (metadata.author)
+         *     - channel (string): 来源渠道 (metadata.channel)
+         *     - page (int): 页码,默认 1
+         *     - page_size (int): 每页数量,默认 20,最大 100
+         *     - search_mode (string): fuzzy|exact|semantic|hybrid,默认 fuzzy
+         *
+         *     实现:`SearchPlusController@index`
+         */
+        get: operations["get_api_v3_search"];
+        put?: never;
+        /**
+         * POST 方式调用搜索接口(与 index 方法功能相同)
+         * @description 实现:`SearchPlusController@store`
+         */
+        post: operations["post_api_v3_search"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v3/search-suggest": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 自动建议接口
+         * @description 基于 OpenSearch completion suggester,支持从不同字段获取建议。
+         *     - q (string): 输入的部分文本(必填)
+         *     - fields (string|array): 要查询的字段,可选值:
+         *     - 不传:查询所有字段 (title, content, page_refs)
+         *     - 单个字段:'title' | 'content' | 'page_refs'
+         *     - 多个字段:'title,content' 或 ['title', 'content']
+         *     - language (string): 语言过滤,可选(如:pali, zh, en)
+         *     - limit (int): 每个字段返回的建议数量,默认 10,最大 50
+         *
+         *     实现:`SearchSuggestController@index`
+         */
+        get: operations["get_api_v3_search_suggest"];
+        put?: never;
+        /**
+         * 新建 search-suggest
+         * @description 实现:`SearchSuggestController@store`
+         */
+        post: operations["post_api_v3_search_suggest"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v3/search-suggest/{search_suggest}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 search-suggest/{search_suggest}
+         * @description 实现:`SearchSuggestController@show`
+         */
+        get: operations["get_api_v3_search_suggest_search_suggest_"];
+        /**
+         * 更新 search-suggest/{search_suggest}
+         * @description 实现:`SearchSuggestController@update`
+         */
+        put: operations["put_api_v3_search_suggest_search_suggest_"];
+        post?: never;
+        /**
+         * 删除 search-suggest/{search_suggest}
+         * @description 实现:`SearchSuggestController@destroy`
+         */
+        delete: operations["delete_api_v3_search_suggest_search_suggest_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 search-suggest/{search_suggest}
+         * @description 实现:`SearchSuggestController@update`
+         */
+        patch: operations["patch_api_v3_search_suggest_search_suggest_"];
+        trace?: never;
+    };
+    "/v3/search/{search}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 search/{search}
+         * @description 实现:`SearchPlusController@show`
+         */
+        get: operations["get_api_v3_search_search_"];
+        /**
+         * 更新资源
+         * @description 实现:`SearchPlusController@update`
+         */
+        put: operations["put_api_v3_search_search_"];
+        post?: never;
+        /**
+         * 删除资源
+         * @description 实现:`SearchPlusController@destroy`
+         */
+        delete: operations["delete_api_v3_search_search_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新资源
+         * @description 实现:`SearchPlusController@update`
+         */
+        patch: operations["patch_api_v3_search_search_"];
+        trace?: never;
+    };
+    "/v3/tipitaka-read-chapter": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 阅读模式章节内容。输入章节起始 book/para,按 pagesize 分批返回段落。
+         * @description pagesize 两种写法:
+         *     - `20000b` 按字节,累加 pali_texts.lenght 直到超过上限(每页至少一段)
+         *     - `10p`    按段落数
+         *
+         *     实现:`TipitakaReadChapterController@index`
+         */
+        get: operations["get_api_v3_tipitaka_read_chapter"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v3/tipitaka-read-chapter/{tipitaka_read_chapter}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 同 index,id 格式 {book}-{para}
+         * @description 实现:`TipitakaReadChapterController@show`
+         */
+        get: operations["get_api_v3_tipitaka_read_chapter_tipitaka_read_chapter_"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v3/tipitaka-read-para": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 阅读模式段落内容列表。指定 book 段落区间和 channel
+         * @description 实现:`TipitakaReadParaController@index`
+         */
+        get: operations["get_api_v3_tipitaka_read_para"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v3/tipitaka-read-para/{tipitaka_read_para}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 单个段落内容。id 格式 {book}-{para}
+         * @description 实现:`TipitakaReadParaController@show`
+         */
+        get: operations["get_api_v3_tipitaka_read_para_tipitaka_read_para_"];
+        put?: never;
+        post?: never;
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v3/upgrade": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 列出 upgrade
+         * @description 实现:`UpgradeController@index`
+         */
+        get: operations["get_api_v3_upgrade"];
+        put?: never;
+        /**
+         * 新建 upgrade
+         * @description 实现:`UpgradeController@store`
+         */
+        post: operations["post_api_v3_upgrade"];
+        delete?: never;
+        options?: never;
+        head?: never;
+        patch?: never;
+        trace?: never;
+    };
+    "/v3/upgrade/{upgrade}": {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        /**
+         * 获取单个 upgrade/{upgrade}
+         * @description 实现:`UpgradeController@show`
+         */
+        get: operations["get_api_v3_upgrade_upgrade_"];
+        /**
+         * 更新 upgrade/{upgrade}
+         * @description 实现:`UpgradeController@update`
+         */
+        put: operations["put_api_v3_upgrade_upgrade_"];
+        post?: never;
+        /**
+         * 删除 upgrade/{upgrade}
+         * @description 实现:`UpgradeController@destroy`
+         */
+        delete: operations["delete_api_v3_upgrade_upgrade_"];
+        options?: never;
+        head?: never;
+        /**
+         * 更新 upgrade/{upgrade}
+         * @description 实现:`UpgradeController@update`
+         */
+        patch: operations["patch_api_v3_upgrade_upgrade_"];
+        trace?: never;
+    };
+}
+export type webhooks = Record<string, never>;
+export interface components {
+    schemas: {
+        Envelope: {
+            ok?: boolean;
+            message?: string;
+            /** @description 业务数据,形状随接口而定 */
+            data?: unknown;
+        };
+    };
+    responses: {
+        /** @description 未登录或无权限 */
+        Unauthorized: {
+            headers: {
+                [name: string]: unknown;
+            };
+            content: {
+                "application/json": components["schemas"]["Envelope"];
+            };
+        };
+        /** @description 参数校验失败 */
+        ValidationError: {
+            headers: {
+                [name: string]: unknown;
+            };
+            content: {
+                "application/json": {
+                    message?: string;
+                    errors?: {
+                        [key: string]: string[];
+                    };
+                };
+            };
+        };
+    };
+    parameters: never;
+    requestBodies: never;
+    headers: never;
+    pathItems: never;
+}
+export type $defs = Record<string, never>;
+export interface operations {
+    get_api_api_sentence_progress_daily_image: {
+        parameters: {
+            query?: {
+                view?: string;
+                type?: string;
+                channel?: string;
+                from?: string;
+                to?: string;
+                book?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_api_sentence_progress_image: {
+        parameters: {
+            query?: {
+                view?: "percent" | "strlen" | "page";
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_ops_update_pali_synonyms_version_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                version: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_access_token: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_access_token: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    payload?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_access_token_access_token_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                access_token: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_access_token_access_token_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                access_token: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_access_token_access_token_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                access_token: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_access_token_access_token_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                access_token: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_ai_assistant: {
+        parameters: {
+            query?: {
+                keyword?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                userName?: string;
+                                nickName?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_ai_assistant: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_ai_assistant_ai_assistant_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                ai_assistant: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_ai_assistant_ai_assistant_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                ai_assistant: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_ai_assistant_ai_assistant_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                ai_assistant: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_ai_assistant_ai_assistant_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                ai_assistant: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_ai_model: {
+        parameters: {
+            query?: {
+                view?: "all" | "studio" | "usable" | "chat";
+                name?: string;
+                user_id?: string;
+                keyword?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                uid?: string;
+                                name?: string;
+                                description?: string;
+                                url?: string;
+                                model?: string;
+                                privacy?: string;
+                                owner_id?: number;
+                                editor_id?: number;
+                                created_at?: string;
+                                updated_at?: string;
+                                user?: string;
+                                key?: string;
+                                system_prompt?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_ai_model: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    studio_name?: string;
+                    name?: string;
+                    /** @default private */
+                    privacy?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            uid?: string;
+                            name?: string;
+                            description?: string;
+                            url?: string;
+                            model?: string;
+                            privacy?: string;
+                            owner_id?: number;
+                            editor_id?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            user?: string;
+                            key?: string;
+                            system_prompt?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_ai_model_token_ai_model_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                ai_model: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_ai_model_token_ai_model_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                ai_model: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_ai_model_ai_model_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                ai_model: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            uid?: string;
+                            name?: string;
+                            description?: string;
+                            url?: string;
+                            model?: string;
+                            privacy?: string;
+                            owner_id?: number;
+                            editor_id?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            user?: string;
+                            key?: string;
+                            system_prompt?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_ai_model_ai_model_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                ai_model: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    name?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            uid?: string;
+                            name?: string;
+                            description?: string;
+                            url?: string;
+                            model?: string;
+                            privacy?: string;
+                            owner_id?: number;
+                            editor_id?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            user?: string;
+                            key?: string;
+                            system_prompt?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_ai_model_ai_model_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                ai_model: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_ai_model_ai_model_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                ai_model: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    name?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            uid?: string;
+                            name?: string;
+                            description?: string;
+                            url?: string;
+                            model?: string;
+                            privacy?: string;
+                            owner_id?: number;
+                            editor_id?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            user?: string;
+                            key?: string;
+                            system_prompt?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_ai_translate: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_ai_translate: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    origin?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_ai_translate_ai_translate_: {
+        parameters: {
+            query?: {
+                engin?: string;
+            };
+            header?: never;
+            path: {
+                ai_translate: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_ai_translate_ai_translate_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                ai_translate: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_ai_translate_ai_translate_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                ai_translate: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_ai_translate_ai_translate_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                ai_translate: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_anthology: {
+        parameters: {
+            query?: {
+                view?: string;
+                studio?: string;
+                search?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                uid?: string;
+                                title?: string;
+                                subtitle?: string;
+                                summary?: string;
+                                studio?: string;
+                                childrenNumber?: string;
+                                status?: number;
+                                lang?: string;
+                                created_at?: string;
+                                updated_at?: string;
+                                default_channel?: string;
+                                article_list?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_anthology: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    studio?: string;
+                    title?: string;
+                    lang?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            uid?: string;
+                            title?: string;
+                            subtitle?: string;
+                            summary?: string;
+                            studio?: string;
+                            childrenNumber?: string;
+                            status?: number;
+                            lang?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            default_channel?: string;
+                            article_list?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_anthology_my_number: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_anthology_anthology_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                anthology: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            uid?: string;
+                            title?: string;
+                            subtitle?: string;
+                            summary?: string;
+                            studio?: string;
+                            childrenNumber?: string;
+                            status?: number;
+                            lang?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            default_channel?: string;
+                            article_list?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_anthology_anthology_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                anthology: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    title?: string;
+                    subtitle?: string;
+                    summary?: string;
+                    lang?: string;
+                    status?: string;
+                    default_channel?: string;
+                    aritcle_list?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            uid?: string;
+                            title?: string;
+                            subtitle?: string;
+                            summary?: string;
+                            studio?: string;
+                            childrenNumber?: string;
+                            status?: number;
+                            lang?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            default_channel?: string;
+                            article_list?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_anthology_anthology_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                anthology: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_anthology_anthology_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                anthology: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    title?: string;
+                    subtitle?: string;
+                    summary?: string;
+                    lang?: string;
+                    status?: string;
+                    default_channel?: string;
+                    aritcle_list?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            uid?: string;
+                            title?: string;
+                            subtitle?: string;
+                            summary?: string;
+                            studio?: string;
+                            childrenNumber?: string;
+                            status?: number;
+                            lang?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            default_channel?: string;
+                            article_list?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_api: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_api: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_api_api_: {
+        parameters: {
+            query?: {
+                item?: string;
+            };
+            header?: never;
+            path: {
+                api: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_api_api_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                api: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @default all */
+                    api?: string;
+                    item?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_api_api_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                api: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_api_api_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                api: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @default all */
+                    api?: string;
+                    item?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_article: {
+        parameters: {
+            query: {
+                /**
+                 * @description 是否返回文章正文。传 true 时结果附带 content 与 content_type
+                 * @example true
+                 */
+                content?: string;
+                /** @description 查询口径。template=按 studio_name 取该 studio 的全部文章(模版库);studio=取某 studio 内的文章,需要登录;public=只取已公开(status=30)的文章 */
+                view: "template" | "studio" | "public";
+                /** @description view=template 时使用,指定 studio 的名称 */
+                studio_name?: string;
+                /** @description view=studio 时使用,指定 studio 的名称,必须与当前登录用户一致 */
+                name?: string;
+                /** @description view=studio 时的二级口径:my=我创建的(owner 为该 studio),其余值=协作的(别人共享给我的,res_type=3) */
+                view2?: string;
+                /** @description view=studio 时按文集过滤。all=不过滤;none=不属于我任何文集的文章;其余值按文集 uid 过滤 */
+                anthology?: "all" | "none";
+                /** @description 按标题模糊搜索(title like %search%) */
+                search?: string;
+                /** @description 按副标题过滤(subtitle like,需自行带通配符) */
+                subtitle?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "asc" | "desc";
+                /** @description 分页起始位置 */
+                offset?: number;
+                /** @description 每页条数 */
+                limit?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                uid?: string;
+                                title?: string;
+                                subtitle?: string;
+                                summary?: string;
+                                studio?: string;
+                                editor?: string;
+                                status?: number;
+                                lang?: string;
+                                parent_uid?: string;
+                                created_at?: string;
+                                updated_at?: string;
+                                format?: string;
+                                key?: string;
+                                level?: number;
+                                mode?: string;
+                                footnote?: string;
+                                origin?: string;
+                                paragraph?: string;
+                                role?: string;
+                                anthology_count?: number;
+                                anthology_first?: string;
+                                path?: string;
+                                toc?: string;
+                                title_text?: string;
+                                content?: string;
+                                content_type?: string;
+                                html?: string;
+                                _summary?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_article: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description studio 名称,文章归属的 studio */
+                    studio: string;
+                    /** @description 文集 uid,传入则把新文章加入该文集 */
+                    anthologyId?: string;
+                    /** @description 文章标题,最多 128 字,超出截断 */
+                    title: string;
+                    /** @description 文章语言代码 */
+                    lang: string;
+                    /** @description 公开状态,30 表示公开。不传则用数据库默认值 */
+                    status?: number;
+                    /** @description 父文章 uid,写入 articles.parent */
+                    parentId?: string;
+                    /** @description 文集目录中的挂接点文章 uid,新文章作为它的子节点插入; 不传则作为一级节点(level=1)追加到文集末尾 */
+                    parentNode?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            uid?: string;
+                            title?: string;
+                            subtitle?: string;
+                            summary?: string;
+                            studio?: string;
+                            editor?: string;
+                            status?: number;
+                            lang?: string;
+                            parent_uid?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            format?: string;
+                            key?: string;
+                            level?: number;
+                            mode?: string;
+                            footnote?: string;
+                            origin?: string;
+                            paragraph?: string;
+                            role?: string;
+                            anthology_count?: number;
+                            anthology_first?: string;
+                            path?: string;
+                            toc?: string;
+                            title_text?: string;
+                            content?: string;
+                            content_type?: string;
+                            html?: string;
+                            _summary?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_article_fts: {
+        parameters: {
+            query?: {
+                from?: string;
+                anthology?: string;
+                id?: string;
+                channels?: string;
+                key?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_article_fts: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_article_fts_article_ft_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                article_ft: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_article_fts_article_ft_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                article_ft: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_article_fts_article_ft_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                article_ft: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_article_fts_article_ft_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                article_ft: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_article_map: {
+        parameters: {
+            query?: {
+                view?: "anthology" | "article";
+                id?: string;
+                parent?: string;
+                lazy?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                collect_id?: number;
+                                article_id?: number;
+                                level?: number;
+                                title?: string;
+                                editor?: string;
+                                children?: string;
+                                status?: number;
+                                deleted_at?: string;
+                                created_at?: string;
+                                updated_at?: string;
+                                format?: string;
+                                title_text?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_article_map: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 规则:required */
+                    anthology_id: string;
+                    /** @description 规则:required */
+                    operation: string;
+                    article_id?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_article_map_article_map_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                article_map: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            collect_id?: number;
+                            article_id?: number;
+                            level?: number;
+                            title?: string;
+                            editor?: string;
+                            children?: string;
+                            status?: number;
+                            deleted_at?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            format?: string;
+                            title_text?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_article_map_article_map_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                article_map: string;
+            };
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 规则:required */
+                    operation: string;
+                    data?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_article_map_article_map_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                article_map: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_article_map_article_map_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                article_map: string;
+            };
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 规则:required */
+                    operation: string;
+                    data?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_article_my_number: {
+        parameters: {
+            query: {
+                /** @description studio 名称,必须与当前登录用户一致 */
+                studio: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_article_nav: {
+        parameters: {
+            query?: {
+                type?: "chapter" | "para";
+                id?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_article_nav: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_article_nav_article_nav_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                article_nav: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_article_nav_article_nav_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                article_nav: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_article_nav_article_nav_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                article_nav: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_article_nav_article_nav_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                article_nav: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_article_preview_id_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 文章 uid */
+                id: string;
+            };
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 待预览的正文内容(markdown) */
+                    content: string;
+                    /** @description 所在文集 uid,用于渲染文集路径 */
+                    anthology?: string;
+                    /** @description 渲染所用 channel uid,多个用下划线分隔 */
+                    channel?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            uid?: string;
+                            title?: string;
+                            subtitle?: string;
+                            summary?: string;
+                            studio?: string;
+                            editor?: string;
+                            status?: number;
+                            lang?: string;
+                            parent_uid?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            format?: string;
+                            key?: string;
+                            level?: number;
+                            mode?: string;
+                            footnote?: string;
+                            origin?: string;
+                            paragraph?: string;
+                            role?: string;
+                            anthology_count?: number;
+                            anthology_first?: string;
+                            path?: string;
+                            toc?: string;
+                            title_text?: string;
+                            content?: string;
+                            content_type?: string;
+                            html?: string;
+                            _summary?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_article_progress: {
+        parameters: {
+            query?: {
+                view?: "chapter";
+                book?: string;
+                para?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_article_progress: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_article_progress_article_progress_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                article_progress: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_article_progress_article_progress_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                article_progress: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_article_progress_article_progress_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                article_progress: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_article_progress_article_progress_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                article_progress: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_article_article_: {
+        parameters: {
+            query?: {
+                /** @description 所在文集 uid,用于在返回结果里渲染文集路径(path) */
+                anthology?: string;
+                /** @description 渲染标题所用的 channel uid,多个用下划线分隔;不传则回退到文集的默认 channel */
+                channel?: string;
+            };
+            header?: never;
+            path: {
+                /** @description 文章 uid(路由模型绑定到 Article,主键即 uid) */
+                article: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            uid?: string;
+                            title?: string;
+                            subtitle?: string;
+                            summary?: string;
+                            studio?: string;
+                            editor?: string;
+                            status?: number;
+                            lang?: string;
+                            parent_uid?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            format?: string;
+                            key?: string;
+                            level?: number;
+                            mode?: string;
+                            footnote?: string;
+                            origin?: string;
+                            paragraph?: string;
+                            role?: string;
+                            anthology_count?: number;
+                            anthology_first?: string;
+                            path?: string;
+                            toc?: string;
+                            title_text?: string;
+                            content?: string;
+                            content_type?: string;
+                            html?: string;
+                            _summary?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_article_article_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 文章 uid(路由模型绑定) */
+                article: string;
+            };
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 正文(markdown) */
+                    content: string;
+                    /** @description 是否把正文转换为模版并把原文切句入库,必须是布尔 true 才生效 */
+                    to_tpl?: boolean;
+                    /** @description to_tpl=true 时必填,文集 uid,用于定位/创建书号与 channel */
+                    anthology_id?: string;
+                    /** @description 标题,最多 128 字 */
+                    title: string;
+                    /** @description 副标题,最多 128 字 */
+                    subtitle?: string;
+                    /** @description 摘要,最多 1024 字 */
+                    summary?: string;
+                    /** @description 语言代码 */
+                    lang: string;
+                    /**
+                     * @description 公开状态,30 表示公开
+                     * @default 10
+                     */
+                    status?: number;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            uid?: string;
+                            title?: string;
+                            subtitle?: string;
+                            summary?: string;
+                            studio?: string;
+                            editor?: string;
+                            status?: number;
+                            lang?: string;
+                            parent_uid?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            format?: string;
+                            key?: string;
+                            level?: number;
+                            mode?: string;
+                            footnote?: string;
+                            origin?: string;
+                            paragraph?: string;
+                            role?: string;
+                            anthology_count?: number;
+                            anthology_first?: string;
+                            path?: string;
+                            toc?: string;
+                            title_text?: string;
+                            content?: string;
+                            content_type?: string;
+                            html?: string;
+                            _summary?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_article_article_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 文章 uid(路由模型绑定) */
+                article: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_article_article_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 文章 uid(路由模型绑定) */
+                article: string;
+            };
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 正文(markdown) */
+                    content: string;
+                    /** @description 是否把正文转换为模版并把原文切句入库,必须是布尔 true 才生效 */
+                    to_tpl?: boolean;
+                    /** @description to_tpl=true 时必填,文集 uid,用于定位/创建书号与 channel */
+                    anthology_id?: string;
+                    /** @description 标题,最多 128 字 */
+                    title: string;
+                    /** @description 副标题,最多 128 字 */
+                    subtitle?: string;
+                    /** @description 摘要,最多 1024 字 */
+                    summary?: string;
+                    /** @description 语言代码 */
+                    lang: string;
+                    /**
+                     * @description 公开状态,30 表示公开
+                     * @default 10
+                     */
+                    status?: number;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            uid?: string;
+                            title?: string;
+                            subtitle?: string;
+                            summary?: string;
+                            studio?: string;
+                            editor?: string;
+                            status?: number;
+                            lang?: string;
+                            parent_uid?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            format?: string;
+                            key?: string;
+                            level?: number;
+                            mode?: string;
+                            footnote?: string;
+                            origin?: string;
+                            paragraph?: string;
+                            role?: string;
+                            anthology_count?: number;
+                            anthology_first?: string;
+                            path?: string;
+                            toc?: string;
+                            title_text?: string;
+                            content?: string;
+                            content_type?: string;
+                            html?: string;
+                            _summary?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_attachment: {
+        parameters: {
+            query?: {
+                view?: "studio";
+                studio?: string;
+                search?: string;
+                content_type?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                user_uid?: string;
+                                name?: string;
+                                filename?: string;
+                                title?: string;
+                                size?: string;
+                                content_type?: string;
+                                status?: number;
+                                created_at?: string;
+                                updated_at?: string;
+                                small?: string;
+                                middle?: string;
+                                url?: string;
+                                thumbnail?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_attachment: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 规则:required */
+                    file: string;
+                    id?: string;
+                    type?: string;
+                    studio?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            user_uid?: string;
+                            name?: string;
+                            filename?: string;
+                            title?: string;
+                            size?: string;
+                            content_type?: string;
+                            status?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            small?: string;
+                            middle?: string;
+                            url?: string;
+                            thumbnail?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_attachment_attachment_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                attachment: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            user_uid?: string;
+                            name?: string;
+                            filename?: string;
+                            title?: string;
+                            size?: string;
+                            content_type?: string;
+                            status?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            small?: string;
+                            middle?: string;
+                            url?: string;
+                            thumbnail?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_attachment_attachment_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                attachment: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    title?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            user_uid?: string;
+                            name?: string;
+                            filename?: string;
+                            title?: string;
+                            size?: string;
+                            content_type?: string;
+                            status?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            small?: string;
+                            middle?: string;
+                            url?: string;
+                            thumbnail?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_attachment_attachment_: {
+        parameters: {
+            query?: {
+                name?: string;
+            };
+            header?: never;
+            path: {
+                attachment: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_attachment_attachment_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                attachment: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    title?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            user_uid?: string;
+                            name?: string;
+                            filename?: string;
+                            title?: string;
+                            size?: string;
+                            content_type?: string;
+                            status?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            small?: string;
+                            middle?: string;
+                            url?: string;
+                            thumbnail?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_attachments: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_attachments: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 规则:required */
+                    file: string;
+                    is_tmp?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_attachments_attachment_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                attachment: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_attachments_attachment_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                attachment: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_attachments_attachment_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                attachment: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_attachments_attachment_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                attachment: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_auth_current: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_auth_forgot_password: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_auth_forgot_password: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    email?: string;
+                    lang?: string;
+                    dashboard?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_auth_forgot_password_forgot_password_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                forgot_password: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_auth_forgot_password_forgot_password_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                forgot_password: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_auth_forgot_password_forgot_password_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                forgot_password: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_auth_forgot_password_forgot_password_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                forgot_password: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_auth_reset_password: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_auth_reset_password: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    token?: string;
+                    username?: string;
+                    password?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_auth_reset_password_reset_password_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                reset_password: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_auth_reset_password_reset_password_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                reset_password: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_auth_reset_password_reset_password_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                reset_password: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_auth_reset_password_reset_password_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                reset_password: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_book_title: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_book_title: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_book_title_book_title_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                book_title: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_book_title_book_title_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                book_title: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_book_title_book_title_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                book_title: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_book_title_book_title_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                book_title: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_case: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_case: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_case_case_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                case: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_case_case_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                case: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_case_case_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                case: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_case_case_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                case: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_channel: {
+        parameters: {
+            query: {
+                /** @description view=user-in-chapter 时的典籍 id;传入后会联查该章节的翻译进度 */
+                book?: number;
+                /** @description 查询口径 */
+                view: "public" | "studio" | "studio-all" | "user-edit" | "user-in-chapter" | "system" | "paragraphs" | "id";
+                /** @description studio 名称,view=studio / studio-all 时必填 */
+                name?: string;
+                /** @description view=studio 时的二级口径:my=我的,其余值=协作的 */
+                view2?: string;
+                /** @description view=studio 且 view2 为协作时,按协作者 uid 过滤 */
+                collaborator?: string;
+                /** @description view=user-in-chapter 时的段落号 */
+                para?: string;
+                /** @description view=paragraphs 时的典籍 id */
+                book_id?: number;
+                /** @description view=id 时的 channel uid 列表,逗号分隔 */
+                id?: string;
+                /** @description 联查 progress_chapters 时的段落号,与 book 配合使用 */
+                paragraph?: string;
+                search?: string;
+                /** @description 按 channel 类型过滤 */
+                type?: number;
+                /**
+                 * @description 只返回该时间之后更新的记录,用于离线包增量同步
+                 * @example 2023-09-18T05:39:51.000000Z
+                 */
+                updated_at?: string;
+                /** @description 只返回该时间之后新建的记录 */
+                created_at?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 传入则在每行附带 final 逐句完成情况,依赖 book 与 para */
+                progress?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_channel: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 所属 studio 名称 */
+                    studio: string;
+                    /** @description channel 名称,在同一 studio 内唯一 */
+                    name: string;
+                    /** @description channel 类型 */
+                    type: number;
+                    /**
+                     * @description 译文语言代码
+                     * @example zh-Hans
+                     */
+                    lang: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_channel: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    id?: string;
+                    /** @description channel 名称 */
+                    name?: string;
+                    /** @description channel 类型 */
+                    type?: number;
+                    /** @description 简介 */
+                    summary?: string;
+                    /** @description 译文语言代码 */
+                    lang?: string;
+                    /** @description 状态。30 为全网公开 */
+                    status?: number;
+                    /** @description channel 配置 */
+                    config?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_channel_io: {
+        parameters: {
+            query?: {
+                view?: "public";
+                updated_at?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_channel_io: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_channel_io_channel_io_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                channel_io: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_channel_io_channel_io_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                channel_io: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_channel_io_channel_io_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                channel_io: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_channel_io_channel_io_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                channel_io: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_channel_my_number: {
+        parameters: {
+            query?: {
+                studio?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_channel_name_name_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description channel 名称 */
+                name: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            uid?: string;
+                            name?: string;
+                            summary?: string | null;
+                            type?: string;
+                            studio?: {
+                                id?: string;
+                                nickName?: string;
+                                realName?: string;
+                                studioName?: string;
+                            } | null;
+                            lang?: string;
+                            is_system?: boolean;
+                            status?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            source_type?: string | null;
+                            source_id?: string | null;
+                            /** @description 仅在部分查询口径下返回。 */
+                            progress?: number;
+                            /** @description 仅在部分查询口径下返回。 */
+                            role?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_channel_progress: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    sentence?: string;
+                    owner?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_channel_channel_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description channel uid */
+                channel: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_channel_channel_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description channel uid */
+                channel: string;
+            };
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    id?: string;
+                    /** @description channel 名称 */
+                    name: string;
+                    /** @description channel 类型 */
+                    type: number;
+                    /** @description 简介 */
+                    summary: string;
+                    /** @description 译文语言代码 */
+                    lang: string;
+                    /** @description 状态。30 为全网公开 */
+                    status: number;
+                    /** @description 来源类型,传入才会更新 */
+                    source_type?: string;
+                    /** @description 来源 id,传入才会更新 */
+                    source_id?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_channel_channel_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description channel uid */
+                channel: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_channel_channel_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description channel uid */
+                channel: string;
+            };
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    id?: string;
+                    /** @description channel 名称 */
+                    name: string;
+                    /** @description channel 类型 */
+                    type: number;
+                    /** @description 简介 */
+                    summary: string;
+                    /** @description 译文语言代码 */
+                    lang: string;
+                    /** @description 状态。30 为全网公开 */
+                    status: number;
+                    /** @description 来源类型,传入才会更新 */
+                    source_type?: string;
+                    /** @description 来源 id,传入才会更新 */
+                    source_id?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_chapter: {
+        parameters: {
+            query?: {
+                view?: "toc";
+                book?: string;
+                para?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_chapter: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_chapter_content: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_chapter_content: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_chapter_content_chapter_content_: {
+        parameters: {
+            query?: {
+                channels?: string;
+                mode?: string;
+                from?: string;
+                to?: string;
+            };
+            header?: never;
+            path: {
+                chapter_content: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            book?: string;
+                            paragraph?: string;
+                            pali_title?: string;
+                            level?: number;
+                            title?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_chapter_content_chapter_content_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chapter_content: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_chapter_content_chapter_content_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chapter_content: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_chapter_content_chapter_content_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chapter_content: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_chapter_index: {
+        parameters: {
+            query?: {
+                view?: "public";
+                updated_at?: string;
+                created_at?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_chapter_index: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_chapter_index_chapter_index_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chapter_index: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_chapter_index_chapter_index_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chapter_index: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_chapter_index_chapter_index_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chapter_index: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_chapter_index_chapter_index_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chapter_index: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_chapter_io: {
+        parameters: {
+            query?: {
+                view?: "public";
+                updated_at?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_chapter_io: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_chapter_io_chapter_io_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chapter_io: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_chapter_io_chapter_io_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chapter_io: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_chapter_io_chapter_io_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chapter_io: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_chapter_io_chapter_io_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chapter_io: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_chapter_chapter_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chapter: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_chapter_chapter_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chapter: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_chapter_chapter_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chapter: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_chapter_chapter_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chapter: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_chat_messages: {
+        parameters: {
+            query?: {
+                chat?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                chat_id?: number;
+                                parent_id?: number;
+                                session_id?: number;
+                                role?: string;
+                                content?: string;
+                                model_name?: string;
+                                tool_calls?: string;
+                                tool_call_id?: number;
+                                is_active?: boolean;
+                                created_at?: string;
+                                updated_at?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_chat_messages: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            chat_id?: number;
+                            parent_id?: number;
+                            session_id?: number;
+                            role?: string;
+                            content?: string;
+                            model_name?: string;
+                            tool_calls?: string;
+                            tool_call_id?: number;
+                            is_active?: boolean;
+                            created_at?: string;
+                            updated_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_chat_messages_chat_message_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chat_message: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            chat_id?: number;
+                            parent_id?: number;
+                            session_id?: number;
+                            role?: string;
+                            content?: string;
+                            model_name?: string;
+                            tool_calls?: string;
+                            tool_call_id?: number;
+                            is_active?: boolean;
+                            created_at?: string;
+                            updated_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_chat_messages_chat_message_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chat_message: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_chat_messages_chat_message_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chat_message: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_chat_messages_chat_message_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chat_message: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_chats: {
+        parameters: {
+            query?: {
+                user_id?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                title?: string;
+                                user_id?: number;
+                                created_at?: string;
+                                updated_at?: string;
+                                messages_count?: number;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_chats: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            title?: string;
+                            user_id?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            messages_count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_chats_chat_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chat: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            title?: string;
+                            user_id?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            messages_count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_chats_chat_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chat: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_chats_chat_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chat: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_chats_chat_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                chat: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_command: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_command: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    name?: string;
+                    param?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_command_command_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                command: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_command_command_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                command: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_command_command_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                command: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_command_command_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                command: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_compound: {
+        parameters: {
+            query?: {
+                view?: "only-word";
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_compound: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    index?: string;
+                    words?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_compound_compound_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                compound: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_compound_compound_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                compound: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_compound_compound_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                compound: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_compound_compound_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                compound: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_corpus: {
+        parameters: {
+            query?: {
+                view?: "para";
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_corpus: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_corpus_chapter_id_: {
+        parameters: {
+            query?: {
+                debug?: string;
+                channels?: string;
+                mode?: string;
+                from?: string;
+                to?: string;
+            };
+            header?: never;
+            path: {
+                id: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            book?: string;
+                            paragraph?: string;
+                            pali_title?: string;
+                            level?: number;
+                            title?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_corpus_sent_id_: {
+        parameters: {
+            query?: {
+                channels?: string;
+                mode?: string;
+            };
+            header?: never;
+            path: {
+                id: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_corpus_sentences_type_id_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                type: string;
+                id: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_corpus_corpu_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                corpu: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_corpus_corpu_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                corpu: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_corpus_corpu_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                corpu: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_corpus_corpu_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                corpu: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_course: {
+        parameters: {
+            query?: {
+                view?: "new" | "open" | "close" | "create" | "study" | "teach";
+                studio?: string;
+                search?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                title?: string;
+                                subtitle?: string;
+                                summary?: string;
+                                sign_up_message?: string;
+                                teacher?: string;
+                                course_count?: number;
+                                publicity?: string;
+                                start_at?: string;
+                                end_at?: string;
+                                sign_up_start_at?: string;
+                                sign_up_end_at?: string;
+                                content?: string;
+                                content_type?: string;
+                                cover?: string;
+                                channel_id?: number;
+                                join?: string;
+                                number?: string;
+                                request_exp?: string;
+                                studio?: string;
+                                created_at?: string;
+                                updated_at?: string;
+                                member_count?: number;
+                                members?: string;
+                                my_role?: string;
+                                cover_url?: string;
+                                anthology_id?: number;
+                                anthology_title?: string;
+                                anthology_owner?: string;
+                                channel_name?: string;
+                                channel_owner?: string;
+                                my_status?: string;
+                                my_status_id?: number;
+                                count_progressing?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_course: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    studio?: string;
+                    title?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            title?: string;
+                            subtitle?: string;
+                            summary?: string;
+                            sign_up_message?: string;
+                            teacher?: string;
+                            course_count?: number;
+                            publicity?: string;
+                            start_at?: string;
+                            end_at?: string;
+                            sign_up_start_at?: string;
+                            sign_up_end_at?: string;
+                            content?: string;
+                            content_type?: string;
+                            cover?: string;
+                            channel_id?: number;
+                            join?: string;
+                            number?: string;
+                            request_exp?: string;
+                            studio?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            member_count?: number;
+                            members?: string;
+                            my_role?: string;
+                            cover_url?: string;
+                            anthology_id?: number;
+                            anthology_title?: string;
+                            anthology_owner?: string;
+                            channel_name?: string;
+                            channel_owner?: string;
+                            my_status?: string;
+                            my_status_id?: number;
+                            count_progressing?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_course_curr: {
+        parameters: {
+            query: {
+                /** @description course uid */
+                course_id: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_course_member: {
+        parameters: {
+            query: {
+                /** @description course uid。view=timeline 时也用于权限校验 */
+                id: string;
+                /** @description 权限校验与 timeline 口径使用的 course uid,缺省时回退到 id */
+                course?: string;
+                /** @description 查询口径。course=课程内全部当前成员;timeline=某用户的成员变更时间线 */
+                view: "course" | "timeline";
+                /** @description view=timeline 时必填,要查看时间线的用户 uid */
+                userId?: string;
+                /** @description view=timeline 时的范围:current=只看 course 参数指定的课程,其余值=该用户全部课程 */
+                timeline?: string;
+                /**
+                 * @description 按角色过滤,all 表示不过滤
+                 * @example student
+                 */
+                role?: string;
+                /**
+                 * @description 按状态过滤,逗号分隔可多选
+                 * @example joined,applied
+                 */
+                status?: string;
+                /** @description 按成员昵称模糊搜索 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "asc" | "desc";
+                /** @description 跳过的记录数 */
+                offset?: number;
+                /** @description 返回条数上限 */
+                limit?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                user_id?: number;
+                                course_id?: number;
+                                role?: string;
+                                user?: string;
+                                editor?: string;
+                                status?: number;
+                                channel_id?: number;
+                                created_at?: string;
+                                updated_at?: string;
+                                channel?: string;
+                                course?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_course_member: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 成员用户 uid,仅在 status=invited 时生效 */
+                    user_id: string;
+                    /** @description course uid */
+                    course_id: string;
+                    /**
+                     * @description 成员角色
+                     * @example student
+                     */
+                    role: string;
+                    /**
+                     * @description 成员状态
+                     * @enum {string}
+                     */
+                    status: "joined" | "applied" | "invited";
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            user_id?: number;
+                            course_id?: number;
+                            role?: string;
+                            user?: string;
+                            editor?: string;
+                            status?: number;
+                            channel_id?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            channel?: string;
+                            course?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_course_member_export: {
+        parameters: {
+            query: {
+                /** @description course uid */
+                course_id: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_course_member_course_member_: {
+        parameters: {
+            query?: {
+                /** @description 要查询的用户 uid,缺省为当前登录用户 */
+                user_uid?: string;
+            };
+            header?: never;
+            path: {
+                course_member: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            user_id?: number;
+                            course_id?: number;
+                            role?: string;
+                            user?: string;
+                            editor?: string;
+                            status?: number;
+                            channel_id?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            channel?: string;
+                            course?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_course_member_course_member_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 要更新的 course_member 记录 id */
+                course_member: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @description 该成员在课程中使用的 channel uid,仅本人可改 */
+                    channel_id?: string;
+                    /**
+                     * @description 新的成员状态
+                     * @example joined
+                     */
+                    status?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            user_id?: number;
+                            course_id?: number;
+                            role?: string;
+                            user?: string;
+                            editor?: string;
+                            status?: number;
+                            channel_id?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            channel?: string;
+                            course?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_course_member_course_member_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 要删除的 course_member 记录 id */
+                course_member: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_course_member_course_member_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 要更新的 course_member 记录 id */
+                course_member: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @description 该成员在课程中使用的 channel uid,仅本人可改 */
+                    channel_id?: string;
+                    /**
+                     * @description 新的成员状态
+                     * @example joined
+                     */
+                    status?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            user_id?: number;
+                            course_id?: number;
+                            role?: string;
+                            user?: string;
+                            editor?: string;
+                            status?: number;
+                            channel_id?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            channel?: string;
+                            course?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_course_member_set_channel: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 作业所用的 channel uid */
+                    channel_id: string;
+                    /** @description course uid */
+                    course_id: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            user_id?: number;
+                            course_id?: number;
+                            role?: string;
+                            user?: string;
+                            editor?: string;
+                            status?: number;
+                            channel_id?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            channel?: string;
+                            course?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_course_my_course: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_course_course_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                course: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            title?: string;
+                            subtitle?: string;
+                            summary?: string;
+                            sign_up_message?: string;
+                            teacher?: string;
+                            course_count?: number;
+                            publicity?: string;
+                            start_at?: string;
+                            end_at?: string;
+                            sign_up_start_at?: string;
+                            sign_up_end_at?: string;
+                            content?: string;
+                            content_type?: string;
+                            cover?: string;
+                            channel_id?: number;
+                            join?: string;
+                            number?: string;
+                            request_exp?: string;
+                            studio?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            member_count?: number;
+                            members?: string;
+                            my_role?: string;
+                            cover_url?: string;
+                            anthology_id?: number;
+                            anthology_title?: string;
+                            anthology_owner?: string;
+                            channel_name?: string;
+                            channel_owner?: string;
+                            my_status?: string;
+                            my_status_id?: number;
+                            count_progressing?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_course_course_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                course: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    title?: string;
+                    subtitle?: string;
+                    summary?: string;
+                    number?: string;
+                    cover?: string;
+                    content?: string;
+                    sign_up_message?: string;
+                    teacher_id?: string;
+                    anthology_id?: string;
+                    channel_id?: string;
+                    publicity?: string;
+                    start_at?: string;
+                    end_at?: string;
+                    sign_up_start_at?: string;
+                    sign_up_end_at?: string;
+                    join?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_course_course_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                course: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_course_course_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                course: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    title?: string;
+                    subtitle?: string;
+                    summary?: string;
+                    number?: string;
+                    cover?: string;
+                    content?: string;
+                    sign_up_message?: string;
+                    teacher_id?: string;
+                    anthology_id?: string;
+                    channel_id?: string;
+                    publicity?: string;
+                    start_at?: string;
+                    end_at?: string;
+                    sign_up_start_at?: string;
+                    sign_up_end_at?: string;
+                    join?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_dict: {
+        parameters: {
+            query?: {
+                word?: string;
+                lang?: string;
+                content?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_dict: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_dict_info: {
+        parameters: {
+            query?: {
+                view?: "name";
+                name?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_dict_info: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_dict_info_dict_info_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_info: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_dict_info_dict_info_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_info: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_dict_info_dict_info_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_info: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_dict_info_dict_info_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_info: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_dict_meaning: {
+        parameters: {
+            query?: {
+                word?: string;
+                lang?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_dict_meaning: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_dict_meaning_dict_meaning_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_meaning: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_dict_meaning_dict_meaning_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_meaning: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_dict_meaning_dict_meaning_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_meaning: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_dict_meaning_dict_meaning_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_meaning: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_dict_preference: {
+        parameters: {
+            query?: {
+                keyword?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                word?: string;
+                                count?: number;
+                                parent?: string;
+                                note?: string;
+                                factors?: string;
+                                confidence?: string;
+                                updated_at?: string;
+                                creator_id?: number;
+                                editor?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_dict_preference: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_dict_preference_dict_preference_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_preference: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_dict_preference_dict_preference_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_preference: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            word?: string;
+                            count?: number;
+                            parent?: string;
+                            note?: string;
+                            factors?: string;
+                            confidence?: string;
+                            updated_at?: string;
+                            creator_id?: number;
+                            editor?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_dict_preference_dict_preference_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_preference: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_dict_preference_dict_preference_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_preference: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            word?: string;
+                            count?: number;
+                            parent?: string;
+                            note?: string;
+                            factors?: string;
+                            confidence?: string;
+                            updated_at?: string;
+                            creator_id?: number;
+                            editor?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_dict_statistic: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_dict_statistic: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_dict_statistic_dict_statistic_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_statistic: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_dict_statistic_dict_statistic_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_statistic: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_dict_statistic_dict_statistic_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_statistic: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_dict_statistic_dict_statistic_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_statistic: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_dict_vocabulary: {
+        parameters: {
+            query?: {
+                view?: "dict_name" | "dict_short_name";
+                name?: string;
+                stream?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_dict_vocabulary: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_dict_vocabulary_dict_vocabulary_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_vocabulary: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_dict_vocabulary_dict_vocabulary_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_vocabulary: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_dict_vocabulary_dict_vocabulary_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_vocabulary: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_dict_vocabulary_dict_vocabulary_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict_vocabulary: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_dict_dict_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_dict_dict_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_dict_dict_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_dict_dict_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                dict: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_discussion: {
+        parameters: {
+            query: {
+                /** @description 查询口径。question=按资源查顶级讨论;question-by-topic=按某条讨论所属资源查同资源讨论;answer=查某讨论的回复;res_id=某资源的顶级节点及其直接子节点;topic-by-user=当前用户发表的全部顶级讨论;all=全部顶级讨论 */
+                view: "question" | "question-by-topic" | "answer" | "res_id" | "topic-by-user" | "all";
+                /** @description 资源 uid(question/res_id)、讨论 id(question-by-topic/answer) */
+                id: string;
+                /** @description 状态过滤;res_id 与 topic-by-user 口径支持逗号分隔多选 */
+                status?: "active" | "close";
+                /** @description 讨论类型 */
+                type?: "discussion" | "qa" | "help" | "note";
+                /** @description 资源类型,影响权限判断与学员提问聚合 */
+                res_type?: "sentence" | "wbw" | "article";
+                /** @description 课程 uid,配合 show_student 聚合学员提问 */
+                course?: string;
+                /** @description 是否把学员 channel 上的同位置提问一并返回 */
+                show_student?: "true" | "false";
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "asc" | "desc";
+                /** @description 跳过的记录数 */
+                offset?: number;
+                /** @description 返回条数上限 */
+                limit?: number;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                title?: string;
+                                content?: string;
+                                content_type?: string;
+                                parent?: string;
+                                status?: number;
+                                editor?: string;
+                                res_id?: number;
+                                res_type?: string;
+                                type?: number;
+                                tpl_id?: number;
+                                children_count?: number;
+                                created_at?: string;
+                                updated_at?: string;
+                                pos_start?: string;
+                                pos_end?: string;
+                                quote_exact?: string;
+                                quote_prefix?: string;
+                                quote_suffix?: string;
+                                html?: string;
+                                summary?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_discussion: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 父讨论 id,传入表示这是一条回复 */
+                    parent?: string;
+                    /** @description 关联资源 uid(有 parent 时忽略并继承父节点) */
+                    res_id: string;
+                    /**
+                     * @description 关联资源类型(有 parent 时忽略并继承父节点)
+                     * @enum {string}
+                     */
+                    res_type: "sentence" | "wbw" | "article";
+                    /**
+                     * @description 讨论类型
+                     * @default discussion
+                     * @enum {string}
+                     */
+                    type?: "discussion" | "qa" | "help" | "note";
+                    /** @description 模板 id */
+                    tpl_id?: string;
+                    /** @description 标题(有 parent 时非必填) */
+                    title: string;
+                    /** @description 正文内容 */
+                    content?: string;
+                    /**
+                     * @description 正文格式
+                     * @default markdown
+                     */
+                    content_type?: string;
+                    /** @description 锚点在资源文本中的起始偏移,非负整数 */
+                    pos_start?: number;
+                    /** @description 锚点在资源文本中的结束偏移,非负整数 */
+                    pos_end?: number;
+                    /** @description 锚定的原文片段 */
+                    quote_exact?: string;
+                    /** @description 锚定片段前的上下文,用于重新定位 */
+                    quote_prefix?: string;
+                    /** @description 锚定片段后的上下文,用于重新定位 */
+                    quote_suffix?: string;
+                    /**
+                     * @description 是否推送消息队列通知
+                     * @default true
+                     */
+                    notification?: boolean;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            title?: string;
+                            content?: string;
+                            content_type?: string;
+                            parent?: string;
+                            status?: number;
+                            editor?: string;
+                            res_id?: number;
+                            res_type?: string;
+                            type?: number;
+                            tpl_id?: number;
+                            children_count?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            pos_start?: string;
+                            pos_end?: string;
+                            quote_exact?: string;
+                            quote_prefix?: string;
+                            quote_suffix?: string;
+                            html?: string;
+                            summary?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_discussion_anchor_id_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 讨论 id */
+                id: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_discussion_count: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_discussion_count: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    course_id?: string;
+                    sentences?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            res_id?: number;
+                            res_type?: string;
+                            type?: number;
+                            editor_uid?: string;
+                            wbw?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_discussion_count_discussion_count_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                discussion_count: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            res_id?: number;
+                            res_type?: string;
+                            type?: number;
+                            editor_uid?: string;
+                            wbw?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_discussion_count_discussion_count_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                discussion_count: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_discussion_count_discussion_count_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                discussion_count: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_discussion_count_discussion_count_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                discussion_count: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_discussion_discussion_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 讨论 id */
+                discussion: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            title?: string;
+                            content?: string;
+                            content_type?: string;
+                            parent?: string;
+                            status?: number;
+                            editor?: string;
+                            res_id?: number;
+                            res_type?: string;
+                            type?: number;
+                            tpl_id?: number;
+                            children_count?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            pos_start?: string;
+                            pos_end?: string;
+                            quote_exact?: string;
+                            quote_prefix?: string;
+                            quote_suffix?: string;
+                            html?: string;
+                            summary?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_discussion_discussion_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 讨论 id */
+                discussion: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @description 标题,未提交会被清空 */
+                    title?: string;
+                    /** @description 正文内容,未提交会被清空 */
+                    content?: string;
+                    /**
+                     * @description 状态,未提交会重置为 active
+                     * @default active
+                     * @enum {string}
+                     */
+                    status?: "active" | "close";
+                    /**
+                     * @description 讨论类型,仅在提交时更新
+                     * @enum {string}
+                     */
+                    type?: "discussion" | "qa" | "help" | "note";
+                    /** @description 锚点起始偏移,仅在提交时更新 */
+                    pos_start?: number;
+                    /** @description 锚点结束偏移,仅在提交时更新 */
+                    pos_end?: number;
+                    /** @description 锚定的原文片段,仅在提交时更新 */
+                    quote_exact?: string;
+                    /** @description 锚定片段前的上下文,仅在提交时更新 */
+                    quote_prefix?: string;
+                    /** @description 锚定片段后的上下文,仅在提交时更新 */
+                    quote_suffix?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            title?: string;
+                            content?: string;
+                            content_type?: string;
+                            parent?: string;
+                            status?: number;
+                            editor?: string;
+                            res_id?: number;
+                            res_type?: string;
+                            type?: number;
+                            tpl_id?: number;
+                            children_count?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            pos_start?: string;
+                            pos_end?: string;
+                            quote_exact?: string;
+                            quote_prefix?: string;
+                            quote_suffix?: string;
+                            html?: string;
+                            summary?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_discussion_discussion_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 讨论 id */
+                discussion: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_discussion_discussion_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 讨论 id */
+                discussion: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @description 标题,未提交会被清空 */
+                    title?: string;
+                    /** @description 正文内容,未提交会被清空 */
+                    content?: string;
+                    /**
+                     * @description 状态,未提交会重置为 active
+                     * @default active
+                     * @enum {string}
+                     */
+                    status?: "active" | "close";
+                    /**
+                     * @description 讨论类型,仅在提交时更新
+                     * @enum {string}
+                     */
+                    type?: "discussion" | "qa" | "help" | "note";
+                    /** @description 锚点起始偏移,仅在提交时更新 */
+                    pos_start?: number;
+                    /** @description 锚点结束偏移,仅在提交时更新 */
+                    pos_end?: number;
+                    /** @description 锚定的原文片段,仅在提交时更新 */
+                    quote_exact?: string;
+                    /** @description 锚定片段前的上下文,仅在提交时更新 */
+                    quote_prefix?: string;
+                    /** @description 锚定片段后的上下文,仅在提交时更新 */
+                    quote_suffix?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            title?: string;
+                            content?: string;
+                            content_type?: string;
+                            parent?: string;
+                            status?: number;
+                            editor?: string;
+                            res_id?: number;
+                            res_type?: string;
+                            type?: number;
+                            tpl_id?: number;
+                            children_count?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            pos_start?: string;
+                            pos_end?: string;
+                            quote_exact?: string;
+                            quote_prefix?: string;
+                            quote_suffix?: string;
+                            html?: string;
+                            summary?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_editable_sentence: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_editable_sentence: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_editable_sentence_editable_sentence_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                editable_sentence: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_editable_sentence_editable_sentence_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                editable_sentence: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_editable_sentence_editable_sentence_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                editable_sentence: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_editable_sentence_editable_sentence_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                editable_sentence: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_email_certification: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_email_certification: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    email?: string;
+                    /** @default sign up wikipali */
+                    subject?: string;
+                    lang?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_email_certification_email_certification_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                email_certification: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_email_certification_email_certification_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                email_certification: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_email_certification_email_certification_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                email_certification: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_email_certification_email_certification_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                email_certification: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_exercise: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_exercise: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_exercise_exercise_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                exercise: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_exercise_exercise_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                exercise: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_exercise_exercise_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                exercise: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_exercise_exercise_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                exercise: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_export: {
+        parameters: {
+            query?: {
+                type?: "chapter" | "article";
+                book?: string;
+                par?: string;
+                channel?: string;
+                format?: string;
+                origin?: string;
+                translation?: string;
+                id?: string;
+                anthology?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_export: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_export_export_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                export: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_export_export_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                export: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_export_export_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                export: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_export_export_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                export: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_export_wbw: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    sent?: string;
+                    channel?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_grammar_guide: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_grammar_guide: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_grammar_guide_grammar_guide_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                grammar_guide: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_grammar_guide_grammar_guide_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                grammar_guide: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_grammar_guide_grammar_guide_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                grammar_guide: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_grammar_guide_grammar_guide_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                grammar_guide: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_group: {
+        parameters: {
+            query?: {
+                view?: "studio" | "all";
+                name?: string;
+                view2?: string;
+                search?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                uid?: string;
+                                name?: string;
+                                description?: string;
+                                owner?: string;
+                                studio?: string;
+                                updated_at?: string;
+                                created_at?: string;
+                                role?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_group: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    studio_name?: string;
+                    name?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_group_member: {
+        parameters: {
+            query?: {
+                view?: "group" | "user";
+                id?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                user_id?: number;
+                                group_id?: number;
+                                group?: string;
+                                power?: string;
+                                role?: string;
+                                level?: number;
+                                status?: number;
+                                user?: string;
+                                created_at?: string;
+                                updated_at?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_group_member: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 规则:required */
+                    user_id: string;
+                    /** @description 规则:required */
+                    group_id: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            user_id?: number;
+                            group_id?: number;
+                            group?: string;
+                            power?: string;
+                            role?: string;
+                            level?: number;
+                            status?: number;
+                            user?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_group_member_group_member_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                group_member: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_group_member_group_member_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                group_member: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_group_member_group_member_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                group_member: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_group_member_group_member_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                group_member: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_group_my_number: {
+        parameters: {
+            query?: {
+                studio?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_group_group_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                group: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            uid?: string;
+                            name?: string;
+                            description?: string;
+                            owner?: string;
+                            studio?: string;
+                            updated_at?: string;
+                            created_at?: string;
+                            role?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_group_group_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                group: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    name?: string;
+                    description?: string;
+                    status?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_group_group_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                group: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_group_group_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                group: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    name?: string;
+                    description?: string;
+                    status?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_health_check: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_health_check: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_health_check_health_check_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                health_check: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_health_check_health_check_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                health_check: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_health_check_health_check_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                health_check: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_health_check_health_check_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                health_check: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_heartbeat: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_heartbeat: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_heartbeat_heartbeat_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                heartbeat: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_heartbeat_heartbeat_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                heartbeat: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_heartbeat_heartbeat_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                heartbeat: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_heartbeat_heartbeat_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                heartbeat: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_interactive: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_interactive: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_interactive_interactive_: {
+        parameters: {
+            query?: {
+                res_type?: "article";
+            };
+            header?: never;
+            path: {
+                interactive: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_interactive_interactive_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                interactive: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_interactive_interactive_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                interactive: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_interactive_interactive_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                interactive: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_invite: {
+        parameters: {
+            query?: {
+                view?: "studio" | "all";
+                studio?: string;
+                search?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_invite: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    studio?: string;
+                    email?: string;
+                    /** @default sign up wikipali */
+                    subject?: string;
+                    lang?: string;
+                    dashboard?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_invite_invite_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                invite: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_invite_invite_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                invite: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_invite_invite_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                invite: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_invite_invite_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                invite: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_like: {
+        parameters: {
+            query?: {
+                view?: "count" | "target";
+                target_id?: string;
+                type?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                type?: number;
+                                target_id?: number;
+                                target_type?: string;
+                                context?: string;
+                                updated_at?: string;
+                                created_at?: string;
+                                user?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_like: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    user_id?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_like: {
+        parameters: {
+            query?: {
+                id?: string;
+                target_id?: string;
+                type?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_like_like_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                like: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_like_like_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                like: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_like_like_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                like: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_like_like_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                like: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_milestone: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_milestone: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_milestone_milestone_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                milestone: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_milestone_milestone_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                milestone: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_milestone_milestone_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                milestone: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_milestone_milestone_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                milestone: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_mock_openai_chat_completions: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @default h */
+                    delay?: string;
+                    /** @default h */
+                    error?: string;
+                    /** @default gpt-3.5-turbo */
+                    model?: string;
+                    messages?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_mock_openai_completions: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @default h */
+                    delay?: string;
+                    /** @default h */
+                    error?: string;
+                    /** @default text-davinci-003 */
+                    model?: string;
+                    /** @default  */
+                    prompt?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_mock_openai_models: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_model_log: {
+        parameters: {
+            query?: {
+                view?: "model";
+                id?: string;
+                search?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_model_log: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    model_id?: string;
+                    request_at?: string;
+                    request_headers?: string;
+                    request_data?: string;
+                    response_headers?: string;
+                    response_data?: string;
+                    status?: string;
+                    success?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_model_log_model_log_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                model_log: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_model_log_model_log_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                model_log: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_model_log_model_log_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                model_log: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_model_log_model_log_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                model_log: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_nav_article: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_nav_article: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_nav_article_nav_article_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nav_article: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            collect_id?: number;
+                            article_id?: number;
+                            level?: number;
+                            title?: string;
+                            editor?: string;
+                            children?: string;
+                            status?: number;
+                            deleted_at?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            format?: string;
+                            title_text?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_nav_article_nav_article_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nav_article: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_nav_article_nav_article_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nav_article: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_nav_article_nav_article_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nav_article: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_nav_cs_para: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_nav_cs_para: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_nav_cs_para_nav_cs_para_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nav_cs_para: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            content?: string;
+                            book?: string;
+                            start?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_nav_cs_para_nav_cs_para_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nav_cs_para: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_nav_cs_para_nav_cs_para_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nav_cs_para: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_nav_cs_para_nav_cs_para_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nav_cs_para: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_nav_page: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_nav_page: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_nav_page_nav_page_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nav_page: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_nav_page_nav_page_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nav_page: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_nav_page_nav_page_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nav_page: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_nav_page_nav_page_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nav_page: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_nissaya_card: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_nissaya_card: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_nissaya_card_nissaya_card_: {
+        parameters: {
+            query?: {
+                lang?: string;
+                content_type?: string;
+            };
+            header?: never;
+            path: {
+                nissaya_card: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_nissaya_card_nissaya_card_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nissaya_card: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_nissaya_card_nissaya_card_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nissaya_card: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_nissaya_card_nissaya_card_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nissaya_card: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_nissaya_cover: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_nissaya_cover: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_nissaya_cover_nissaya_cover_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nissaya_cover: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_nissaya_cover_nissaya_cover_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nissaya_cover: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_nissaya_cover_nissaya_cover_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nissaya_cover: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_nissaya_cover_nissaya_cover_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nissaya_cover: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_nissaya_ending: {
+        parameters: {
+            query?: {
+                case?: string;
+                lang?: string;
+                relation?: string;
+                search?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                ending?: string;
+                                lang?: string;
+                                relation?: string;
+                                case?: string;
+                                from?: string;
+                                count?: number;
+                                editor?: string;
+                                created_at?: string;
+                                updated_at?: string;
+                                term_channel?: string;
+                                term_id?: number;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_nissaya_ending: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 规则:required */
+                    ending: string;
+                    /** @description 规则:required */
+                    lang: string;
+                    relation?: string;
+                    case?: string;
+                    from?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            ending?: string;
+                            lang?: string;
+                            relation?: string;
+                            case?: string;
+                            from?: string;
+                            count?: number;
+                            editor?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            term_channel?: string;
+                            term_id?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_nissaya_ending_export: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_nissaya_ending_import: {
+        parameters: {
+            query?: {
+                filename?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_nissaya_ending_vocabulary: {
+        parameters: {
+            query?: {
+                lang?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_nissaya_ending_nissaya_ending_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nissaya_ending: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            ending?: string;
+                            lang?: string;
+                            relation?: string;
+                            case?: string;
+                            from?: string;
+                            count?: number;
+                            editor?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            term_channel?: string;
+                            term_id?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_nissaya_ending_nissaya_ending_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nissaya_ending: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    ending?: string;
+                    lang?: string;
+                    relation?: string;
+                    from?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            ending?: string;
+                            lang?: string;
+                            relation?: string;
+                            case?: string;
+                            from?: string;
+                            count?: number;
+                            editor?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            term_channel?: string;
+                            term_id?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_nissaya_ending_nissaya_ending_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nissaya_ending: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_nissaya_ending_nissaya_ending_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                nissaya_ending: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    ending?: string;
+                    lang?: string;
+                    relation?: string;
+                    from?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            ending?: string;
+                            lang?: string;
+                            relation?: string;
+                            case?: string;
+                            from?: string;
+                            count?: number;
+                            editor?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            term_channel?: string;
+                            term_id?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_notification: {
+        parameters: {
+            query?: {
+                view?: "to";
+                status?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                from?: string;
+                                to?: string;
+                                url?: string;
+                                content?: string;
+                                content_type?: string;
+                                res_type?: string;
+                                res_id?: number;
+                                status?: number;
+                                created_at?: string;
+                                updated_at?: string;
+                                "pr data"?: string;
+                                channel?: string;
+                                title?: string;
+                                book_title?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_notification: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    to?: string;
+                    url?: string;
+                    content?: string;
+                    res_type?: string;
+                    res_id?: string;
+                    channel?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            from?: string;
+                            to?: string;
+                            url?: string;
+                            content?: string;
+                            content_type?: string;
+                            res_type?: string;
+                            res_id?: number;
+                            status?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            "pr data"?: string;
+                            channel?: string;
+                            title?: string;
+                            book_title?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_notification_notification_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                notification: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            from?: string;
+                            to?: string;
+                            url?: string;
+                            content?: string;
+                            content_type?: string;
+                            res_type?: string;
+                            res_id?: number;
+                            status?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            "pr data"?: string;
+                            channel?: string;
+                            title?: string;
+                            book_title?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_notification_notification_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                notification: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @default read */
+                    status?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_notification_notification_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                notification: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_notification_notification_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                notification: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @default read */
+                    status?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_offline_index: {
+        parameters: {
+            query?: {
+                file?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_offline_index: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_offline_index_offline_index_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                offline_index: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_offline_index_offline_index_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                offline_index: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_offline_index_offline_index_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                offline_index: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_offline_index_offline_index_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                offline_index: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_pali_book_category: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_pali_book_category: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_pali_book_category_pali_book_category_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                pali_book_category: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_pali_book_category_pali_book_category_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                pali_book_category: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_pali_book_category_pali_book_category_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                pali_book_category: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_pali_book_category_pali_book_category_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                pali_book_category: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_pali_search_data: {
+        parameters: {
+            query?: {
+                book?: string;
+                page_size?: string;
+                start?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_pali_search_data: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_pali_search_data_pali_search_datum_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                pali_search_datum: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_pali_search_data_pali_search_datum_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                pali_search_datum: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_pali_search_data_pali_search_datum_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                pali_search_datum: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_pali_search_data_pali_search_datum_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                pali_search_datum: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_pali_word_index: {
+        parameters: {
+            query?: {
+                view?: "key";
+                key?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_pali_word_index: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_pali_word_index_pali_word_index_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                pali_word_index: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_pali_word_index_pali_word_index_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                pali_word_index: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_pali_word_index_pali_word_index_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                pali_word_index: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_pali_word_index_pali_word_index_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                pali_word_index: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_palitext: {
+        parameters: {
+            query?: {
+                view?: "chapter-tag" | "chapter" | "chapter_children" | "children" | "paragraph" | "book-toc";
+                tags?: string;
+                book?: string;
+                para?: string;
+                id?: string;
+                series?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_palitext: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_palitext_palitext_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                palitext: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_palitext_palitext_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                palitext: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_palitext_palitext_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                palitext: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_palitext_palitext_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                palitext: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_para_info: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_para_info: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_para_info_para_info_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                para_info: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_para_info_para_info_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                para_info: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_para_info_para_info_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                para_info: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_para_info_para_info_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                para_info: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_paragraph_content: {
+        parameters: {
+            query?: {
+                channels?: string;
+                mode?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_paragraph_content: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_paragraph_content_paragraph_content_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                paragraph_content: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_paragraph_content_paragraph_content_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                paragraph_content: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_paragraph_content_paragraph_content_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                paragraph_content: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_paragraph_content_paragraph_content_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                paragraph_content: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_pg_pali_dict_download: {
+        parameters: {
+            query?: {
+                page?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_pg_pali_dict_download: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_pg_pali_dict_download_pg_pali_dict_download_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                pg_pali_dict_download: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_pg_pali_dict_download_pg_pali_dict_download_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                pg_pali_dict_download: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_pg_pali_dict_download_pg_pali_dict_download_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                pg_pali_dict_download: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_pg_pali_dict_download_pg_pali_dict_download_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                pg_pali_dict_download: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_progress: {
+        parameters: {
+            query?: {
+                progress?: string;
+                offset?: string;
+                limit?: string;
+                channel?: string;
+                view?: "ids" | "studio" | "tag" | "chapter-tag" | "lang" | "channel-type" | "channel" | "chapter_channels" | "chapter" | "top" | "search" | "public";
+                book?: string;
+                par?: string;
+                name?: string;
+                public?: string;
+                tags?: string;
+                channel_type?: string;
+                lang?: string;
+                studio?: string;
+                key?: string;
+                order?: string;
+                dir?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_progress: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_progress_img: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_progress_img: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_progress_img_progress_img_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                progress_img: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_progress_img_progress_img_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                progress_img: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_progress_img_progress_img_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                progress_img: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_progress_img_progress_img_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                progress_img: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_progress_progress_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                progress: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_progress_progress_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                progress: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_progress_progress_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                progress: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_progress_progress_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                progress: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_project: {
+        parameters: {
+            query: {
+                /** @description studio 名称;不传则使用当前登录用户 */
+                studio?: string;
+                /** @description 查询口径:studio=某 studio 下的顶层工程,project-tree=某工程及其所有子工程,shared=分享给该 studio 的工程,community=其他 studio 的公开顶层工程 */
+                view: "studio" | "project-tree" | "shared" | "community";
+                /** @description 工程类型,用于 studio/shared/community 口径 */
+                type?: "instance" | "article";
+                /** @description view=project-tree 时必填,工程 uid;同时匹配该工程本身及 path 中包含它的子工程 */
+                project_id?: string;
+                /** @description 标题模糊搜索关键字 */
+                keyword?: string;
+                /** @description 工程状态,逗号分隔可多选 */
+                status?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "asc" | "desc";
+                /** @description 分页偏移量 */
+                offset?: number;
+                /** @description 每页条数 */
+                limit?: number;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                title?: string;
+                                type?: number;
+                                weight?: string;
+                                description?: string;
+                                executors_id?: number;
+                                parent_id?: number;
+                                parent?: string;
+                                path?: string;
+                                owner?: string;
+                                editor?: string;
+                                privacy?: string;
+                                created_at?: string;
+                                updated_at?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_project: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description studio 名称,用于解析归属 studio 并做权限校验 */
+                    studio_name: string;
+                    /** @description 工程 uid;为合法 uuid 时用它(已存在则更新该工程),否则服务端生成新 uuid */
+                    id?: string;
+                    /** @description 工程标题 */
+                    title: string;
+                    /** @description 工程描述 */
+                    description?: string;
+                    /** @description 父工程 uid,填写后作为子工程并自动计算 path */
+                    parent_id?: string;
+                    /**
+                     * @description 工程类型
+                     * @default instance
+                     * @enum {string}
+                     */
+                    type?: "instance" | "article";
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            title?: string;
+                            type?: number;
+                            weight?: string;
+                            description?: string;
+                            executors_id?: number;
+                            parent_id?: number;
+                            parent?: string;
+                            path?: string;
+                            owner?: string;
+                            editor?: string;
+                            privacy?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_project_tree: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_project_tree: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    studio_name?: string;
+                    data?: string;
+                    parent_id?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_project_tree_project_tree_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                project_tree: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_project_tree_project_tree_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                project_tree: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_project_tree_project_tree_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                project_tree: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_project_tree_project_tree_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                project_tree: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_project_project_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 工程 uid */
+                project: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            title?: string;
+                            type?: number;
+                            weight?: string;
+                            description?: string;
+                            executors_id?: number;
+                            parent_id?: number;
+                            parent?: string;
+                            path?: string;
+                            owner?: string;
+                            editor?: string;
+                            privacy?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_project_project_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 工程 uid */
+                project: string;
+            };
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 工程标题 */
+                    title: string;
+                    /** @description 工程描述 */
+                    description?: string;
+                    /** @description 父工程 uid;为合法 uuid 时重算 path */
+                    parent_id?: string;
+                    /**
+                     * @description 隐私性:public 表示社区可见
+                     * @default private
+                     * @enum {string}
+                     */
+                    privacy?: "private" | "public";
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            title?: string;
+                            type?: number;
+                            weight?: string;
+                            description?: string;
+                            executors_id?: number;
+                            parent_id?: number;
+                            parent?: string;
+                            path?: string;
+                            owner?: string;
+                            editor?: string;
+                            privacy?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_project_project_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 工程 uid */
+                project: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_project_project_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 工程 uid */
+                project: string;
+            };
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 工程标题 */
+                    title: string;
+                    /** @description 工程描述 */
+                    description?: string;
+                    /** @description 父工程 uid;为合法 uuid 时重算 path */
+                    parent_id?: string;
+                    /**
+                     * @description 隐私性:public 表示社区可见
+                     * @default private
+                     * @enum {string}
+                     */
+                    privacy?: "private" | "public";
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            title?: string;
+                            type?: number;
+                            weight?: string;
+                            description?: string;
+                            executors_id?: number;
+                            parent_id?: number;
+                            parent?: string;
+                            path?: string;
+                            owner?: string;
+                            editor?: string;
+                            privacy?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_recent: {
+        parameters: {
+            query?: {
+                id?: string;
+                type?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                type?: number;
+                                article_id?: number;
+                                param?: string;
+                                updated_at?: string;
+                                title?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_recent: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 规则:required */
+                    type: string;
+                    /** @description 规则:required */
+                    article_id: string;
+                    param?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            type?: number;
+                            article_id?: number;
+                            param?: string;
+                            updated_at?: string;
+                            title?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_recent_recent_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                recent: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            type?: number;
+                            article_id?: number;
+                            param?: string;
+                            updated_at?: string;
+                            title?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_recent_recent_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                recent: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_recent_recent_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                recent: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_recent_recent_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                recent: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_related_paragraph: {
+        parameters: {
+            query?: {
+                book?: string;
+                para?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                book?: string;
+                                para?: string;
+                                book_title_pali?: string;
+                                cs6_para?: string;
+                                tags?: string;
+                                path?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_related_paragraph: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_related_paragraph_related_paragraph_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                related_paragraph: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_related_paragraph_related_paragraph_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                related_paragraph: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_related_paragraph_related_paragraph_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                related_paragraph: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_related_paragraph_related_paragraph_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                related_paragraph: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_relation: {
+        parameters: {
+            query?: {
+                vocabulary?: boolean;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_relation: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 规则:required */
+                    name: string;
+                    case?: string;
+                    category?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            name?: string;
+                            case?: string;
+                            from?: string;
+                            to?: string;
+                            match?: string;
+                            category?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            editor?: string;
+                            category_channel?: string;
+                            channelId?: string;
+                            word?: string;
+                            meaning?: string;
+                            name_channel?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_relation_export: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_relation_import: {
+        parameters: {
+            query?: {
+                filename?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_relation_relation_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                relation: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            name?: string;
+                            case?: string;
+                            from?: string;
+                            to?: string;
+                            match?: string;
+                            category?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            editor?: string;
+                            category_channel?: string;
+                            channelId?: string;
+                            word?: string;
+                            meaning?: string;
+                            name_channel?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_relation_relation_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                relation: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    name?: string;
+                    case?: string;
+                    category?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            name?: string;
+                            case?: string;
+                            from?: string;
+                            to?: string;
+                            match?: string;
+                            category?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            editor?: string;
+                            category_channel?: string;
+                            channelId?: string;
+                            word?: string;
+                            meaning?: string;
+                            name_channel?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_relation_relation_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                relation: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_relation_relation_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                relation: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    name?: string;
+                    case?: string;
+                    category?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            name?: string;
+                            case?: string;
+                            from?: string;
+                            to?: string;
+                            match?: string;
+                            category?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            editor?: string;
+                            category_channel?: string;
+                            channelId?: string;
+                            word?: string;
+                            meaning?: string;
+                            name_channel?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_search: {
+        parameters: {
+            query?: {
+                view?: "pali" | "page" | "title";
+                key?: string;
+                tags?: string;
+                orderby?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                book?: string;
+                                paragraph?: string;
+                                content?: string;
+                                path?: string;
+                                paliTitle?: string;
+                                content_type?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_search: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_search_book_list: {
+        parameters: {
+            query?: {
+                tags?: string;
+                key?: string;
+                view?: "pali" | "page" | "title";
+                match?: string;
+                type?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            pcdBookId?: string;
+                            count?: number;
+                            book?: string;
+                            paragraph?: string;
+                            paliTitle?: string;
+                            tags?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_search_page_number: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_search_page_number: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_search_page_number_search_page_number_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_page_number: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_search_page_number_search_page_number_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_page_number: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_search_page_number_search_page_number_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_page_number: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_search_page_number_search_page_number_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_page_number: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_search_pali_wbw: {
+        parameters: {
+            query?: {
+                book?: string;
+                tags?: string;
+                key?: string;
+                bold?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                book?: string;
+                                paragraph?: string;
+                                type?: number;
+                                page?: string;
+                                title?: string;
+                                rank?: string;
+                                path?: string;
+                                paliTitle?: string;
+                                link?: string;
+                                highlight?: string;
+                                ref?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_search_pali_wbw: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_search_pali_wbw_books: {
+        parameters: {
+            query?: {
+                tags?: string;
+                key?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            pcdBookId?: string;
+                            count?: number;
+                            book?: string;
+                            paragraph?: string;
+                            paliTitle?: string;
+                            tags?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_search_pali_wbw_search_pali_wbw_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_pali_wbw: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_search_pali_wbw_search_pali_wbw_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_pali_wbw: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_search_pali_wbw_search_pali_wbw_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_pali_wbw: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_search_pali_wbw_search_pali_wbw_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_pali_wbw: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_search_title_index: {
+        parameters: {
+            query?: {
+                key?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                word?: string;
+                                count?: number;
+                                bold?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_search_title_index: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_search_title_index_search_title_index_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_title_index: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_search_title_index_search_title_index_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_title_index: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_search_title_index_search_title_index_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_title_index: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_search_title_index_search_title_index_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_title_index: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_search_word_slice: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_search_word_slice: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_search_word_slice_search_word_slouse_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_word_slouse: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_search_word_slice_search_word_slouse_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_word_slouse: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_search_word_slice_search_word_slouse_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_word_slouse: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_search_word_slice_search_word_slouse_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_word_slouse: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_search_search_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_search_search_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_search_search_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_search_search_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_sent_discussion_tree: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 句子定位数组 */
+                    data: unknown[];
+                    /** @description 卷号 */
+                    "data[].book": number;
+                    /** @description 段号 */
+                    "data[].paragraph": number;
+                    /** @description 句子起始词序号 */
+                    "data[].word_start": number;
+                    /** @description 句子结束词序号 */
+                    "data[].word_end": number;
+                    /** @description 译文集 channel uid */
+                    "data[].channel_id": string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sent_in_channel: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_sent_in_channel: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    sentences?: string;
+                    channels?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sent_in_channel_sent_in_channel_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sent_in_channel: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_sent_in_channel_sent_in_channel_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sent_in_channel: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_sent_in_channel_sent_in_channel_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sent_in_channel: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_sent_in_channel_sent_in_channel_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sent_in_channel: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_sent_pr_tree: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    data?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sent_sim: {
+        parameters: {
+            query?: {
+                view?: "sentence";
+                book?: string;
+                paragraph?: string;
+                start?: string;
+                end?: string;
+                sim?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                sent?: string;
+                                sim?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_sent_sim: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sent_sim_sent_sim_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sent_sim: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_sent_sim_sent_sim_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sent_sim: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_sent_sim_sent_sim_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sent_sim: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_sent_sim_sent_sim_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sent_sim: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sent_history: {
+        parameters: {
+            query?: {
+                id?: string;
+                fork?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                sent_uid?: string;
+                                editor?: string;
+                                content?: string;
+                                landmark?: string;
+                                pr_from?: string;
+                                created_at?: string;
+                                fork_from?: string;
+                                fork_studio?: string;
+                                accepter?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_sent_history: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sent_history_sent_history_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sent_history: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_sent_history_sent_history_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sent_history: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_sent_history_sent_history_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sent_history: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_sent_history_sent_history_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sent_history: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sent_history_contribution: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sentence: {
+        parameters: {
+            query?: {
+                view?: "public" | "fulltext" | "channel" | "sent-can-read" | "chapter" | "paragraph" | "my-edit";
+                channel_type?: string;
+                updated_after?: string;
+                key?: string;
+                sentence?: string;
+                channel?: string;
+                type?: string;
+                excludes?: string;
+                book?: string;
+                para?: string;
+                channels?: string;
+                lang?: string;
+                strlen?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                data?: string;
+                                uid?: string;
+                                id?: number;
+                                content?: string;
+                                content_type?: string;
+                                html?: string;
+                                book?: string;
+                                paragraph?: string;
+                                word_start?: string;
+                                word_end?: string;
+                                editor?: string;
+                                fork_at?: string;
+                                updated_at?: string;
+                                channel?: string;
+                                studio?: string;
+                                suggestionCount?: string;
+                                acceptor?: string;
+                                pr_edit_at?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_sentence: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    sentences?: string;
+                    channel?: string;
+                    book?: string;
+                    access_token?: string;
+                    copy?: string;
+                    fork_from?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            data?: string;
+                            uid?: string;
+                            id?: number;
+                            content?: string;
+                            content_type?: string;
+                            html?: string;
+                            book?: string;
+                            paragraph?: string;
+                            word_start?: string;
+                            word_end?: string;
+                            editor?: string;
+                            fork_at?: string;
+                            updated_at?: string;
+                            channel?: string;
+                            studio?: string;
+                            suggestionCount?: string;
+                            acceptor?: string;
+                            pr_edit_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sentence_attachment: {
+        parameters: {
+            query?: {
+                id?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                uid?: string;
+                                sentence_id?: number;
+                                attachment_id?: number;
+                                attachment?: string;
+                                editor_id?: number;
+                                url?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_sentence_attachment: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sentence_attachment_sentence_attachment_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentence_attachment: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_sentence_attachment_sentence_attachment_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentence_attachment: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_sentence_attachment_sentence_attachment_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentence_attachment: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_sentence_attachment_sentence_attachment_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentence_attachment: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sentence_info: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_sentence_info: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sentence_info_sentence_info_: {
+        parameters: {
+            query?: {
+                book?: string;
+                par?: string;
+                start?: string;
+                end?: string;
+                channel?: string;
+            };
+            header?: never;
+            path: {
+                sentence_info: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            data?: string;
+                            uid?: string;
+                            id?: number;
+                            content?: string;
+                            content_type?: string;
+                            html?: string;
+                            book?: string;
+                            paragraph?: string;
+                            word_start?: string;
+                            word_end?: string;
+                            editor?: string;
+                            fork_at?: string;
+                            updated_at?: string;
+                            channel?: string;
+                            studio?: string;
+                            suggestionCount?: string;
+                            acceptor?: string;
+                            pr_edit_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_sentence_info_sentence_info_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentence_info: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_sentence_info_sentence_info_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentence_info: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_sentence_info_sentence_info_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentence_info: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sentence_io: {
+        parameters: {
+            query?: {
+                view?: "public";
+                type?: string;
+                updated_at?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_sentence_io: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sentence_io_sentence_io_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentence_io: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_sentence_io_sentence_io_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentence_io: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_sentence_io_sentence_io_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentence_io: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_sentence_io_sentence_io_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentence_io: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sentence_sentence_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentence: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            data?: string;
+                            uid?: string;
+                            id?: number;
+                            content?: string;
+                            content_type?: string;
+                            html?: string;
+                            book?: string;
+                            paragraph?: string;
+                            word_start?: string;
+                            word_end?: string;
+                            editor?: string;
+                            fork_at?: string;
+                            updated_at?: string;
+                            channel?: string;
+                            studio?: string;
+                            suggestionCount?: string;
+                            acceptor?: string;
+                            pr_edit_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_sentence_sentence_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentence: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    content?: string;
+                    contentType?: string;
+                    prEditor?: string;
+                    prEditAt?: string;
+                    prId?: string;
+                    prUuid?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            data?: string;
+                            uid?: string;
+                            id?: number;
+                            content?: string;
+                            content_type?: string;
+                            html?: string;
+                            book?: string;
+                            paragraph?: string;
+                            word_start?: string;
+                            word_end?: string;
+                            editor?: string;
+                            fork_at?: string;
+                            updated_at?: string;
+                            channel?: string;
+                            studio?: string;
+                            suggestionCount?: string;
+                            acceptor?: string;
+                            pr_edit_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_sentence_sentence_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentence: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_sentence_sentence_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentence: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    content?: string;
+                    contentType?: string;
+                    prEditor?: string;
+                    prEditAt?: string;
+                    prId?: string;
+                    prUuid?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            data?: string;
+                            uid?: string;
+                            id?: number;
+                            content?: string;
+                            content_type?: string;
+                            html?: string;
+                            book?: string;
+                            paragraph?: string;
+                            word_start?: string;
+                            word_end?: string;
+                            editor?: string;
+                            fork_at?: string;
+                            updated_at?: string;
+                            channel?: string;
+                            studio?: string;
+                            suggestionCount?: string;
+                            acceptor?: string;
+                            pr_edit_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sentences_in_chapter: {
+        parameters: {
+            query?: {
+                book?: string;
+                para?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_sentences_in_chapter: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sentences_in_chapter_sentences_in_chapter_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentences_in_chapter: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_sentences_in_chapter_sentences_in_chapter_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentences_in_chapter: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_sentences_in_chapter_sentences_in_chapter_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentences_in_chapter: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_sentences_in_chapter_sentences_in_chapter_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentences_in_chapter: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sentpr: {
+        parameters: {
+            query?: {
+                view?: "sent-info";
+                book?: string;
+                para?: string;
+                start?: string;
+                end?: string;
+                channel?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                uid?: string;
+                                book?: string;
+                                paragraph?: string;
+                                word_start?: string;
+                                word_end?: string;
+                                editor?: string;
+                                channel?: string;
+                                content?: string;
+                                html?: string;
+                                role?: string;
+                                created_at?: string;
+                                updated_at?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_sentpr: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    notification?: string;
+                    webhook?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            uid?: string;
+                            book?: string;
+                            paragraph?: string;
+                            word_start?: string;
+                            word_end?: string;
+                            editor?: string;
+                            channel?: string;
+                            content?: string;
+                            html?: string;
+                            role?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sentpr_sentpr_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentpr: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            uid?: string;
+                            book?: string;
+                            paragraph?: string;
+                            word_start?: string;
+                            word_end?: string;
+                            editor?: string;
+                            channel?: string;
+                            content?: string;
+                            html?: string;
+                            role?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_sentpr_sentpr_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentpr: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    text?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_sentpr_sentpr_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentpr: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_sentpr_sentpr_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sentpr: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    text?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_share: {
+        parameters: {
+            query?: {
+                view?: "res" | "group";
+                id?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                res_id?: number;
+                                res_type?: string;
+                                collaborator_type?: string;
+                                power?: string;
+                                res_name?: string;
+                                owner?: string;
+                                created_at?: string;
+                                updated_at?: string;
+                                user?: string;
+                                group?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_share: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    user_id?: string;
+                    res_id?: string;
+                    res_type?: string;
+                    user_type?: string;
+                    /** @enum {string} */
+                    role?: "manager" | "editor" | "reader";
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_share_share_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                share: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_share_share_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                share: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @enum {string} */
+                    role?: "manager" | "editor" | "reader";
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_share_share_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                share: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_share_share_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                share: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @enum {string} */
+                    role?: "manager" | "editor" | "reader";
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_sign_in: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    username?: string;
+                    password?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sign_up: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_sign_up: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    token?: string;
+                    email?: string;
+                    name?: string;
+                    username?: string;
+                    nickname?: string;
+                    password?: string;
+                    lang?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_sign_up_sign_up_: {
+        parameters: {
+            query?: {
+                email?: string;
+            };
+            header?: never;
+            path: {
+                sign_up: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_sign_up_sign_up_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sign_up: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_sign_up_sign_up_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sign_up: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_sign_up_sign_up_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                sign_up: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_site_info: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_site_info: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_site_info_site_info_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                site_info: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_site_info_site_info_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                site_info: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_site_info_site_info_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                site_info: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_site_info_site_info_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                site_info: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_snowflake: {
+        parameters: {
+            query?: {
+                count?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_snowflake: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_snowflake_snowflake_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                snowflake: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_snowflake_snowflake_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                snowflake: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_snowflake_snowflake_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                snowflake: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_snowflake_snowflake_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                snowflake: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_studio: {
+        parameters: {
+            query?: {
+                view?: "collaboration-channel";
+                studio_name?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_studio: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_studio_studio_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                studio: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_studio_studio_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                studio: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_studio_studio_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                studio: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_studio_studio_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                studio: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_system_model: {
+        parameters: {
+            query?: {
+                view?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                uid?: string;
+                                name?: string;
+                                description?: string;
+                                url?: string;
+                                model?: string;
+                                privacy?: string;
+                                owner_id?: number;
+                                editor_id?: number;
+                                created_at?: string;
+                                updated_at?: string;
+                                user?: string;
+                                key?: string;
+                                system_prompt?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_system_model: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @default wbw */
+                    view?: string;
+                    models?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_system_model_system_model_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                system_model: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_system_model_system_model_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                system_model: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_system_model_system_model_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                system_model: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_system_model_system_model_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                system_model: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_system_term_lang_word_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                lang: string;
+                word: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_tag: {
+        parameters: {
+            query?: {
+                view?: "studio";
+                name?: string;
+                search?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_tag: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    studio?: string;
+                    name?: string;
+                    description?: string;
+                    color?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_tag_map: {
+        parameters: {
+            query?: {
+                view?: "items" | "item";
+                tag_id?: string;
+                studio?: string;
+                res_id?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                table_name?: string;
+                                anchor_id?: number;
+                                tag_id?: number;
+                                name?: string;
+                                color?: string;
+                                description?: string;
+                                editor?: string;
+                                owner?: string;
+                                created_at?: string;
+                                updated_at?: string;
+                                title?: string;
+                                tags?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_tag_map: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    studio?: string;
+                    course?: string;
+                    anchor_id?: string;
+                    tag_id?: string;
+                    table_name?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            table_name?: string;
+                            anchor_id?: number;
+                            tag_id?: number;
+                            name?: string;
+                            color?: string;
+                            description?: string;
+                            editor?: string;
+                            owner?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            title?: string;
+                            tags?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_tag_map_tag_map_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                tag_map: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_tag_map_tag_map_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                tag_map: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_tag_map_tag_map_: {
+        parameters: {
+            query?: {
+                course?: string;
+            };
+            header?: never;
+            path: {
+                tag_map: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_tag_map_tag_map_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                tag_map: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_tag_tag_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                tag: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_tag_tag_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                tag: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    studio?: string;
+                    name?: string;
+                    description?: string;
+                    color?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_tag_tag_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                tag: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_tag_tag_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                tag: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    studio?: string;
+                    name?: string;
+                    description?: string;
+                    color?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_tags_in_chapter: {
+        parameters: {
+            query?: {
+                view?: "chapter";
+                progress?: string;
+                lang?: string;
+                type?: string;
+                tags?: string;
+                channel?: string;
+                channel_type?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_tags_in_chapter: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_tags_in_chapter_tags_in_chapter_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                tags_in_chapter: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_tags_in_chapter_tags_in_chapter_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                tags_in_chapter: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_tags_in_chapter_tags_in_chapter_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                tags_in_chapter: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_tags_in_chapter_tags_in_chapter_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                tags_in_chapter: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_task: {
+        parameters: {
+            query: {
+                /** @description 查询口径:all=全部有归属的任务,instance=实例任务(type=instance),studio=当前用户名下(owner_id=当前用户)的任务,project=某工程及其子工程下的任务 */
+                view: "all" | "instance" | "studio" | "project";
+                /** @description view=project 时必填,工程 uid;同时匹配该工程本身及 path 中包含它的子工程 */
+                project_id?: string;
+                /** @description 实际执行人 uid,逗号分隔,只返回执行人在其中的任务 */
+                executor_id_includes?: string;
+                /** @description 实际执行人 uid,逗号分隔,排除执行人在其中的任务 */
+                "executor_id_not-includes"?: string;
+                /** @description 责任人(指派人)uid,逗号分隔,只返回指派给其中任一人的任务 */
+                assignees_id_includes?: string;
+                /** @description 责任人(指派人)uid,逗号分隔,排除指派给其中任一人的任务 */
+                "assignees_id_not-includes"?: string;
+                /** @description 传该参数(任意值)表示只返回没有任何责任人的任务 */
+                assignees_id_null?: string;
+                /** @description 传该参数(任意值)表示只返回至少有一个责任人的任务 */
+                "assignees_id_not-null"?: string;
+                /** @description 值为 true 时只返回可领取的任务,即责任人和实际执行人都为空 */
+                sign_up_equals?: "true" | "false";
+                /** @description 参与者 uid,逗号分隔,实际执行人或责任人命中其一即返回 */
+                participants_id_includes?: string;
+                /** @description 参与者 uid,逗号分隔,排除这些人参与的任务 */
+                "participants_id_not-includes"?: string;
+                /** @description 标题模糊搜索关键字 */
+                keyword?: string;
+                /** @description 任务状态,逗号分隔可多选;传 all 表示不过滤。数据库默认值为 pending */
+                status?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "asc" | "desc";
+                /** @description 分页偏移量 */
+                offset?: number;
+                /** @description 每页条数 */
+                limit?: number;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                mode?: string;
+                                format?: string;
+                                footnote?: string;
+                                origin?: string;
+                                paragraph?: string;
+                                id?: number;
+                                title?: string;
+                                description?: string;
+                                type?: number;
+                                category?: string;
+                                progress?: number;
+                                parent_id?: number;
+                                parent?: string;
+                                roles?: string;
+                                executor_id?: number;
+                                executor_relation_task_id?: number;
+                                executor_relation_task?: string;
+                                pre_task?: string;
+                                next_task?: string;
+                                is_milestone?: boolean;
+                                project_id?: number;
+                                project?: string;
+                                owner_id?: number;
+                                owner?: string;
+                                editor_id?: number;
+                                editor?: string;
+                                order?: string;
+                                status?: number;
+                                created_at?: string;
+                                updated_at?: string;
+                                started_at?: string;
+                                finished_at?: string;
+                                assignees_id?: number;
+                                assignees?: string;
+                                html?: string;
+                                executor?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_task: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description studio 名称,用于解析归属 studio 并做权限校验 */
+                    studio_name: string;
+                    /** @description 任务 uuid;为合法 uuid 时用它,否则服务端生成新 uuid */
+                    id?: string;
+                    /** @description 所属工程 uid */
+                    project_id?: string;
+                    /** @description 任务标题 */
+                    title: string;
+                    /** @description 父任务 uuid,填写后为子任务 */
+                    parent_id?: string;
+                    /**
+                     * @description 任务类型
+                     * @default project
+                     */
+                    type?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            mode?: string;
+                            format?: string;
+                            footnote?: string;
+                            origin?: string;
+                            paragraph?: string;
+                            id?: number;
+                            title?: string;
+                            description?: string;
+                            type?: number;
+                            category?: string;
+                            progress?: number;
+                            parent_id?: number;
+                            parent?: string;
+                            roles?: string;
+                            executor_id?: number;
+                            executor_relation_task_id?: number;
+                            executor_relation_task?: string;
+                            pre_task?: string;
+                            next_task?: string;
+                            is_milestone?: boolean;
+                            project_id?: number;
+                            project?: string;
+                            owner_id?: number;
+                            owner?: string;
+                            editor_id?: number;
+                            editor?: string;
+                            order?: string;
+                            status?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            started_at?: string;
+                            finished_at?: string;
+                            assignees_id?: number;
+                            assignees?: string;
+                            html?: string;
+                            executor?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_task_group: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_task_group: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    data?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_task_group_task_group_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                task_group: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_task_group_task_group_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                task_group: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_task_group_task_group_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                task_group: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_task_group_task_group_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                task_group: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_task_status: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_task_status: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_task_status_task_status_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                task_status: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_task_status_task_status_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                task_status: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @enum {string} */
+                    status?: "published" | "running" | "restarted" | "quit" | "done" | "requested_restart";
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            mode?: string;
+                            format?: string;
+                            footnote?: string;
+                            origin?: string;
+                            paragraph?: string;
+                            id?: number;
+                            title?: string;
+                            description?: string;
+                            type?: number;
+                            category?: string;
+                            progress?: number;
+                            parent_id?: number;
+                            parent?: string;
+                            roles?: string;
+                            executor_id?: number;
+                            executor_relation_task_id?: number;
+                            executor_relation_task?: string;
+                            pre_task?: string;
+                            next_task?: string;
+                            is_milestone?: boolean;
+                            project_id?: number;
+                            project?: string;
+                            owner_id?: number;
+                            owner?: string;
+                            editor_id?: number;
+                            editor?: string;
+                            order?: string;
+                            status?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            started_at?: string;
+                            finished_at?: string;
+                            assignees_id?: number;
+                            assignees?: string;
+                            html?: string;
+                            executor?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_task_status_task_status_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                task_status: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_task_status_task_status_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                task_status: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @enum {string} */
+                    status?: "published" | "running" | "restarted" | "quit" | "done" | "requested_restart";
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            mode?: string;
+                            format?: string;
+                            footnote?: string;
+                            origin?: string;
+                            paragraph?: string;
+                            id?: number;
+                            title?: string;
+                            description?: string;
+                            type?: number;
+                            category?: string;
+                            progress?: number;
+                            parent_id?: number;
+                            parent?: string;
+                            roles?: string;
+                            executor_id?: number;
+                            executor_relation_task_id?: number;
+                            executor_relation_task?: string;
+                            pre_task?: string;
+                            next_task?: string;
+                            is_milestone?: boolean;
+                            project_id?: number;
+                            project?: string;
+                            owner_id?: number;
+                            owner?: string;
+                            editor_id?: number;
+                            editor?: string;
+                            order?: string;
+                            status?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            started_at?: string;
+                            finished_at?: string;
+                            assignees_id?: number;
+                            assignees?: string;
+                            html?: string;
+                            executor?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_task_task_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 任务 uuid */
+                task: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            mode?: string;
+                            format?: string;
+                            footnote?: string;
+                            origin?: string;
+                            paragraph?: string;
+                            id?: number;
+                            title?: string;
+                            description?: string;
+                            type?: number;
+                            category?: string;
+                            progress?: number;
+                            parent_id?: number;
+                            parent?: string;
+                            roles?: string;
+                            executor_id?: number;
+                            executor_relation_task_id?: number;
+                            executor_relation_task?: string;
+                            pre_task?: string;
+                            next_task?: string;
+                            is_milestone?: boolean;
+                            project_id?: number;
+                            project?: string;
+                            owner_id?: number;
+                            owner?: string;
+                            editor_id?: number;
+                            editor?: string;
+                            order?: string;
+                            status?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            started_at?: string;
+                            finished_at?: string;
+                            assignees_id?: number;
+                            assignees?: string;
+                            html?: string;
+                            executor?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_task_task_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 任务 uuid */
+                task: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @description 任务标题 */
+                    title?: string;
+                    /** @description 任务描述(markdown) */
+                    description?: string;
+                    /** @description 类别,如 翻译、审稿、百科 */
+                    category?: string;
+                    /** @description 进度,0-100 */
+                    progress?: number;
+                    /** @description 责任人 uid 数组,整体覆盖原有责任人;传空数组等于清空 */
+                    assignees_id?: unknown[];
+                    /** @description 领取该任务所需的角色要求,存为 json */
+                    roles?: unknown[];
+                    /** @description 实际执行人 uid */
+                    executor_id?: string;
+                    /** @description 执行人关联任务 uuid,表示执行人与该任务保持一致 */
+                    executor_relation_task_id?: string;
+                    /** @description 所属工程 uid */
+                    project_id?: string;
+                    /** @description 前置任务 uuid,逗号分隔,整体覆盖原有前置关系 */
+                    pre_task_id?: string;
+                    /** @description 后续任务 uuid,逗号分隔,整体覆盖原有后续关系 */
+                    next_task_id?: string;
+                    /** @description 是否为里程碑 */
+                    is_milestone?: boolean;
+                    /** @description 拖拽排序顺序 */
+                    order?: number;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            mode?: string;
+                            format?: string;
+                            footnote?: string;
+                            origin?: string;
+                            paragraph?: string;
+                            id?: number;
+                            title?: string;
+                            description?: string;
+                            type?: number;
+                            category?: string;
+                            progress?: number;
+                            parent_id?: number;
+                            parent?: string;
+                            roles?: string;
+                            executor_id?: number;
+                            executor_relation_task_id?: number;
+                            executor_relation_task?: string;
+                            pre_task?: string;
+                            next_task?: string;
+                            is_milestone?: boolean;
+                            project_id?: number;
+                            project?: string;
+                            owner_id?: number;
+                            owner?: string;
+                            editor_id?: number;
+                            editor?: string;
+                            order?: string;
+                            status?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            started_at?: string;
+                            finished_at?: string;
+                            assignees_id?: number;
+                            assignees?: string;
+                            html?: string;
+                            executor?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_task_task_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 任务 uuid */
+                task: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_task_task_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 任务 uuid */
+                task: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @description 任务标题 */
+                    title?: string;
+                    /** @description 任务描述(markdown) */
+                    description?: string;
+                    /** @description 类别,如 翻译、审稿、百科 */
+                    category?: string;
+                    /** @description 进度,0-100 */
+                    progress?: number;
+                    /** @description 责任人 uid 数组,整体覆盖原有责任人;传空数组等于清空 */
+                    assignees_id?: unknown[];
+                    /** @description 领取该任务所需的角色要求,存为 json */
+                    roles?: unknown[];
+                    /** @description 实际执行人 uid */
+                    executor_id?: string;
+                    /** @description 执行人关联任务 uuid,表示执行人与该任务保持一致 */
+                    executor_relation_task_id?: string;
+                    /** @description 所属工程 uid */
+                    project_id?: string;
+                    /** @description 前置任务 uuid,逗号分隔,整体覆盖原有前置关系 */
+                    pre_task_id?: string;
+                    /** @description 后续任务 uuid,逗号分隔,整体覆盖原有后续关系 */
+                    next_task_id?: string;
+                    /** @description 是否为里程碑 */
+                    is_milestone?: boolean;
+                    /** @description 拖拽排序顺序 */
+                    order?: number;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            mode?: string;
+                            format?: string;
+                            footnote?: string;
+                            origin?: string;
+                            paragraph?: string;
+                            id?: number;
+                            title?: string;
+                            description?: string;
+                            type?: number;
+                            category?: string;
+                            progress?: number;
+                            parent_id?: number;
+                            parent?: string;
+                            roles?: string;
+                            executor_id?: number;
+                            executor_relation_task_id?: number;
+                            executor_relation_task?: string;
+                            pre_task?: string;
+                            next_task?: string;
+                            is_milestone?: boolean;
+                            project_id?: number;
+                            project?: string;
+                            owner_id?: number;
+                            owner?: string;
+                            editor_id?: number;
+                            editor?: string;
+                            order?: string;
+                            status?: number;
+                            created_at?: string;
+                            updated_at?: string;
+                            started_at?: string;
+                            finished_at?: string;
+                            assignees_id?: number;
+                            assignees?: string;
+                            html?: string;
+                            executor?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_term_summary: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_term_summary: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_term_summary_term_summary_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                term_summary: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_term_summary_term_summary_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                term_summary: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_term_summary_term_summary_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                term_summary: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_term_summary_term_summary_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                term_summary: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_term_vocabulary: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_term_vocabulary: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_term_vocabulary_term_vocabulary_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                term_vocabulary: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_term_vocabulary_term_vocabulary_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                term_vocabulary: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_term_vocabulary_term_vocabulary_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                term_vocabulary: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_term_vocabulary_term_vocabulary_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                term_vocabulary: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_terms: {
+        parameters: {
+            query: {
+                /** @description 查询口径 */
+                view: "create-by-channel" | "studio" | "channel" | "show" | "user" | "word" | "tag" | "hot-meaning";
+                /** @description view=create-by-channel 时必填,目标 channel 的 uid, 用于确定语言、同 studio 的 channel 列表与 studio 信息 */
+                channel?: string;
+                /** @description view=create-by-channel 时为要新建的术语词形; view=word 时为逗号分隔的词或义项列表,按 word 或 meaning 命中 */
+                word?: string;
+                /** @description view=studio 时必填,studio 名称,须与当前用户的 studio 一致 */
+                name?: string;
+                /** @description view=channel 时为 channel id(uid);view=show 时为术语主键 id */
+                id?: string;
+                /** @description 关键字,按 word、word_en 前缀匹配或 meaning 模糊匹配 */
+                search?: string;
+                /** @description view=tag 时必填,逗号分隔的 tag 列表 */
+                tag?: string;
+                /** @description view=hot-meaning 时必填,统计该语言下每个词出现次数最多的义项 */
+                language?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "asc" | "desc";
+                /** @description 分页偏移量 */
+                offset?: number;
+                /** @description 每页条数 */
+                limit?: number;
+                /** @description 渲染 note/summary 的模式,透传给 Markdown 渲染器 */
+                mode?: string;
+                /** @description note 的渲染输出格式 */
+                format?: "react" | "html" | "text";
+                /** @description 传入该参数时,自身没有 note 的术语会回落到社区 channel 的解释作为 summary */
+                community_summary?: boolean;
+                /** @description 传入该参数时附带编辑者截至本条更新时间的累计经验值(秒) */
+                exp?: boolean;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                guid?: string;
+                                word?: string;
+                                word_en?: string;
+                                meaning?: string;
+                                other_meaning?: string;
+                                tag?: string;
+                                note?: string;
+                                language?: string;
+                                channel_id?: number;
+                                channal?: string;
+                                studio?: string;
+                                editor?: string;
+                                created_at?: string;
+                                updated_at?: string;
+                                mode?: string;
+                                format?: string;
+                                studioId?: string;
+                                channel?: string;
+                                html?: string;
+                                summary_is_community?: string;
+                                summary?: string;
+                                role?: string;
+                                exp?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_terms: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 术语词形,同时用于生成 word_en */
+                    word: string;
+                    /** @description 主要义项 */
+                    meaning: string;
+                    /** @description 标签,参与查重 */
+                    tag?: string;
+                    /** @description channel uid。给出则建 channel 级术语,否则建 studio 级术语 */
+                    channel?: string;
+                    /** @description 语言。仅 studio 级术语生效,channel 级会被 channel 语言覆盖 */
+                    language?: string;
+                    /** @description 其他义项,逗号分隔 */
+                    other_meaning?: string;
+                    /** @description 术语解释,Markdown */
+                    note?: string;
+                    /** @description channel access token,供 AI 模型等非 owner 身份验证 channel 编辑权 */
+                    access_token?: string;
+                    /** @description studio 的 uuid,不传 channel 时必填(或改用 studioName) */
+                    studioId?: string;
+                    /** @description studio 名称,未给 studioId 时用它换取 studioId */
+                    studioName?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            guid?: string;
+                            word?: string;
+                            word_en?: string;
+                            meaning?: string;
+                            other_meaning?: string;
+                            tag?: string;
+                            note?: string;
+                            language?: string;
+                            channel_id?: number;
+                            channal?: string;
+                            studio?: string;
+                            editor?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            mode?: string;
+                            format?: string;
+                            studioId?: string;
+                            channel?: string;
+                            html?: string;
+                            summary_is_community?: string;
+                            summary?: string;
+                            role?: string;
+                            exp?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_terms_export: {
+        parameters: {
+            query?: {
+                view?: "channel" | "studio";
+                id?: string;
+                name?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_terms_export: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_terms_export_terms_export_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                terms_export: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_terms_export_terms_export_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                terms_export: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_terms_export_terms_export_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                terms_export: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_terms_export_terms_export_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                terms_export: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_terms_import: {
+        parameters: {
+            query?: {
+                view?: "channel" | "studio";
+                id?: string;
+                name?: string;
+                filename?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_terms_term_: {
+        parameters: {
+            query?: {
+                /** @description 渲染 note 时使用的 channel 列表,多个用下划线分隔; 不传则按术语自身的 channel 或对应语言的社区 channel 渲染 */
+                channel?: string;
+                /** @description 渲染模式 */
+                mode?: string;
+                /** @description note 的渲染输出格式 */
+                format?: "react" | "html" | "text";
+                /** @description 传入该参数时,没有 note 的术语回落到社区解释作为 summary */
+                community_summary?: boolean;
+                /** @description 传入该参数时附带编辑者累计经验值(秒) */
+                exp?: boolean;
+            };
+            header?: never;
+            path: {
+                term: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            guid?: string;
+                            word?: string;
+                            word_en?: string;
+                            meaning?: string;
+                            other_meaning?: string;
+                            tag?: string;
+                            note?: string;
+                            language?: string;
+                            channel_id?: number;
+                            channal?: string;
+                            studio?: string;
+                            editor?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            mode?: string;
+                            format?: string;
+                            studioId?: string;
+                            channel?: string;
+                            html?: string;
+                            summary_is_community?: string;
+                            summary?: string;
+                            role?: string;
+                            exp?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_terms_term_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                term: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @description channel access token,供非 owner 身份验证 channel 编辑权 */
+                    access_token?: string;
+                    /** @description 术语词形,提交时同步重算 word_en */
+                    word?: string;
+                    /** @description 主要义项 */
+                    meaning?: string;
+                    /** @description 其他义项,逗号分隔 */
+                    other_meaning?: string;
+                    /** @description 术语解释,Markdown */
+                    note?: string;
+                    /** @description 标签 */
+                    tag?: string;
+                    /** @description 语言 */
+                    language?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            guid?: string;
+                            word?: string;
+                            word_en?: string;
+                            meaning?: string;
+                            other_meaning?: string;
+                            tag?: string;
+                            note?: string;
+                            language?: string;
+                            channel_id?: number;
+                            channal?: string;
+                            studio?: string;
+                            editor?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            mode?: string;
+                            format?: string;
+                            studioId?: string;
+                            channel?: string;
+                            html?: string;
+                            summary_is_community?: string;
+                            summary?: string;
+                            role?: string;
+                            exp?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_terms_term_: {
+        parameters: {
+            query: {
+                /** @description 存在该参数即表示 id 以数组形式提交,并启用 channel 协作者删除权限判定 */
+                uuid?: string;
+                /** @description 要删除的术语 id 列表。带 uuid 时为数组,否则为 JSON 数组字符串 */
+                id: unknown[];
+            };
+            header?: never;
+            path: {
+                term: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_terms_term_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                term: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @description channel access token,供非 owner 身份验证 channel 编辑权 */
+                    access_token?: string;
+                    /** @description 术语词形,提交时同步重算 word_en */
+                    word?: string;
+                    /** @description 主要义项 */
+                    meaning?: string;
+                    /** @description 其他义项,逗号分隔 */
+                    other_meaning?: string;
+                    /** @description 术语解释,Markdown */
+                    note?: string;
+                    /** @description 标签 */
+                    tag?: string;
+                    /** @description 语言 */
+                    language?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            guid?: string;
+                            word?: string;
+                            word_en?: string;
+                            meaning?: string;
+                            other_meaning?: string;
+                            tag?: string;
+                            note?: string;
+                            language?: string;
+                            channel_id?: number;
+                            channal?: string;
+                            studio?: string;
+                            editor?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            mode?: string;
+                            format?: string;
+                            studioId?: string;
+                            channel?: string;
+                            html?: string;
+                            summary_is_community?: string;
+                            summary?: string;
+                            role?: string;
+                            exp?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_tipitaka_content: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_tipitaka_content: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_tipitaka_content_tipitaka_content_: {
+        parameters: {
+            query?: {
+                channel?: string;
+            };
+            header?: never;
+            path: {
+                tipitaka_content: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_tipitaka_content_tipitaka_content_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                tipitaka_content: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_tipitaka_content_tipitaka_content_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                tipitaka_content: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_tipitaka_content_tipitaka_content_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                tipitaka_content: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_transfer: {
+        parameters: {
+            query?: {
+                view?: "studio";
+                name?: string;
+                view2?: "in" | "out";
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                origin_owner?: string;
+                                res_type?: string;
+                                res_id?: number;
+                                transferor?: string;
+                                new_owner?: string;
+                                status?: number;
+                                updated_at?: string;
+                                created_at?: string;
+                                editor?: string;
+                                channel?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_transfer: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    res_id?: string;
+                    /** @enum {string} */
+                    res_type?: "channel" | "article";
+                    new_owner?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_transfer_transfer_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                transfer: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            origin_owner?: string;
+                            res_type?: string;
+                            res_id?: number;
+                            transferor?: string;
+                            new_owner?: string;
+                            status?: number;
+                            updated_at?: string;
+                            created_at?: string;
+                            editor?: string;
+                            channel?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_transfer_transfer_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                transfer: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @enum {string} */
+                    status?: "accept" | "refuse" | "cancel";
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            origin_owner?: string;
+                            res_type?: string;
+                            res_id?: number;
+                            transferor?: string;
+                            new_owner?: string;
+                            status?: number;
+                            updated_at?: string;
+                            created_at?: string;
+                            editor?: string;
+                            channel?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_transfer_transfer_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                transfer: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_transfer_transfer_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                transfer: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @enum {string} */
+                    status?: "accept" | "refuse" | "cancel";
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            origin_owner?: string;
+                            res_type?: string;
+                            res_id?: number;
+                            transferor?: string;
+                            new_owner?: string;
+                            status?: number;
+                            updated_at?: string;
+                            created_at?: string;
+                            editor?: string;
+                            channel?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_user: {
+        parameters: {
+            query: {
+                /** @description 查询口径。key=按关键字匹配用户名或昵称;all=全部用户 */
+                view: "key" | "all";
+                /** @description view=key 时的关键字,同时模糊匹配 username 与 nickname */
+                key?: string;
+                /** @description 按昵称再做一次模糊过滤(nickname like %search%) */
+                search?: string;
+                /**
+                 * @description 按角色过滤,匹配 role 这个 JSON 数组中是否包含该值
+                 * @example admin
+                 */
+                role?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "asc" | "desc";
+                /** @description 分页起始位置 */
+                offset?: number;
+                /** @description 每页条数 */
+                limit?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                userName?: string;
+                                nickName?: string;
+                                email?: string;
+                                role?: string;
+                                created_at?: string;
+                                updated_at?: string;
+                                avatarName?: string;
+                                avatar?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_user: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_user_milestone: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_user_milestone: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_user_milestone_user_milestone_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                user_milestone: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_user_milestone_user_milestone_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                user_milestone: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_user_milestone_user_milestone_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                user_milestone: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_user_milestone_user_milestone_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                user_milestone: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_user_operation_daily: {
+        parameters: {
+            query?: {
+                view?: "user-all" | "user-year";
+                studio_name?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_user_operation_daily: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_user_operation_daily_user_operation_daily_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                user_operation_daily: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_user_operation_daily_user_operation_daily_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                user_operation_daily: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_user_operation_daily_user_operation_daily_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                user_operation_daily: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_user_operation_daily_user_operation_daily_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                user_operation_daily: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_user_statistic: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_user_statistic: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_user_statistic_user_statistic_: {
+        parameters: {
+            query?: {
+                view?: string;
+            };
+            header?: never;
+            path: {
+                user_statistic: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_user_statistic_user_statistic_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                user_statistic: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_user_statistic_user_statistic_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                user_statistic: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_user_statistic_user_statistic_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                user_statistic: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_user_user_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 用户的 userid(不是表自增主键 id) */
+                user: number;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            userName?: string;
+                            nickName?: string;
+                            email?: string;
+                            role?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            avatarName?: string;
+                            avatar?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_user_user_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 用户的 userid(不是表自增主键 id) */
+                user: number;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @description 角色列表,传了就只更新角色,整体覆盖原有角色 */
+                    roles?: unknown[];
+                    /** @description 昵称,未传 roles 时生效 */
+                    nickName?: string;
+                    /** @description 头像文件名,未传 roles 时生效 */
+                    avatar?: string;
+                    /** @description 邮箱,未传 roles 时生效 */
+                    email?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            userName?: string;
+                            nickName?: string;
+                            email?: string;
+                            role?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            avatarName?: string;
+                            avatar?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_user_user_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 用户的 userid */
+                user: number;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_user_user_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 用户的 userid(不是表自增主键 id) */
+                user: number;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @description 角色列表,传了就只更新角色,整体覆盖原有角色 */
+                    roles?: unknown[];
+                    /** @description 昵称,未传 roles 时生效 */
+                    nickName?: string;
+                    /** @description 头像文件名,未传 roles 时生效 */
+                    avatar?: string;
+                    /** @description 邮箱,未传 roles 时生效 */
+                    email?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            userName?: string;
+                            nickName?: string;
+                            email?: string;
+                            role?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                            avatarName?: string;
+                            avatar?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_userdict: {
+        parameters: {
+            query: {
+                /** @description 查询口径。all=全部;studio=某 studio 创建者的用户词条;user=cookie 中用户的词条(排除系统汇总);word=按单词查全部;community=社区公开词条;compound=复合词机器人词典;dict=指定词典 */
+                view: "all" | "studio" | "user" | "word" | "community" | "compound" | "dict";
+                /**
+                 * @description studio 口径为 studio 名;dict 口径为系统词典短名
+                 * @example robot_compound
+                 */
+                name?: string;
+                /** @description 要查询的单词,word/community/compound 口径必填;其他口径传入时也会追加过滤 */
+                word?: string;
+                /** @description dict 口径下直接指定的词典 uid(与 name 二选一) */
+                id?: string;
+                /** @description 按单词前缀模糊搜索 */
+                search?: string;
+                /** @description 按词根(parent)过滤 */
+                parent?: string;
+                /** @description 按词典短名(dict_info.shortname)过滤,解析为 uuid 后才生效 */
+                dict?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "asc" | "desc";
+                /** @description 跳过的记录数 */
+                offset?: number;
+                /** @description 返回条数上限 */
+                limit?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                word?: string;
+                                type?: number;
+                                grammar?: string;
+                                mean?: string;
+                                parent?: string;
+                                note?: string;
+                                factors?: string;
+                                source?: string;
+                                status?: number;
+                                confidence?: string;
+                                updated_at?: string;
+                                creator_id?: number;
+                                format?: string;
+                                lang?: string;
+                                editor?: string;
+                                exp?: string;
+                                dict?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_userdict: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 词条数组的 JSON 字符串,每项含 word(必填)及可选 type、grammar、parent、mean、factors、factormean、note、confidence、status、language */
+                    data: string;
+                    /**
+                     * @description 数据来源口径,决定写入的 source:dict=_USER_DICT_,wbw=_USER_WBW_
+                     * @enum {string}
+                     */
+                    view: "dict" | "wbw";
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_userdict: {
+        parameters: {
+            query: {
+                /**
+                 * @description 要删除的词条 id 数组的 JSON 字符串
+                 * @example ["123","456"]
+                 */
+                id: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_userdict_userdict_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 词条 id */
+                userdict: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_userdict_userdict_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 词条 id */
+                userdict: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @description 单词 */
+                    word?: string;
+                    /** @description 词性 */
+                    type?: string;
+                    /** @description 语法属性 */
+                    grammar?: string;
+                    /** @description 词根 */
+                    parent?: string;
+                    /** @description 词义 */
+                    mean?: string;
+                    /** @description 复合词拆分 */
+                    factors?: string;
+                    /** @description 复合词各部分词义 */
+                    factormean?: string;
+                    /** @description 备注 */
+                    note?: string;
+                    /** @description 置信度 */
+                    confidence?: number;
+                    /** @description 状态,大于 5 表示公开到社区 */
+                    status?: number;
+                    /** @description 语言代码 */
+                    language?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_userdict_userdict_: {
+        parameters: {
+            query?: {
+                /**
+                 * @description 要批量删除的词条 id 数组的 JSON 字符串
+                 * @example ["123","456"]
+                 */
+                id?: string;
+            };
+            header?: never;
+            path: {
+                /** @description 要删除的词条 id(未传查询参数 id 时使用) */
+                userdict: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_userdict_userdict_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                /** @description 词条 id */
+                userdict: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @description 单词 */
+                    word?: string;
+                    /** @description 词性 */
+                    type?: string;
+                    /** @description 语法属性 */
+                    grammar?: string;
+                    /** @description 词根 */
+                    parent?: string;
+                    /** @description 词义 */
+                    mean?: string;
+                    /** @description 复合词拆分 */
+                    factors?: string;
+                    /** @description 复合词各部分词义 */
+                    factormean?: string;
+                    /** @description 备注 */
+                    note?: string;
+                    /** @description 置信度 */
+                    confidence?: number;
+                    /** @description 状态,大于 5 表示公开到社区 */
+                    status?: number;
+                    /** @description 语言代码 */
+                    language?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_view: {
+        parameters: {
+            query?: {
+                view?: "count" | "user-recent" | "user" | "studio";
+                take?: string;
+                name?: string;
+                search?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_view: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    /** @enum {string} */
+                    target_type?: "chapter";
+                    channel?: string;
+                    book?: string;
+                    para?: string;
+                    /** @default read */
+                    mode?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_view_view_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                view: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_view_view_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                view: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_view_view_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                view: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_view_view_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                view: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_vocabulary: {
+        parameters: {
+            query?: {
+                view?: "key";
+                key?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                word?: string;
+                                count?: number;
+                                strlen?: string;
+                                meaning?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_vocabulary: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_vocabulary_vocabulary_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                vocabulary: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_vocabulary_vocabulary_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                vocabulary: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_vocabulary_vocabulary_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                vocabulary: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_vocabulary_vocabulary_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                vocabulary: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_wbw: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_wbw: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    channel_id?: string;
+                    book?: string;
+                    para?: string;
+                    sn?: string;
+                    data?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_wbw_sentence: {
+        parameters: {
+            query?: {
+                book?: string;
+                para?: string;
+                wordStart?: string;
+                wordEnd?: string;
+                view?: "course-answer" | "sent-can-read";
+                course?: string;
+                exclude?: string;
+                channels?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_wbw_sentence: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_wbw_sentence_wbw_sentence_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                wbw_sentence: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_wbw_sentence_wbw_sentence_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                wbw_sentence: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_wbw_sentence_wbw_sentence_: {
+        parameters: {
+            query?: {
+                channel?: string;
+            };
+            header?: never;
+            path: {
+                wbw_sentence: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_wbw_sentence_wbw_sentence_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                wbw_sentence: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_wbw_wbw_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                wbw: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_wbw_wbw_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                wbw: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_wbw_wbw_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                wbw: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_wbw_wbw_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                wbw: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_wbw_templates: {
+        parameters: {
+            query?: {
+                view?: "para" | "word" | "page";
+                book?: string;
+                paragraph?: string;
+                word?: string;
+                num?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_wbw_templates: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_wbw_templates_wbw_template_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                wbw_template: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_wbw_templates_wbw_template_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                wbw_template: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_wbw_templates_wbw_template_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                wbw_template: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_wbw_templates_wbw_template_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                wbw_template: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_wbwlookup: {
+        parameters: {
+            query?: {
+                word?: string;
+                base?: string;
+                deep?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_wbwlookup: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: {
+            content: {
+                "application/json": {
+                    channel_id?: string;
+                    data?: string;
+                    lang?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_wbwlookup_wbwlookup_: {
+        parameters: {
+            query?: {
+                channel_id?: string;
+            };
+            header?: never;
+            path: {
+                wbwlookup: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_wbwlookup_wbwlookup_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                wbwlookup: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_wbwlookup_wbwlookup_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                wbwlookup: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_wbwlookup_wbwlookup_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                wbwlookup: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_webhook: {
+        parameters: {
+            query?: {
+                view?: "channel";
+                id?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: {
+                                id?: number;
+                                res_type?: string;
+                                res_id?: number;
+                                url?: string;
+                                receiver?: string;
+                                event?: string;
+                                status?: number;
+                                fail?: string;
+                                success?: string;
+                                created_at?: string;
+                                updated_at?: string;
+                            }[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v2_webhook: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 规则:required */
+                    res_type: string;
+                    /** @description 规则:required */
+                    res_id: string;
+                    /** @description 规则:required */
+                    url: string;
+                    /** @description 规则:required */
+                    receiver: string;
+                    event?: string;
+                    /** @default active */
+                    status?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            res_type?: string;
+                            res_id?: number;
+                            url?: string;
+                            receiver?: string;
+                            event?: string;
+                            status?: number;
+                            fail?: string;
+                            success?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v2_webhook_webhook_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                webhook: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            res_type?: string;
+                            res_id?: number;
+                            url?: string;
+                            receiver?: string;
+                            event?: string;
+                            status?: number;
+                            fail?: string;
+                            success?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v2_webhook_webhook_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                webhook: string;
+            };
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 规则:required */
+                    res_type: string;
+                    /** @description 规则:required */
+                    res_id: string;
+                    /** @description 规则:required */
+                    url: string;
+                    /** @description 规则:required */
+                    receiver: string;
+                    event?: string;
+                    status?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            res_type?: string;
+                            res_id?: number;
+                            url?: string;
+                            receiver?: string;
+                            event?: string;
+                            status?: number;
+                            fail?: string;
+                            success?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v2_webhook_webhook_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                webhook: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v2_webhook_webhook_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                webhook: string;
+            };
+            cookie?: never;
+        };
+        requestBody: {
+            content: {
+                "application/json": {
+                    /** @description 规则:required */
+                    res_type: string;
+                    /** @description 规则:required */
+                    res_id: string;
+                    /** @description 规则:required */
+                    url: string;
+                    /** @description 规则:required */
+                    receiver: string;
+                    event?: string;
+                    status?: string;
+                };
+            };
+        };
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            id?: number;
+                            res_type?: string;
+                            res_id?: number;
+                            url?: string;
+                            receiver?: string;
+                            event?: string;
+                            status?: number;
+                            fail?: string;
+                            success?: string;
+                            created_at?: string;
+                            updated_at?: string;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v3_progress: {
+        parameters: {
+            query?: {
+                view?: "channel";
+                channels?: string;
+                level?: string;
+                lang?: string;
+                book?: string;
+                order?: string;
+                dir?: string;
+                offset?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v3_progress: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v3_progress_progress_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                progress: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v3_progress_progress_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                progress: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v3_progress_progress_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                progress: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v3_progress_progress_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                progress: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v3_search: {
+        parameters: {
+            query?: {
+                q?: string;
+                page?: string;
+                page_size?: string;
+                search_mode?: string;
+                resource_type?: string;
+                resource_id?: string;
+                granularity?: string;
+                language?: string;
+                category?: string;
+                tags?: string;
+                page_refs?: string;
+                related_id?: string;
+                author?: string;
+                channel?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v3_search: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v3_search_suggest: {
+        parameters: {
+            query?: {
+                q?: string;
+                fields?: string;
+                language?: string;
+                limit?: string;
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v3_search_suggest: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v3_search_suggest_search_suggest_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_suggest: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v3_search_suggest_search_suggest_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_suggest: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v3_search_suggest_search_suggest_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_suggest: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v3_search_suggest_search_suggest_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search_suggest: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v3_search_search_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v3_search_search_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v3_search_search_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v3_search_search_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                search: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v3_tipitaka_read_chapter: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v3_tipitaka_read_chapter_tipitaka_read_chapter_: {
+        parameters: {
+            query?: {
+                channel?: string;
+            };
+            header?: never;
+            path: {
+                tipitaka_read_chapter: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v3_tipitaka_read_para: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v3_tipitaka_read_para_tipitaka_read_para_: {
+        parameters: {
+            query?: {
+                channel?: string;
+                format?: string;
+                view?: string;
+            };
+            header?: never;
+            path: {
+                tipitaka_read_para: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v3_upgrade: {
+        parameters: {
+            query?: {
+                /** @description 搜索关键字 */
+                search?: string;
+                /** @description 排序字段 */
+                order?: string;
+                /** @description 排序方向 */
+                dir?: "desc" | "asc";
+                /** @description 每页记录数 */
+                limit?: number;
+                /** @description 从第几条记录开始提取 */
+                offset?: number;
+            };
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: {
+                            rows?: Record<string, never>[];
+                            count?: number;
+                        };
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    post_api_v3_upgrade: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path?: never;
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    get_api_v3_upgrade_upgrade_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                upgrade: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    put_api_v3_upgrade_upgrade_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                upgrade: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    delete_api_v3_upgrade_upgrade_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                upgrade: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+    patch_api_v3_upgrade_upgrade_: {
+        parameters: {
+            query?: never;
+            header?: never;
+            path: {
+                upgrade: string;
+            };
+            cookie?: never;
+        };
+        requestBody?: never;
+        responses: {
+            /** @description 成功。业务失败时 HTTP 仍可能为 200,以 ok 字段为准。 */
+            200: {
+                headers: {
+                    [name: string]: unknown;
+                };
+                content: {
+                    "application/json": {
+                        ok?: boolean;
+                        message?: string;
+                        data?: Record<string, never>;
+                    };
+                };
+            };
+            401: components["responses"]["Unauthorized"];
+            422: components["responses"]["ValidationError"];
+        };
+    };
+}