{
    "schemes": [],
    "swagger": "2.0",
    "info": {
        "description": "Bluente GolangAPI",
        "title": "Bluente API",
        "termsOfService": "http://swagger.io/terms/",
        "contact": {
            "name": "API Support",
            "url": "http://www.swagger.io/support",
            "email": "lien.li@bluente.com"
        },
        "license": {
            "name": "Apache 2.0",
            "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
        },
        "version": "1.0"
    },
    "host": "https://api.bluente.com",
    "basePath": "/",
    "paths": {
        "/blu_translation/document/ai_suggestion": {
            "post": {
                "description": "Retrieve suggestions from AI based on certain strings",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translation"
                ],
                "summary": "get the translated synonyms.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is BaseResponse",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/blu_translation/document/detail": {
            "get": {
                "description": "Get the details to display the main table.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translation"
                ],
                "summary": "get the translated document detail.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is BaseResponse",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/blu_translation/document/save": {
            "post": {
                "description": "save document for the final document apply those glossaries of suggestions.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translation"
                ],
                "summary": "save document and download the document applied those glossaries.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is BaseResponse",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/test/hello": {
            "get": {
                "description": "Ping Hello",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "test"
                ],
                "summary": "Ping Hello Test",
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/v2/3rd_status": {
            "get": {
                "description": "Returns the status of all configured services (third-party services and internal microservices)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "service-status"
                ],
                "summary": "Get service status",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_thirdpartystatus_model.StatusCheckResponse"
                        }
                    }
                }
            }
        },
        "/v2/3rd_status/refresh": {
            "post": {
                "description": "Manually triggers health checks for all services and updates their status",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "service-status"
                ],
                "summary": "Refresh service status",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "/v2/audio/transcription": {
            "post": {
                "description": "Transcript user's speech to text",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "role_play"
                ],
                "summary": "Transcript user's speech to text",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started, optional for guest",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "user speech file",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data list is *model.LessonPracticeRsp",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_model.LessonPracticeRsp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/blu_transcribe/complete_multipart": {
            "post": {
                "description": "Complete the multipart upload and merge all parts",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Client"
                ],
                "summary": "Complete multipart upload",
                "parameters": [
                    {
                        "description": "Complete multipart request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_client_model.CompleteMultipartRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/blu_transcribe/upload_config": {
            "get": {
                "description": "Get multipart upload configuration, frontend decides to use S3 or direct backend upload",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Client"
                ],
                "summary": "Get upload configuration for S3 multipart upload",
                "parameters": [
                    {
                        "type": "string",
                        "description": "File name",
                        "name": "file_name",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "File size in bytes",
                        "name": "file_size",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Content type (MIME type)",
                        "name": "content_type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/blu_translate/auto_detect": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Runs LLM language+dialect detection on the cached source file of a single-file upload task. Always returns 200; detection failures carry language \"invalid\" with empty candidates.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translate"
                ],
                "summary": "Detect the language of an uploaded document",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "translation task id",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_translate_service.AutoDetectResponse"
                        }
                    }
                }
            }
        },
        "/v2/blu_translate/check": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Check the status of a document translation by ID",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translate"
                ],
                "summary": "Check translation status",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "ID of the translation task",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_translate_service.TranslateCheckStatus"
                        }
                    }
                }
            }
        },
        "/v2/blu_translate/checkAll": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Check the status of all documents translation of current user",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translate"
                ],
                "summary": "Check multiple translation status",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/internal_translate_handler.MultiCheckResponse"
                        }
                    }
                }
            }
        },
        "/v2/blu_translate/credit": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "GRetrieve user's TranslationCredits via uuid",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Translate"
                ],
                "summary": "Get Folder list of featured",
                "parameters": [
                    {
                        "type": "string",
                        "description": "called by which entry",
                        "name": "caller",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "bring the previous next_token to get the next page",
                        "name": "next_token",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is []*bluente_internal_courseV2_model.WordListFeaturedFolder",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListItem"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/bluente_internal_courseV2_model.WordListFeaturedFolder"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/blu_translate/download": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Download the document for translation by ID",
                "produces": [
                    "application/octet-stream"
                ],
                "tags": [
                    "translate"
                ],
                "summary": "Download translated document",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "ID of the translation task",
                        "name": "id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Download as word file or not",
                        "name": "word",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "body"
                        }
                    }
                }
            }
        },
        "/v2/blu_translate/download_success": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Confirm client-side download success for translation task",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translate"
                ],
                "summary": "Ack translated document download success",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "ID of the translation task",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "boolean"
                            }
                        }
                    }
                }
            }
        },
        "/v2/blu_translate/file_checker": {
            "get": {
                "description": "get Upload source file and translated file, then check the accuracy",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translation"
                ],
                "summary": "get two files and check the accuracy",
                "parameters": [
                    {
                        "type": "string",
                        "description": "the task id to get",
                        "name": "id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is BaseResponse",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            },
            "post": {
                "description": "Upload source file and translated file, then check the accuracy",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translation"
                ],
                "summary": "upload two files and check the accuracy",
                "parameters": [
                    {
                        "type": "file",
                        "description": "file to upload glossary",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is BaseResponse",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/blu_translate/fix_translation_hook": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Change translation state after fixing the failure within 1 hour.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translate"
                ],
                "summary": "Fixed failed translation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "bring the previous next_token to get the next page",
                        "name": "next_token",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is file translation task",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_translate_handler.ListHistoryResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/blu_translate/history": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "List translation under my organization",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translate"
                ],
                "summary": "List translation under my organization",
                "parameters": [
                    {
                        "type": "string",
                        "description": "bring the previous next_token to get the next page",
                        "name": "next_token",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is file translation task",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_translate_handler.ListHistoryResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/blu_translate/refresh": {
            "get": {
                "security": [
                    {
                        "BasicAuth": []
                    }
                ],
                "description": "Refresh the translation credits that are recurring when expired",
                "tags": [
                    "translate"
                ],
                "summary": "Refresh translation credits",
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/v2/blu_translate/save_proofreading": {
            "post": {
                "security": [
                    {
                        "BasicAuth": []
                    }
                ],
                "tags": [
                    "translate"
                ],
                "summary": "SaveProofreadingHandler save proofreading record",
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/v2/blu_translate/stop_translation_notification": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Stop sending translation notification",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translate"
                ],
                "summary": "Stop sending translation notification",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/internal_translate_handler.MultiCheckResponse"
                        }
                    }
                }
            }
        },
        "/v2/blu_translate/supported_file_size": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Get the supported file size for the translation tool",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translate"
                ],
                "summary": "Supported File Size",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/internal_translate_handler.TranslationSupportedFileSizeResponse"
                        }
                    }
                }
            }
        },
        "/v2/blu_translate/supported_filetypes": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Get the supported file types for the translation tool",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translate"
                ],
                "summary": "Supported Filetypes",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/internal_translate_handler.TranslationSupportedFiletype"
                            }
                        }
                    }
                }
            }
        },
        "/v2/blu_translate/supported_languages": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Get the list of supported languages for the translation tool",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translate"
                ],
                "summary": "Supported Language",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/internal_translate_handler.TranslationSupportedLanguageResponse"
                        }
                    }
                }
            }
        },
        "/v2/blu_translate/translate": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Starts the translation for a document on the translation service",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translate"
                ],
                "summary": "Translates uploaded document",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "param",
                        "name": "POST",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_translate_model.TranslateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/v2/blu_translate/upload": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Upload a document to the translation service",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translate"
                ],
                "summary": "Upload translation document",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "file to upload",
                        "name": "file",
                        "in": "formData"
                    },
                    {
                        "type": "file",
                        "description": "multiple files to upload",
                        "name": "files",
                        "in": "formData"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/internal_translate_handler.UploadResponse"
                        }
                    }
                }
            }
        },
        "/v2/blu_translation/document/download": {
            "get": {
                "description": "Download the edited translated document godoc",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translation"
                ],
                "summary": "Download the edited translated document godoc",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "ID of the translation task",
                        "name": "id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "editing version",
                        "name": "version",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "body"
                        }
                    }
                }
            }
        },
        "/v2/blu_translation/document/edit_save": {
            "post": {
                "description": "Save the edited translated document godoc",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translation"
                ],
                "summary": "Save the edited translated document godoc",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "param",
                        "name": "POST",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_translate_model.EditDocReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is EditDocRsp",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_translate_model.EditDocRsp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/blu_translation/document/parse": {
            "get": {
                "description": "parse translated document and source document to respond client.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translation"
                ],
                "summary": "parse translated document godoc",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "translation task id",
                        "name": "id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "offset number",
                        "name": "next_token",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is BaseResponse",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_translate_model.ParsedDocRsp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/blu_translation/document/upload": {
            "post": {
                "description": "Upload user translated doc and original doc.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translation"
                ],
                "summary": "upload user document godoc",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "file to upload glossary",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is BaseResponse",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/blu_translation/glossary/delete": {
            "post": {
                "description": "Delete mass user glossary.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translation"
                ],
                "summary": "Delete user glossary file.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "request body",
                        "name": "POST",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "integer"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is BaseResponse",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/blu_translation/glossary/list": {
            "get": {
                "description": "list mass user glossary.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translation"
                ],
                "summary": "list user glossary file.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "bring the previous next_token to get the next page",
                        "name": "next_token",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is BaseResponse",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/blu_translation/glossary/namespaces": {
            "get": {
                "description": "List distinct non-empty glossary namespaces available to the current user.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translation"
                ],
                "summary": "List user glossary namespaces.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, data is an array of namespace strings",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/blu_translation/glossary/update": {
            "post": {
                "description": "update mass user glossary.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translation"
                ],
                "summary": "update user glossary file.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "request body",
                        "name": "POST",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/bluente_internal_translate_model.UserGlossary"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is BaseResponse",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/blu_translation/glossary/upload": {
            "post": {
                "description": "Upload user glossary file and parse it, then save it.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translation"
                ],
                "summary": "Upload user glossary file.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "file to upload glossary",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "namespace applied to every glossary row in the uploaded file; blank means General; maximum 64 characters",
                        "name": "namespace",
                        "in": "formData"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is BaseResponse",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/branch/create": {
            "post": {
                "description": "Create a deep link URL for Branch IO",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "BranchIO"
                ],
                "summary": "Create a deep link URL for Branch IO",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "param",
                        "name": "POST",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/internal_branchio_handler.BranchIOCreateRequestBody"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data field contains the string URL",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/branch/device": {
            "post": {
                "description": "Create a log record for a specific device for Branch IO",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "BranchIO"
                ],
                "summary": "Create a log record for a specific device for Branch IO",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "param",
                        "name": "POST",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/internal_branchio_handler.BranchIODeviceRequestBody"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data field just says ok",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/change_my_lang": {
            "post": {
                "description": "once change the language, the jwt token will be updated, client side need to update the token",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Change the user's spoken language and learning language",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "what lang you want to learn and speak",
                        "name": "POST",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.ChangeMyLangRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.UserLoginResponseV2"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/client/log/save": {
            "post": {
                "description": "Create a log record for client request log",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Client"
                ],
                "summary": "Create a log record for client request log",
                "parameters": [
                    {
                        "description": "param",
                        "name": "POST",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/internal_client_handler.ClientLogRequestBody"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data field just says ok",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/course": {
            "get": {
                "description": "Get course based on underlying language",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "coursev2"
                ],
                "summary": "Get course",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Course uuid",
                        "name": "uuid",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is model.CourseItem",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_model.CourseItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/course/bookmark_v2": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Get bookmarked courses",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "preferences"
                ],
                "summary": "Get bookmarked courses for multilang",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is []model.CourseItem",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/bluente_internal_courseV2_model.CourseItem"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Bookmark course",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "preferences"
                ],
                "summary": "Bookmark course  for multilang",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "param",
                        "name": "POST",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/internal_courseV2_handler.BookmarkCourseRequestV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is []model.CourseItem",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/bluente_internal_courseV2_model.CourseItem"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/course/bookmark_v2/remove": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Remove bookmark course",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "preferences"
                ],
                "summary": "Remove bookmark course for multilang",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "param",
                        "name": "POST",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/internal_courseV2_handler.BookmarkCourseRequestV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is []model.CourseItem",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/bluente_internal_courseV2_model.CourseItem"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/course/categories": {
            "get": {
                "description": "Get list of courses category (also named industry)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "coursev2"
                ],
                "summary": "Get list of courses category",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "this if for non-gate case, if without jwt token, will respect this field to show lang of list to show, like English, Chinese",
                        "name": "lang",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is []*model.CourseCategory",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListItem"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/bluente_internal_courseV2_model.CourseCategory"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/course/level": {
            "get": {
                "description": "Get level performance for breakdown page after finishing a level",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "coursev2"
                ],
                "summary": "Get level performance",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started, optional for guest",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Course code, which lesson want to list, use course code,from the object.code in lessons array ",
                        "name": "code",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "level from the object in lessons array ",
                        "name": "level",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data list is a list of model.Lesson",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListItem"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/bluente_internal_courseV2_model.Lesson"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/course/ongoing": {
            "get": {
                "description": "Get list of courses that user is taking",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "coursev2"
                ],
                "summary": "Get list of courses that user is taking",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "0: not finished courses, 1: finished courses",
                        "name": "finished",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is []*model.CourseTopic",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/bluente_internal_courseV2_model.CourseTopic"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/course/popular": {
            "get": {
                "description": "Get course based on underlying language",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "coursev2"
                ],
                "summary": "Get popular courses",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is []model.LearnWordItem",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/bluente_internal_courseV2_model.CourseItem"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/course/recommended": {
            "get": {
                "description": "Get recommend the course",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "coursev2"
                ],
                "summary": "Get recommend course[TBI]",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is []model.CourseItem",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListItem"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/bluente_internal_courseV2_model.CourseItem"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/course/search": {
            "get": {
                "description": "Search the course",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "coursev2"
                ],
                "summary": "Search the courses[TBI]",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "the content user want to search",
                        "name": "word",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_model.CourseSearchRsp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/course/similar": {
            "get": {
                "description": "Get similar course based on underlying language",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "coursev2"
                ],
                "summary": "Get similar courses",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Course uuid",
                        "name": "uuid",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is []model.CourseItem",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/bluente_internal_courseV2_model.CourseItem"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/course/topics": {
            "get": {
                "description": "Get list of courses topics",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "coursev2"
                ],
                "summary": "Get list of courses topics",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "tags of list to show, like Finance, previously named industry",
                        "name": "tags",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "tags of list to show, like 1,2,3, you can use tag_ids for multilang",
                        "name": "tag_ids",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "this if for non-gate case, if without jwt token, will respect this field to show lang of list to show, like English, Chinese",
                        "name": "lang",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is []*model.CourseTopic",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListItem"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/bluente_internal_courseV2_model.CourseTopic"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/course/word/proficiency": {
            "get": {
                "description": "Get course words proficiency for word reviewing page. response structure is same as `/v2/learn/progress/word`",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "coursev2"
                ],
                "summary": "Get course words proficiency",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started, optional for guest",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Course code, which lesson want to list, use course code,from the object.code in lessons array ",
                        "name": "code",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is a object contains a list of model.UserWordProgress and a bool field `paid` to indicate if the user is paid.",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListItem"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/bluente_internal_courseV2_model.UserWordProgress"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/courses": {
            "get": {
                "description": "Get all courses based on underlying language",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "coursev2"
                ],
                "summary": "Get all courses",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "bring the previous next_token to get the next page",
                        "name": "next_token",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is []model.CourseItem",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListItem"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/bluente_internal_courseV2_model.CourseItem"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/culture": {
            "get": {
                "description": "Get all culture information",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "learnV2"
                ],
                "summary": "Get all culture information",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "the user's learn language, by default is detect UA",
                        "name": "learn",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "the user's speak language, by default is detect on UA",
                        "name": "lang",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_courseV2_handler.CultureCourseResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/culture/course": {
            "get": {
                "description": "Get detailed culture",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "learnV2"
                ],
                "summary": "Get detailed culture",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "course uuid",
                        "name": "uuid",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_model.Culture"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/feature/access": {
            "get": {
                "description": "根据用户ID和组织ID获取用户能够访问的功能列表，优先级: USER \u003e ORG \u003e SYSTEM。未登录用户只返回SYSTEM级别配置",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "feature_access"
                ],
                "summary": "获取用户功能访问权限",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token (optional)",
                        "name": "Authorization",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/bluente_internal_courseV2_service.FeatureAccessResult"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/feature/capabilities": {
            "get": {
                "description": "返回当前用户的有效权限、适用范围和功能冲突。未登录用户按SYSTEM配置解析",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "feature_access"
                ],
                "summary": "获取翻译功能权限和选择规则",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token (optional)",
                        "name": "Authorization",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_service.TranslationCapabilities"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/file/download": {
            "post": {
                "description": "unify all of file download",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Client"
                ],
                "summary": "download file",
                "parameters": [
                    {
                        "type": "string",
                        "description": "s3 key",
                        "name": "k",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data field just says ok",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/file/upload": {
            "post": {
                "description": "unify all of file uploading",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Client"
                ],
                "summary": "Upload file to s3",
                "parameters": [
                    {
                        "type": "file",
                        "description": "file to translate",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data field just says ok",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/fonts": {
            "get": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "custom_font"
                ],
                "summary": "List the caller's custom fonts.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/internal_customfont.FontRecord"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "post": {
                "description": "Upload a zip of Regular/Bold/Italic/Bold Italic .ttf/.otf files as a personal or organization font.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "custom_font"
                ],
                "summary": "Upload a custom font family.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "zip of font files",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "USER or ORG",
                        "name": "owner_type",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "comma-separated declared language codes, e.g. en,zh,jp",
                        "name": "languages",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_customfont.UploadReport"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/fonts/default": {
            "put": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "custom_font"
                ],
                "summary": "Set or clear the caller's default custom font.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "{\\",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/fonts/{uuid}": {
            "delete": {
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "custom_font"
                ],
                "summary": "Delete a custom font.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "font uuid",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            },
            "patch": {
                "description": "Replaces the declared language codes and re-runs the glyph probe for fresh non-blocking warnings.",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "custom_font"
                ],
                "summary": "Update a custom font's declared languages.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "font uuid",
                        "name": "uuid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "{\\",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_customfont.LanguagesUpdate"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/gzh/check/{appid}": {
            "get": {
                "description": "wechat server verify api entry point",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "wechat server verify api entry point",
                "parameters": [
                    {
                        "type": "string",
                        "description": "appid of wechat app",
                        "name": "appid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "the id of the qrcode ticket",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success,return echostr",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/gzh/qrcode/{appid}": {
            "get": {
                "description": "wechat login ticket render the url to qrcode on the frontend",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "wechat login ticket",
                "parameters": [
                    {
                        "type": "string",
                        "description": "appid of wechat app",
                        "name": "appid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success,returnWechatLoginQrcodeResponse",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_courseV2_handler.WechatLoginQrcodeResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/gzh/{appid}": {
            "get": {
                "description": "wechat server verify api entry point",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "wechat server verify api entry point",
                "parameters": [
                    {
                        "type": "string",
                        "description": "appid of wechat app",
                        "name": "appid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success,return echostr",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            },
            "post": {
                "description": "wechat server verify api entry point",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "wechat server verify api entry point",
                "parameters": [
                    {
                        "type": "string",
                        "description": "appid of wechat app",
                        "name": "appid",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success,return echostr",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/learn/progress": {
            "get": {
                "description": "Get the special practice progress by using the uuid parameters.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "learnV2"
                ],
                "summary": "Get the special progress",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Course uuid",
                        "name": "uuid",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is model.UserCourseProgress",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_model.UserCourseProgress"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/learn/progress/word": {
            "post": {
                "description": "Post the special practice progress by using the model.UserWordProgressReq parameters.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "learnV2"
                ],
                "summary": "Save the special progress",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "request body",
                        "name": "POST",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.UserWordProgressReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, code is 0",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/learn/quiz": {
            "get": {
                "description": "Get previous 5 items quiz from the word list, flashcard use it",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "learnV2"
                ],
                "summary": "Get quiz associate with the word.",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Course uuid",
                        "name": "uuid",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Word_id for quiz",
                        "name": "word_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is model.LearnQuiz",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/bluente_internal_courseV2_model.LearnQuiz"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/learn/{code}/{base}/{target}": {
            "get": {
                "description": "Get list of learn of course based on course code, base language and target language to support frontend needs",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "learnV2"
                ],
                "summary": "Get learn with code, base and target",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Course code",
                        "name": "code",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Language in ISO 639 format",
                        "name": "base",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Language in ISO 639 format",
                        "name": "target",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {}
            }
        },
        "/v2/learns": {
            "get": {
                "description": "Get special learn words based on underlying language",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "learnV2"
                ],
                "summary": "Get special learn words",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Course uuid",
                        "name": "uuid",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Word_id is optional, if not existed, return all learn word",
                        "name": "word_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is model.LearnWordItem",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/bluente_internal_courseV2_model.LearnWordItem"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/lesson": {
            "get": {
                "description": "Get course based on underlying language",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "coursev2"
                ],
                "summary": "Get lesson",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started, optional for guest",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Course code, which lesson want to list, use course_code ",
                        "name": "code",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "level id, if not provided, will return the first level",
                        "name": "level",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is LessonResponse",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_courseV2_handler.LessonResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/lesson/practice": {
            "get": {
                "description": "Get lesson practice linear, this api will response with the lesson flashcards and practices.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "coursev2"
                ],
                "summary": "Get lesson practice for linear",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started, optional for guest",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "id from the object in lessons array ",
                        "name": "lesson_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Course code, which lesson want to list, use course_code,from the object.code in lessons array ",
                        "name": "code",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data list is *model.LessonPracticeRsp",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_model.LessonPracticeRsp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "post": {
                "description": "every flashcard and practice will be submitted to this api",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "coursev2"
                ],
                "summary": "submit lesson practice for linear",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started, optional for guest",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "request body",
                        "name": "POST",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.LessonPracticeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, code is 0",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_model.LessonScoreRsp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/me": {
            "post": {
                "description": "Gets UserLoginResponse and a new JWT Token",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Gets UserLoginResponse and a new JWT Token, output http code 200 and json response",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is model.UserLoginResponse",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.UserLoginResponseV2"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/ocr/id/check": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Check the progress of the ID Document OCR data extraction",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ocr"
                ],
                "summary": "ID Document OCR Check",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "ID of the ocr task",
                        "name": "task_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is IDDocumentOCRCheckResponse",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_ocr_handler.IDDocumentOCRCheckResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/ocr/id/result": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Retrieves result of the ID Document OCR data extraction",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ocr"
                ],
                "summary": "ID Document OCR Result",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "ID of the ocr task",
                        "name": "task_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is IDDocumentOCRResponse",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_ocr_handler.IDDocumentOCRResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/ocr/id/upload": {
            "post": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Upload ID Document Image to extract text from in an running background task",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ocr"
                ],
                "summary": "ID Document OCR Upload",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "image file to ocr",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is IDDocumentOCRUploadResponse",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_ocr_handler.IDDocumentOCRUploadResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/ocr/receipt/check": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Check the progress of the Receipt OCR data extraction",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ocr"
                ],
                "summary": "Receipt OCR Check",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "ID of the receipt ocr task",
                        "name": "task_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is ReceiptOCRCheckResponse",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_ocr_handler.ReceiptOCRCheckResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/ocr/receipt/excel": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Retrieves result of the Receipt OCR data extraction and converts it to XLSX file",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ocr"
                ],
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "ID of the ocr task",
                        "name": "task_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is service.MappedReceiptOCRData",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_ocr_service.MappedReceiptOCRData"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/ocr/receipt/result": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Retrieves result of the Receipt OCR data extraction",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ocr"
                ],
                "summary": "Receipt OCR Result",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "ID of the ocr task",
                        "name": "task_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is service.MappedReceiptOCRData",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_ocr_service.MappedReceiptOCRData"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/ocr/receipt/update": {
            "post": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Receive user's altered OCR data",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ocr"
                ],
                "summary": "Receipt OCR Update",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "receipt image file to ocr",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is ReceiptOCRUploadResponse",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_ocr_handler.ReceiptOCRUploadResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/ocr/receipt/upload": {
            "post": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Upload Receipt Image to extract text from in an running background task",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ocr"
                ],
                "summary": "Receipt OCR Upload",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "receipt image file to ocr",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is ReceiptOCRUploadResponse",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_ocr_handler.ReceiptOCRUploadResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/onboarding/occupation": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Get user's occupation",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Onboarding"
                ],
                "summary": "Get user's occupation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    },
                    {
                        "type": "string",
                        "description": "industry name user selected in previous step",
                        "name": "industry",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/onboarding/occupation_v2": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Get user's occupation",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Onboarding"
                ],
                "summary": "Get user's occupation with multilang",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    },
                    {
                        "type": "string",
                        "description": "industry name user selected in previous step",
                        "name": "industry",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/bluente_internal_courseV2_model.TagItem"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/onboarding/options": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Get Onboarding options for questions",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Onboarding"
                ],
                "summary": "Get Onboarding options for questions",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/onboarding/options_v3": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Get Onboarding options for questions",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Onboarding"
                ],
                "summary": "Get Onboarding options for questions",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/onboarding/preference": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Get user's onboarding preference",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Onboarding"
                ],
                "summary": "Get user's onboarding preference",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_model.OnboardingPreference"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Save user's onboarding preference",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Onboarding"
                ],
                "summary": "Save user's onboarding preference",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/onboarding/preference_v3": {
            "post": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Save user's onboarding preference",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Onboarding"
                ],
                "summary": "Save user's onboarding preference",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    },
                    {
                        "description": "{interests.label:[options_v2.name]}, value is english, case 1: {'Banking \u0026 Finance':['Capital Markets']}",
                        "name": "POST",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "additionalProperties": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/onboarding/recommendations": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Get user's recommendations",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Onboarding"
                ],
                "summary": "Get user's recommendations",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_courseV2_handler.RecommendationCourseAfterOnboardingResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/onboarding/recommendations_v2": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Get user's recommendations",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Onboarding"
                ],
                "summary": "Get user's recommendations for multilang",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_courseV2_handler.RecommendationCourseAfterOnboardingResponseV2"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/onboarding/recommendations_v3": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "get recommendation courses by user's onboarding preference",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Onboarding"
                ],
                "summary": "get recommendation courses by user's onboarding preference",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/organization/client": {
            "get": {
                "description": "Get Organization Client",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Organization"
                ],
                "summary": "Get Organization Client",
                "parameters": [
                    {
                        "description": "organization client",
                        "name": "orgProfile",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.OrganizationClientRequestV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the Data is OrganizationClientRecord",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.OrganizationInvoiceRequestV2"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "post": {
                "description": "Create Organization Client",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Organization"
                ],
                "summary": "Create Organization Client",
                "parameters": [
                    {
                        "description": "organization client",
                        "name": "orgProfile",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.OrganizationClientRequestV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the Data is OrganizationClientRecord",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.OrganizationInvoiceRequestV2"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/organization/client/update": {
            "post": {
                "description": "Update Organization Client",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Organization"
                ],
                "summary": "Update Organization Client",
                "parameters": [
                    {
                        "description": "organization client update request",
                        "name": "orgProfile",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.OrganizationClientUpdateRequestV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the Data is OrganizationClientRecord",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.OrganizationInvoiceRequestV2"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/organization/invoice": {
            "get": {
                "description": "Generate Organization Invoice",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Organization"
                ],
                "summary": "Generate Organization Invoice",
                "parameters": [
                    {
                        "description": "organization invoice request",
                        "name": "requestModel",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.OrganizationInvoiceRequestV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the Data is Invoice html document",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/organization/members": {
            "get": {
                "description": "Get organization members list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Organization"
                ],
                "summary": "Get Organization members",
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.GetOrganizationMembersResponseV2"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/organization/members/add": {
            "post": {
                "description": "Add a member to current organization by email",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Organization"
                ],
                "summary": "Add Organization member",
                "parameters": [
                    {
                        "description": "organization member add request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.AddOrganizationMemberRequestV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.OrganizationMemberMutationResponseV2"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/organization/members/delete": {
            "post": {
                "description": "Remove a member from current organization by user uuid",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Organization"
                ],
                "summary": "Remove Organization member",
                "parameters": [
                    {
                        "description": "organization member remove request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.RemoveOrganizationMemberRequestV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.OrganizationMemberMutationResponseV2"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/organization/members/update-role": {
            "post": {
                "description": "Change an existing member's role in the current organization",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Organization"
                ],
                "summary": "Update Organization member role",
                "parameters": [
                    {
                        "description": "organization member role update request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.UpdateOrganizationMemberRoleRequestV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.OrganizationMemberMutationResponseV2"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/organization/profile": {
            "post": {
                "description": "Get the organization profile display",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Organization"
                ],
                "summary": "Get Organization Profile",
                "parameters": [
                    {
                        "description": "organization profile",
                        "name": "orgProfile",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.OrganizationProfileRequestV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is OrganizationProfileDisplay",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.OrganizationProfileDisplayV2"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/practice/report": {
            "post": {
                "description": "flag entry",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "coursev2"
                ],
                "summary": "submit practice feedback",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started, optional for guest",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "request body",
                        "name": "POST",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.LessonPracticeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, code is 0",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_model.LessonScoreRsp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/revenue_cat/callback/{appid}": {
            "post": {
                "description": "revenue_cat  webhook callback",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "revenue_cat  webhook callback",
                "parameters": [
                    {
                        "type": "string",
                        "description": "appid of wechat app",
                        "name": "appid",
                        "in": "path",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "the id of the qrcode ticket",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {}
            }
        },
        "/v2/role_play/get_feedback": {
            "get": {
                "description": "analyze user's sentence, then get score and feedback",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "role_play"
                ],
                "summary": "analyze user's reply",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started, optional for guest",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "scenario location",
                        "name": "location",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "user role",
                        "name": "role",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "user input",
                        "name": "text",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is *model.FeedbackRsp",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_model.FeedbackRsp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/role_play/get_reply": {
            "get": {
                "description": "GetReply get ai's reply for user's input",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "role_play"
                ],
                "summary": "GetReply get ai's reply for user's input",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started, optional for guest",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "course code",
                        "name": "code",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "ai role name",
                        "name": "ai_role",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "user role name",
                        "name": "user_role",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "it doesn't need to take thread_id  query parameter when this api is called firstly, i will respond thread_id after calling firstly, so subsequence calling need to take the responded value.",
                        "name": "thread_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "user input",
                        "name": "text",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is *model.AIReplyRsp",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_model.AIReplyRsp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/role_play/get_scenario": {
            "get": {
                "description": "Get role play practice linear",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "role_play"
                ],
                "summary": "Get role play practice for linear",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started, optional for guest",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "role name",
                        "name": "role",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "id from the object in lessons array ",
                        "name": "lesson_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "Course code, which lesson want to list, use course_code,from the object.code in lessons array ",
                        "name": "code",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is *model.ScenarioRsp",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_model.ScenarioRsp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/role_play/minus_ticket": {
            "get": {
                "description": "save user the used ticket record",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "role_play"
                ],
                "summary": "Minus user's ticket on paid course of role play",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started, optional for guest",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "code",
                        "name": "code",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is nil",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/role_play/translate": {
            "get": {
                "description": "Get role play practice linear",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "role_play"
                ],
                "summary": "Get role play practice for linear",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started, optional for guest",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "text",
                        "name": "text",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "from scenario response",
                        "name": "keywords",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is *model.TranslateRsp",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_model.TranslateRsp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/search/glossary": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Searches glossary for word",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "search"
                ],
                "summary": "Searches glossary for word",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "bring the previous next_token to get the next page",
                        "name": "next_token",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "word to search for",
                        "name": "word",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListItem"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/bluente_internal_courseV2_model.GlossaryItem"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/supported_language": {
            "get": {
                "description": "Get supported language",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "coursev2"
                ],
                "summary": "Get supported language",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListItem"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/bluente_internal_courseV2_model.LanguageModule"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/user": {
            "post": {
                "description": "Creates user with the following fields: email, password, fullName, output http code 200 and json response",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Creation of user",
                "parameters": [
                    {
                        "description": "User",
                        "name": "user",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.UserCreationRequestV2"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is UserCreationResponse",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_user_handler.UserCreationResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/user/activate_account": {
            "get": {
                "description": "Activate user account by verifying email using an account activation token.",
                "produces": [
                    "text/html"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Activate account",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Account activation token",
                        "name": "token",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "HTML page with with a prompt to confirm account activation",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/v2/user/api_key": {
            "post": {
                "description": "如果已存在API Key则作废旧的，生成新的API Key",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "创建用户 API Key",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "创建API Key请求",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.CreateUserAPIKeyRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.UserAPIKeyResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/user/api_key/revoke": {
            "post": {
                "description": "将指定的 API Key 状态设置为已作废",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "作废指定的 API Key",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "作废API Key请求",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.RevokeUserAPIKeyRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/user/api_keys": {
            "get": {
                "description": "获取用户所有未过期的 API Key，返回脱敏处理后的 API Key",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "获取用户所有未过期的 API Key",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.GetUserAPIKeysResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/user/assignment/upload": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Upload a document as an assignment to ses",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "translate"
                ],
                "summary": "Upload document as assignment",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "file to translate",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is BaseResponse",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/user/config": {
            "get": {
                "description": "根据用户ID获取用户配置信息",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user_config"
                ],
                "summary": "获取用户配置",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is model.UserConfig",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_model.UserConfig"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "post": {
                "description": "更新用户配置，如果配置不存在则创建，如果存在则合并更新",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user_config"
                ],
                "summary": "更新用户配置",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "用户配置更新请求",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/internal_courseV2_handler.UpdateUserConfigRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data is model.UserConfig",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_model.UserConfig"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/user/delete": {
            "post": {
                "description": "Deletes user",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Deletes user",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/user/delete/reason": {
            "post": {
                "description": "Update deletion reason",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Update deletion reason",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "User delete reason",
                        "name": "udr",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.UserDeleteReason"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/user/generate_referral": {
            "post": {
                "description": "Generate referral code",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Generate referral code",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "User delete reason",
                        "name": "udr",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.GenerateReferralCodeRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/user/get_invite_details": {
            "get": {
                "description": "Get invite details",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Get invite details",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "User details",
                        "name": "udr",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.GetInviteDetailsRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/user/google_login": {
            "post": {
                "description": "Log in with the following fields: email, password, type, output http code 200 and json response",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Logging in with user",
                "parameters": [
                    {
                        "description": "User",
                        "name": "user",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.UserGoogleLoginRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is model.UserLoginResponseV2",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.UserLoginResponseV2"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/user/login": {
            "post": {
                "description": "Log in with the following fields: email, password, type, output http code 200 and json response",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Logging in with user",
                "parameters": [
                    {
                        "description": "User",
                        "name": "user",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.UserLoginRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is model.UserLoginResponseV2",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.UserLoginResponseV2"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/user/profile": {
            "get": {
                "description": "Gets user profile",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Get User Profile",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.UserProfile"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "post": {
                "description": "Creates user profile",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Creation of user profile",
                "parameters": [
                    {
                        "description": "UserProfile",
                        "name": "userprofile",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.UserProfileRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.UserProfile"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/user/resend_activation": {
            "post": {
                "description": "Resend activation email",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Resend activation email",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "User delete reason",
                        "name": "udr",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.UserLoginRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/user/resetpassword": {
            "post": {
                "description": "Resets password: Requires email address",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Reset password",
                "parameters": [
                    {
                        "description": "Email",
                        "name": "email",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.UserEmail"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/user/resetpassword_verify": {
            "get": {
                "description": "Verify the token of Reset password",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Verify the token of Reset password",
                "parameters": [
                    {
                        "type": "string",
                        "description": "the token of reset password",
                        "name": "token",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_model.UserResetPassword"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "post": {
                "description": "Verify the token of Reset password",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Client post new password side change password",
                "parameters": [
                    {
                        "description": "param",
                        "name": "POST",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.ResetPasswordVerifyRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/user/subscriber": {
            "get": {
                "description": "Gets revenue cat subscriber info by user id",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Get revenue cat subscriber info",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is UserSubscriberInfo",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_user_handler.UserSubscriberInfo"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/user/updatepassword": {
            "post": {
                "description": "Updates password: old password, new password",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Updates password",
                "parameters": [
                    {
                        "description": "Password Update Request",
                        "name": "pur",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.PasswordUpdateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.UserLoginResponseV2"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/user/wechat_app_login": {
            "post": {
                "description": "Client post code to login wechat app",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Logging in with WeChat",
                "parameters": [
                    {
                        "description": "param",
                        "name": "POST",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_user_model.AuthLoginReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the data field just login response",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_user_model.UserLoginResponseV2"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/wechat/callback/{appid}": {
            "post": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Get the callback of wechat pay",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Get the callback of wechat pay",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_service.WechatPayOrderResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/wechat/pay/{appid}": {
            "post": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Client Get wechat pay order pay info",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Client Get wechat pay order pay info",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/bluente_internal_courseV2_service.WechatPayOrderResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/word_list/create_folder": {
            "post": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Create or update a folder",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "WordList"
                ],
                "summary": "Create a folder to save word list",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    },
                    {
                        "description": "param",
                        "name": "POST",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.WordListFolder"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/word_list/delete_folder": {
            "post": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Remove the folder",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "WordList"
                ],
                "summary": "Remove the folder",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    },
                    {
                        "description": "param",
                        "name": "POST",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.WordListFolder"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/word_list/delete_words": {
            "post": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "remove words to my list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "WordList"
                ],
                "summary": "remove words to my list",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    },
                    {
                        "description": "param",
                        "name": "POST",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/internal_courseV2_handler.RemoveWordFromFolderRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/word_list/featured_list": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Get Folder list of featured",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "WordList"
                ],
                "summary": "Get Folder list of featured",
                "parameters": [
                    {
                        "type": "string",
                        "description": "which folder's words you want to get, 0 means all",
                        "name": "topic",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "tags of list to show, like Finance, previously named industry",
                        "name": "tags",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "bring the previous next_token to get the next page",
                        "name": "next_token",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is []*model.WordListFeaturedFolder",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListItem"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/bluente_internal_courseV2_model.WordListFeaturedFolder"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/word_list/featured_list_v2": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Get Folder list of featured",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "WordList"
                ],
                "summary": "Get Folder list of featured from multilang course",
                "parameters": [
                    {
                        "type": "string",
                        "description": "which folder's words you want to get",
                        "name": "folder_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "which topic folder words you want to get, empty means all, need to be tag_id like  1,2,3 ",
                        "name": "topic",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "tags of list to show, like 1,2,3 named industry",
                        "name": "tag_ids",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "bring the previous next_token to get the next page",
                        "name": "next_token",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is []*model.WordListFeaturedFolder",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListItem"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/bluente_internal_courseV2_model.WordListFeaturedFolder"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/word_list/featured_words": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Get words from featured list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "WordList"
                ],
                "summary": "Get words from featured list",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    },
                    {
                        "type": "string",
                        "description": "which featured folder's words you want to get, 0 means all",
                        "name": "folder_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "bring the previous next_token to get the next page",
                        "name": "next_token",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListItem"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/bluente_internal_courseV2_model.WordList"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/word_list/follow": {
            "post": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "User follow featured list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "WordList"
                ],
                "summary": "User follow featured list",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    },
                    {
                        "description": "param",
                        "name": "POST",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/internal_courseV2_handler.ChangeWordListFollowRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        },
        "/v2/word_list/following_folder_list": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Get Folder list of user following",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "WordList"
                ],
                "summary": "Get Folder list of user following",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    },
                    {
                        "type": "string",
                        "description": "bring the previous next_token to get the next page",
                        "name": "next_token",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is []*model.WordListFeaturedFolder",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListItem"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/bluente_internal_courseV2_model.WordListFeaturedFolder"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/word_list/get_all_folder": {
            "get": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Get all folders that I created for word list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "WordList"
                ],
                "summary": "Get all folders that I created for word list",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    },
                    {
                        "type": "string",
                        "description": "customized or featured, default empty means all",
                        "name": "type",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "integer",
                        "description": "if word_id was set, will only return folder that contains this word",
                        "name": "word_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_courseV2_handler.GetAllWordListFolderResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/word_list/get_words": {
            "get": {
                "description": "Get list of word I favorite",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "WordList"
                ],
                "summary": "Get word I favorite",
                "parameters": [
                    {
                        "type": "string",
                        "description": "With the bearer started",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "which folder's words you want to get, 0 means all",
                        "name": "folder_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "bring the previous next_token to get the next page",
                        "name": "next_token",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success, the list in Data is []*model.WordList",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseListItem"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/bluente_internal_courseV2_model.WordList"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/word_list/save_words": {
            "post": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Save a word to my list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "WordList"
                ],
                "summary": "Save a word to my list",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    },
                    {
                        "description": "param",
                        "name": "POST",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/internal_courseV2_handler.SaveWordToListRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_courseV2_handler.SaveWordsToFoldersResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/word_list/unfollow": {
            "post": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "User unfollow a featured list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "WordList"
                ],
                "summary": "User unfollow a featured list",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    },
                    {
                        "description": "param",
                        "name": "POST",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/internal_courseV2_handler.ChangeWordListFollowRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/internal_courseV2_handler.GetAllWordListFolderResponse"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/v2/word_list/update_folder": {
            "post": {
                "security": [
                    {
                        "JwtAuth": []
                    }
                ],
                "description": "Update a folder's name or delete it.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "WordList"
                ],
                "summary": "Update a folder",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Bearer jwt token",
                        "name": "Authorization",
                        "in": "header"
                    },
                    {
                        "description": "param",
                        "name": "POST",
                        "in": "body",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.WordListFolder"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseResponse"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "bluente_internal_client_model.CompleteMultipartRequest": {
            "type": "object",
            "required": [
                "file_id",
                "parts",
                "upload_id"
            ],
            "properties": {
                "file_id": {
                    "type": "integer"
                },
                "parts": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "$ref": "#/definitions/bluente_internal_pkg_storage_s3.MultipartPart"
                    }
                },
                "upload_id": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.AIReplyRsp": {
            "type": "object",
            "properties": {
                "raw_msgs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "reply_Audio": {
                    "type": "string"
                },
                "reply_text": {
                    "type": "string"
                },
                "thread_id": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.Breakdown": {
            "type": "object",
            "properties": {
                "course": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.NameSet"
                },
                "definition": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.NameSet"
                },
                "uuid": {
                    "type": "string"
                },
                "word": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.NameSet"
                },
                "word_id": {
                    "type": "integer"
                }
            }
        },
        "bluente_internal_courseV2_model.ContextualRecognitionPair": {
            "type": "object",
            "properties": {
                "string": {
                    "type": "string"
                },
                "word": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.CourseCategory": {
            "type": "object",
            "properties": {
                "app_id": {
                    "description": "Bluente=10000",
                    "type": "integer"
                },
                "category_name": {
                    "description": "the category name",
                    "type": "string"
                },
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "deleted": {
                    "description": "1=deleted",
                    "type": "integer"
                },
                "description": {
                    "description": "the category desc",
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "image_url": {
                    "description": "the cover of this list",
                    "type": "string"
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                }
            }
        },
        "bluente_internal_courseV2_model.CourseExtraConfig": {
            "type": "object",
            "properties": {
                "immerse": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.LearnSegment"
                },
                "immerse_speech": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.LearnSegment"
                },
                "practice": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.LearnSegment"
                },
                "practice_speech": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.LearnSegment"
                }
            }
        },
        "bluente_internal_courseV2_model.CourseItem": {
            "type": "object",
            "properties": {
                "bookmarked": {
                    "type": "integer"
                },
                "code": {
                    "type": "string"
                },
                "completed_time": {
                    "description": "unix timestamp to avoid timezone issue",
                    "type": "integer"
                },
                "description": {
                    "type": "string"
                },
                "exampleTerms": {
                    "type": "string"
                },
                "extra_config": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CourseExtraConfig"
                },
                "image_url": {
                    "type": "string"
                },
                "learn": {
                    "type": "string"
                },
                "learn_name": {
                    "type": "string"
                },
                "level": {
                    "type": "string"
                },
                "lock": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "overall_progress": {
                    "type": "integer"
                },
                "paid": {
                    "type": "boolean"
                },
                "tag_ids": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "topic": {
                    "type": "string"
                },
                "topic_id": {
                    "type": "integer"
                },
                "uuid": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.CourseSearchRsp": {
            "type": "object",
            "properties": {
                "breakdown": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.Breakdown"
                    }
                },
                "courses": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "bluente_internal_courseV2_model.CourseTopic": {
            "type": "object",
            "properties": {
                "app_id": {
                    "description": "Bluente=10000",
                    "type": "integer"
                },
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "deleted": {
                    "description": "1=deleted",
                    "type": "integer"
                },
                "description": {
                    "description": "the topic desc",
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "image_url": {
                    "description": "the cover of this topic",
                    "type": "string"
                },
                "tag_ids": {
                    "description": "int array of bl_course_category.id",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "topic_name": {
                    "description": "the topic name",
                    "type": "string"
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                }
            }
        },
        "bluente_internal_courseV2_model.Culture": {
            "type": "object",
            "properties": {
                "app_id": {
                    "description": "Bluente=10000",
                    "type": "integer"
                },
                "code": {
                    "description": "culture article code of mongo, for migration, unique",
                    "type": "string"
                },
                "country_code": {
                    "description": "the simple code of country, example: CN",
                    "type": "string"
                },
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "deleted": {
                    "description": "1=deleted",
                    "type": "integer"
                },
                "description": {
                    "description": "description",
                    "type": "string"
                },
                "details": {
                    "description": "details",
                    "type": "string"
                },
                "hide": {
                    "description": "1: hide this article",
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "image_url": {
                    "description": "the cover of this article",
                    "type": "string"
                },
                "language": {
                    "description": "culture lang defined",
                    "type": "string"
                },
                "learn_episode": {
                    "description": "learn episode, []LearnEpisodeItem",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.CultureLearnItem"
                    }
                },
                "learn_name": {
                    "description": "name of this article of the target country",
                    "type": "string"
                },
                "name": {
                    "description": "name of this article",
                    "type": "string"
                },
                "readingtime": {
                    "description": "time of reading this article",
                    "type": "string"
                },
                "topic": {
                    "description": "the topic array name",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "uuid": {
                    "description": "culture article id of mongo, for migration, unique",
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.CultureCountry": {
            "type": "object",
            "properties": {
                "app_id": {
                    "description": "Bluente=10000",
                    "type": "integer"
                },
                "banner_url": {
                    "description": "the banner of this country culture",
                    "type": "string"
                },
                "country_code": {
                    "description": "the simple code of country, example: CN",
                    "type": "string"
                },
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "deleted": {
                    "description": "1=deleted",
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "language": {
                    "description": "culture lang defined",
                    "type": "string"
                },
                "name": {
                    "description": "name of this article",
                    "type": "string"
                },
                "splash_url": {
                    "description": "the splash of this country culture",
                    "type": "string"
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "uuid": {
                    "description": "country uuid id of mongo, for migration, unique",
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.CultureLearnItem": {
            "type": "object",
            "properties": {
                "header": {
                    "type": "string"
                },
                "highlights": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "image": {
                    "type": "string"
                },
                "summary": {
                    "type": "string"
                },
                "text": {
                    "type": "string"
                },
                "tips": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.CustomTime": {
            "type": "object",
            "properties": {
                "time.Time": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.Definition": {
            "type": "object",
            "properties": {
                "learn": {
                    "type": "string"
                },
                "speak": {
                    "type": "string"
                },
                "speech": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.DisplayItem": {
            "type": "object",
            "properties": {
                "display_name": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.Example2": {
            "type": "object",
            "properties": {
                "learn": {
                    "type": "string"
                },
                "learns": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "speak": {
                    "description": "this is a compatible for version of the low app as Example1.",
                    "type": "string"
                },
                "speak_speeches": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "speaks": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "speech": {
                    "type": "string"
                },
                "speeches": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "bluente_internal_courseV2_model.ExtraConfig": {
            "type": "object",
            "additionalProperties": true
        },
        "bluente_internal_courseV2_model.FeatureAccessExtraConfig": {
            "type": "object",
            "properties": {
                "config_value": {
                    "description": "ConfigValue holds the actual configuration value (can be any type based on ValueType)"
                },
                "default_value": {
                    "description": "DefaultValue specifies the default value if not set"
                },
                "description": {
                    "description": "Description provides additional context for the feature",
                    "type": "string"
                },
                "max": {
                    "type": "number"
                },
                "min": {
                    "description": "Min/Max constraints for numeric types",
                    "type": "number"
                },
                "options": {
                    "description": "Options provides selectable choices for UI (used when ValueType is array or for dropdown)",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.FeatureAccessOption"
                    }
                },
                "value_type": {
                    "description": "ValueType specifies the type of the value field",
                    "allOf": [
                        {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.FeatureAccessValueType"
                        }
                    ]
                }
            }
        },
        "bluente_internal_courseV2_model.FeatureAccessOption": {
            "type": "object",
            "properties": {
                "icon": {
                    "description": "optional icon identifier",
                    "type": "string"
                },
                "label": {
                    "description": "display label",
                    "type": "string"
                },
                "value": {
                    "description": "actual value"
                }
            }
        },
        "bluente_internal_courseV2_model.FeatureAccessValueType": {
            "type": "string",
            "enum": [
                "string",
                "int",
                "float",
                "bool",
                "array",
                "object"
            ],
            "x-enum-varnames": [
                "FeatureAccessValueTypeString",
                "FeatureAccessValueTypeInt",
                "FeatureAccessValueTypeFloat",
                "FeatureAccessValueTypeBool",
                "FeatureAccessValueTypeArray",
                "FeatureAccessValueTypeObject"
            ]
        },
        "bluente_internal_courseV2_model.FeedbackRsp": {
            "type": "object",
            "properties": {
                "display_score": {
                    "type": "string"
                },
                "grammar_mistakes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "improved_version": {
                    "type": "string"
                },
                "raw_msgs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "score": {
                    "type": "string"
                },
                "scoring": {
                    "type": "string"
                },
                "vocabulary_mistakes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "bluente_internal_courseV2_model.FileTranslationTask": {
            "type": "object",
            "properties": {
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "created_by": {
                    "type": "string"
                },
                "deducted": {
                    "description": "indicate if the credit deducted or not",
                    "type": "integer"
                },
                "file_extension": {
                    "description": "The extension of the file, determined by fileheader",
                    "type": "string"
                },
                "id": {
                    "description": "ID of the translation task.",
                    "type": "integer"
                },
                "page_count": {
                    "description": "The number of pages",
                    "type": "integer"
                },
                "source_lang": {
                    "description": "Source language, refer to iFlyTek docs for the available languages",
                    "type": "string"
                },
                "state_str": {
                    "description": "The state of the task",
                    "type": "string"
                },
                "target_lang": {
                    "description": "Target language, refer to iFlyTek docs for the available languages",
                    "type": "string"
                },
                "token_total": {
                    "description": "token total of AI cost",
                    "type": "integer"
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                }
            }
        },
        "bluente_internal_courseV2_model.GlossaryItem": {
            "type": "object",
            "properties": {
                "courses": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.CourseItem"
                    }
                },
                "is_saved_word_list": {
                    "type": "integer"
                },
                "learn": {
                    "type": "string"
                },
                "learn_speech": {
                    "type": "string"
                },
                "learns": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.LearnWordItem"
                    }
                },
                "speak": {
                    "type": "string"
                },
                "speak_speech": {
                    "type": "string"
                },
                "unique_key": {
                    "description": "return speak and learn glossary id for saving the word",
                    "type": "string"
                },
                "word_list": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.WordList"
                }
            }
        },
        "bluente_internal_courseV2_model.LanguageModule": {
            "type": "object",
            "properties": {
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "deleted": {
                    "description": "1=deleted",
                    "type": "integer"
                },
                "flag": {
                    "description": "the national flag of this course",
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "internal": {
                    "description": "Is this language ready for internal user to review(email is Bluente.com)，1=can learn.2=can learn\u0026speak",
                    "type": "integer"
                },
                "language": {
                    "description": "course lang defined",
                    "type": "string"
                },
                "learn": {
                    "description": "Is this language ready for learn?",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "speak": {
                    "description": "Is this language ready for speak?",
                    "type": "integer"
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                }
            }
        },
        "bluente_internal_courseV2_model.LearnQuiz": {
            "type": "object",
            "properties": {
                "answer_id": {
                    "type": "integer"
                },
                "options": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.LearnQuizOptions"
                    }
                },
                "question": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.LearnQuizOptions": {
            "type": "object",
            "properties": {
                "answer": {
                    "type": "boolean"
                },
                "id": {
                    "type": "integer"
                },
                "illustration": {
                    "type": "string"
                },
                "speech": {
                    "type": "string"
                },
                "word": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.LearnSegment": {
            "type": "object",
            "properties": {
                "can_access": {
                    "type": "boolean"
                },
                "text": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.LearnWordItem": {
            "type": "object",
            "properties": {
                "definition": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.Definition"
                },
                "example1": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.Example2"
                },
                "example2": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.Example2"
                },
                "is_saved_word_list": {
                    "type": "integer"
                },
                "relatedFormula": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "synonyms": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "uuid": {
                    "type": "string"
                },
                "word": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.Word"
                },
                "word_id": {
                    "type": "integer"
                },
                "word_list": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.WordList"
                }
            }
        },
        "bluente_internal_courseV2_model.Lesson": {
            "type": "object",
            "properties": {
                "app_id": {
                    "description": "app id type,Bluente=10000",
                    "type": "integer"
                },
                "beta": {
                    "description": "is this lesson beta",
                    "type": "integer"
                },
                "code": {
                    "description": "the unique course code",
                    "type": "string"
                },
                "completed_time": {
                    "type": "integer"
                },
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "deleted": {
                    "description": "1=deleted",
                    "type": "integer"
                },
                "desc": {
                    "description": "desc of the lesson, eg Easy Practice",
                    "type": "string"
                },
                "extra_config": {
                    "description": "extra config for this lesson",
                    "allOf": [
                        {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.LessonExtraConfig"
                        }
                    ]
                },
                "finished": {
                    "type": "integer"
                },
                "icon": {
                    "description": "the icon of lesson",
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "learn_terms": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "level": {
                    "description": "level of this lesson",
                    "type": "integer"
                },
                "lock": {
                    "description": "is this lesson locked",
                    "type": "integer"
                },
                "paid": {
                    "description": "is this lesson need to paid",
                    "type": "integer"
                },
                "practice_count": {
                    "description": "practice count will generated by word ids",
                    "type": "integer"
                },
                "score": {
                    "type": "integer"
                },
                "sort": {
                    "description": "sort of this lession within certain level",
                    "type": "integer"
                },
                "title": {
                    "description": "title of the lesson, eg Leson 1",
                    "type": "string"
                },
                "total_count": {
                    "type": "integer"
                },
                "type": {
                    "description": "0=lesson, 10=review",
                    "type": "integer"
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "uuid": {
                    "description": "course internal id from monogo field  uuid",
                    "type": "string"
                },
                "word_ids": {
                    "description": "a array of bl_learn_word.word_id as a question options, will also need fill learn_terms in a text array",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "bluente_internal_courseV2_model.LessonExtraConfig": {
            "type": "object",
            "properties": {
                "difficulties": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "is_new": {
                    "type": "boolean"
                },
                "passing_msg_count": {
                    "type": "integer"
                }
            }
        },
        "bluente_internal_courseV2_model.LessonLevel": {
            "type": "object",
            "properties": {
                "app_id": {
                    "description": "app id type,Bluente=10000",
                    "type": "integer"
                },
                "average_score": {
                    "type": "integer"
                },
                "code": {
                    "description": "the unique course code",
                    "type": "string"
                },
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "deleted": {
                    "description": "1=deleted",
                    "type": "integer"
                },
                "desc": {
                    "description": "icon i click popup tips",
                    "type": "string"
                },
                "extra_config": {
                    "description": "extra config for this lesson level",
                    "allOf": [
                        {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.ExtraConfig"
                        }
                    ]
                },
                "finished_count": {
                    "type": "integer"
                },
                "icon": {
                    "description": "the icon of level",
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "lesson_count": {
                    "description": "number of lessons",
                    "type": "integer"
                },
                "level": {
                    "description": "level of the lesson practice difficulty, 1~3 level",
                    "type": "integer"
                },
                "lock": {
                    "description": "is this level locked",
                    "type": "integer"
                },
                "passing_score": {
                    "type": "integer"
                },
                "title": {
                    "description": "level of the word practice difficulty, 1~10 level",
                    "type": "string"
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "uuid": {
                    "description": "learn internal id from monogo field cousrse.moduleuuid",
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.LessonPracticeReq": {
            "type": "object",
            "properties": {
                "code": {
                    "description": "course code",
                    "type": "string"
                },
                "id": {
                    "description": "lesson id",
                    "type": "integer"
                },
                "learn_word": {
                    "description": "only for role play",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "msg_count": {
                    "description": "only for role play",
                    "type": "integer"
                },
                "practices": {
                    "description": "example: [{'word_id':bool}],the array sequence is the practice sequence, the key is practice question word id, and the value is the practice result that answer is correct or not.",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "boolean"
                        }
                    }
                },
                "word_id": {
                    "description": "flashcard word id, reserve field, ignore it",
                    "type": "integer"
                }
            }
        },
        "bluente_internal_courseV2_model.LessonPracticeRsp": {
            "type": "object",
            "properties": {
                "flashcard": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.LearnWordItem"
                    }
                },
                "practice": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.Practice"
                    }
                }
            }
        },
        "bluente_internal_courseV2_model.LessonScoreRsp": {
            "type": "object",
            "properties": {
                "color": {
                    "type": "string"
                },
                "correct_practice": {
                    "type": "integer"
                },
                "score": {
                    "type": "integer"
                },
                "total_practice": {
                    "type": "integer"
                },
                "trophy_img": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.NameSet": {
            "type": "object",
            "properties": {
                "learn_name": {
                    "type": "string"
                },
                "speak_name": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.OnboardingPreference": {
            "type": "object",
            "properties": {
                "complete": {
                    "description": "final steps confirm",
                    "type": "integer"
                },
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "goals": {
                    "description": "goal",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "id": {
                    "type": "integer"
                },
                "industries": {
                    "description": "industries",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "industry": {
                    "description": "industry @deprecated",
                    "type": "string"
                },
                "interests": {
                    "description": "an array of interest",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "learn_language": {
                    "description": "lang of this user",
                    "type": "string"
                },
                "motivation": {
                    "description": "motivation",
                    "type": "string"
                },
                "occupation": {
                    "description": "occupations",
                    "type": "string"
                },
                "speak_language": {
                    "description": "lang of user speak",
                    "type": "string"
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "user_id": {
                    "description": "the user udid",
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.Organization": {
            "type": "object",
            "properties": {
                "contact_email": {
                    "type": "string"
                },
                "contact_person": {
                    "type": "string"
                },
                "contact_phone": {
                    "type": "string"
                },
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "extra_config": {
                    "description": "extra config",
                    "allOf": [
                        {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.ExtraConfig"
                        }
                    ]
                },
                "id": {
                    "type": "integer"
                },
                "invoice_enable": {
                    "description": "allow invoice generation",
                    "type": "integer"
                },
                "name": {
                    "description": "name of organization",
                    "type": "string"
                },
                "profile_headers": {
                    "description": "profile headers are key value pairs that links the company various company information that is translated to other languages",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.ProfileHeader"
                    }
                },
                "type": {
                    "description": "type of organization",
                    "type": "string"
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "user_role": {
                    "type": "string"
                },
                "uuid": {
                    "description": "uuid of the organization",
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.Practice": {
            "type": "object",
            "properties": {
                "answer_id": {
                    "type": "integer"
                },
                "contextualRecognition_answers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.WordOption"
                    }
                },
                "contextualRecognition_options": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.WordOption"
                    }
                },
                "contextualRecognition_outputType": {
                    "type": "string"
                },
                "contextualRecognition_words": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.ContextualRecognitionPair"
                    }
                },
                "difficulty": {
                    "description": "for debug",
                    "type": "integer"
                },
                "explanation": {
                    "type": "string"
                },
                "fillInTheBlank_answers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.WordOption"
                    }
                },
                "fillInTheBlank_options": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.WordOption"
                    }
                },
                "fillInTheBlank_outputType": {
                    "type": "string"
                },
                "fillInTheBlank_questions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "hint": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "instruction": {
                    "type": "string"
                },
                "mcq_answer": {
                    "type": "string"
                },
                "mcq_assets": {
                    "type": "string"
                },
                "mcq_options": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.WordOption"
                    }
                },
                "mcq_question": {
                    "type": "string"
                },
                "mcq_speech": {
                    "type": "string"
                },
                "picture_match": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.LearnQuiz"
                },
                "practice_quote": {
                    "type": "string"
                },
                "sentence_construct": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.SentenceConstruct"
                },
                "sub_type": {
                    "description": "for debug",
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "wordMatch_options": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.WordOption"
                    }
                },
                "wordMatch_question_answer": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.WordMatchQuestionAnswer"
                    }
                }
            }
        },
        "bluente_internal_courseV2_model.ProfileDescription": {
            "type": "object",
            "properties": {
                "audio": {
                    "description": "Audio asset of the description text in the particular language",
                    "type": "string"
                },
                "text": {
                    "description": "Text description of the header in the particular language",
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.ProfileHeader": {
            "type": "object",
            "properties": {
                "description": {
                    "description": "language as key, description for each header in different language",
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.ProfileDescription"
                    }
                },
                "header": {
                    "description": "The header of of the profile",
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.RolePlayRsp": {
            "type": "object",
            "properties": {
                "passing_msg_count": {
                    "type": "integer"
                },
                "roles": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.DisplayItem"
                    }
                },
                "show_float_gate": {
                    "type": "boolean"
                },
                "ticket_left": {
                    "type": "integer"
                }
            }
        },
        "bluente_internal_courseV2_model.ScenarioRsp": {
            "type": "object",
            "properties": {
                "ai_role": {
                    "type": "string"
                },
                "context": {
                    "type": "string"
                },
                "keywords": {
                    "type": "string"
                },
                "learn_word": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "location": {
                    "type": "string"
                },
                "raw_msgs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "starting_text": {
                    "type": "string"
                },
                "starting_text_audio": {
                    "type": "string"
                },
                "user_task": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.SentenceConstruct": {
            "type": "object",
            "properties": {
                "options": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.SentenceItem"
                    }
                },
                "question": {
                    "type": "string"
                },
                "speech": {
                    "type": "string"
                },
                "word_id": {
                    "type": "integer"
                }
            }
        },
        "bluente_internal_courseV2_model.SentenceItem": {
            "type": "object",
            "properties": {
                "seq": {
                    "type": "integer"
                },
                "sub_sentence": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.TagItem": {
            "type": "object",
            "properties": {
                "icon_url": {
                    "type": "string"
                },
                "name": {
                    "description": "tag name which is used as key or id",
                    "type": "string"
                },
                "title": {
                    "description": "tag title which is used as display name for multi-language",
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.TranslateRsp": {
            "type": "object",
            "properties": {
                "raw_msgs": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "translated": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.UserConfig": {
            "type": "object",
            "properties": {
                "app_id": {
                    "description": "Bluente=10000",
                    "type": "integer"
                },
                "config": {
                    "description": "设置内容（json格式）",
                    "allOf": [
                        {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.ExtraConfig"
                        }
                    ]
                },
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "deleted": {
                    "description": "1=deleted",
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "user_id": {
                    "description": "user id, format is uuid",
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.UserCourseProgress": {
            "type": "object",
            "properties": {
                "app_id": {
                    "description": "Bluente=10000",
                    "type": "integer"
                },
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "deleted": {
                    "description": "1=deleted",
                    "type": "integer"
                },
                "extra_config": {
                    "description": "extra config",
                    "allOf": [
                        {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.ExtraConfig"
                        }
                    ]
                },
                "id": {
                    "type": "integer"
                },
                "immerse": {
                    "description": "immerse progress",
                    "allOf": [
                        {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.UserPracticeRecord"
                        }
                    ]
                },
                "immerse_speech": {
                    "description": "immerse speech progress",
                    "allOf": [
                        {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.UserPracticeRecord"
                        }
                    ]
                },
                "language": {
                    "description": "course lang of learning",
                    "type": "string"
                },
                "last_segment": {
                    "description": "last access segment of the course",
                    "type": "string"
                },
                "learn_word": {
                    "description": "a map of the learn word record",
                    "allOf": [
                        {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.UserLearnWordRecord"
                        }
                    ]
                },
                "lesson": {
                    "description": "lesson progress",
                    "allOf": [
                        {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.ExtraConfig"
                        }
                    ]
                },
                "practice": {
                    "description": "practice progress",
                    "allOf": [
                        {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.UserPracticeRecord"
                        }
                    ]
                },
                "practice_speech": {
                    "description": "practice speech progress",
                    "allOf": [
                        {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.UserPracticeRecord"
                        }
                    ]
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "user_id": {
                    "description": "user id, format is uuid",
                    "type": "string"
                },
                "uuid": {
                    "description": "course id of mongo, for migration, unique",
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.UserLearnWordRecord": {
            "type": "object",
            "properties": {
                "last_id": {
                    "description": "the last id of the learning word in the course",
                    "type": "integer"
                },
                "last_time": {
                    "description": "the last time of the learning word in the course",
                    "allOf": [
                        {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                        }
                    ]
                },
                "max_id": {
                    "description": "the max id of the learning word in the course",
                    "type": "integer"
                },
                "progress": {
                    "description": "the learn word segment progress, format is 0-100, percentage.",
                    "type": "integer"
                }
            }
        },
        "bluente_internal_courseV2_model.UserPracticeRecord": {
            "type": "object",
            "properties": {
                "correct": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    }
                },
                "incorrect": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    }
                },
                "progress": {
                    "description": "the practice segment progress, format is 0-100, percentage.",
                    "type": "integer"
                }
            }
        },
        "bluente_internal_courseV2_model.UserResetPassword": {
            "type": "object",
            "properties": {
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "email": {
                    "description": "the user email",
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "reset": {
                    "description": "reset or not",
                    "type": "integer"
                },
                "sent": {
                    "description": "send status of email delivery",
                    "type": "integer"
                },
                "token": {
                    "description": "validator token",
                    "type": "string"
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "user_id": {
                    "description": "the user udid",
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.UserWordProgress": {
            "type": "object",
            "properties": {
                "illustration": {
                    "type": "string"
                },
                "learn": {
                    "type": "string"
                },
                "progress": {
                    "type": "integer"
                },
                "speak": {
                    "type": "string"
                },
                "speak_speech": {
                    "description": "some pronounce need to be original pronounce.",
                    "type": "string"
                },
                "speech": {
                    "type": "string"
                },
                "word_id": {
                    "type": "integer"
                }
            }
        },
        "bluente_internal_courseV2_model.UserWordProgressReq": {
            "type": "object",
            "properties": {
                "uuid": {
                    "type": "string"
                },
                "word_id": {
                    "type": "integer"
                }
            }
        },
        "bluente_internal_courseV2_model.Word": {
            "type": "object",
            "properties": {
                "illustration": {
                    "type": "string"
                },
                "learn": {
                    "type": "string"
                },
                "speak": {
                    "type": "string"
                },
                "speak_speech": {
                    "description": "some pronounce need to be original pronounce.",
                    "type": "string"
                },
                "speech": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.WordList": {
            "type": "object",
            "properties": {
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "deleted": {
                    "description": "1=deleted",
                    "type": "integer"
                },
                "folder_ids": {
                    "description": "an array of int to hold which folder this word belong to",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "id": {
                    "type": "integer"
                },
                "language": {
                    "description": "course lang defined",
                    "type": "string"
                },
                "org_data": {
                    "description": "the original data of item when save",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "type": {
                    "description": "the type of collection item, learn or glossary",
                    "type": "string"
                },
                "uniq_key": {
                    "description": "the uniqu key extract from org_data",
                    "type": "string"
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "user_id": {
                    "description": "the user udid",
                    "type": "string"
                },
                "word": {
                    "description": "the word user fav",
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.WordListFeaturedFolder": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string"
                },
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "deleted": {
                    "description": "1=deleted",
                    "type": "integer"
                },
                "folder_name": {
                    "description": "the word folder name",
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "image_url": {
                    "description": "the cover of this list",
                    "type": "string"
                },
                "saved_count": {
                    "description": "how many items are saved to this folder",
                    "type": "integer"
                },
                "tags": {
                    "description": "previously tags in mongo, also call industries",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "topic": {
                    "description": "the topic of this featured list",
                    "type": "string"
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "uuid": {
                    "description": "the uuid of this course read from mongodb",
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.WordListFolder": {
            "type": "object",
            "properties": {
                "category_id": {
                    "description": "categories id",
                    "type": "integer"
                },
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "deleted": {
                    "description": "1=deleted",
                    "type": "integer"
                },
                "folder_name": {
                    "description": "the word folder name",
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "image_url": {
                    "description": "the cover of this list",
                    "type": "string"
                },
                "saved_count": {
                    "description": "how many items are saved to this folder",
                    "type": "integer"
                },
                "type": {
                    "description": "the list type",
                    "type": "string"
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "user_id": {
                    "description": "the user udid",
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.WordMatchQuestionAnswer": {
            "type": "object",
            "properties": {
                "answer": {
                    "type": "string"
                },
                "question": {
                    "type": "string"
                },
                "speech": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_model.WordOption": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "word": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_oldmodel.Audit": {
            "type": "object",
            "properties": {
                "createdAt": {
                    "type": "string"
                },
                "createdBy": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                },
                "updatedBy": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_oldmodel.CourseAsset": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "hex": {
                    "type": "string"
                },
                "image_url_v2": {
                    "type": "string"
                },
                "pop": {
                    "type": "string"
                },
                "tile": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_oldmodel.CourseResponse": {
            "type": "object",
            "required": [
                "chinesename",
                "courseCode",
                "description",
                "name"
            ],
            "properties": {
                "additionalInformation": {
                    "type": "string"
                },
                "assets": {
                    "$ref": "#/definitions/bluente_internal_courseV2_oldmodel.CourseAsset"
                },
                "audit": {
                    "$ref": "#/definitions/bluente_internal_courseV2_oldmodel.Audit"
                },
                "chinesename": {
                    "type": "string"
                },
                "courseCode": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "exampleTerms": {
                    "type": "string"
                },
                "immerse": {
                    "type": "string"
                },
                "immerseSpeech": {
                    "type": "string"
                },
                "is_saved_word_list": {
                    "type": "integer"
                },
                "learn": {
                    "type": "string"
                },
                "level": {
                    "type": "string"
                },
                "lock": {
                    "type": "boolean"
                },
                "modules": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_oldmodel.Module"
                    }
                },
                "name": {
                    "type": "string"
                },
                "paid": {
                    "type": "boolean"
                },
                "practice": {
                    "type": "string"
                },
                "practiceSpeech": {
                    "type": "string"
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "topic": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string"
                },
                "word_list": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.WordList"
                }
            }
        },
        "bluente_internal_courseV2_oldmodel.Module": {
            "type": "object",
            "required": [
                "name",
                "type"
            ],
            "properties": {
                "asset": {
                    "type": "string"
                },
                "audit": {
                    "$ref": "#/definitions/bluente_internal_courseV2_oldmodel.Audit"
                },
                "courseCode": {
                    "type": "string"
                },
                "courseUUID": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_service.FeatureAccessResult": {
            "type": "object",
            "properties": {
                "enabled": {
                    "type": "boolean"
                },
                "extra_config": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.FeatureAccessExtraConfig"
                },
                "feature_key": {
                    "type": "string"
                },
                "source": {
                    "description": "SYSTEM, ORG, or USER",
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_service.FeatureConflictResult": {
            "type": "object",
            "properties": {
                "feature_key": {
                    "type": "string"
                },
                "reason": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_service.TranslationCapabilities": {
            "type": "object",
            "properties": {
                "features": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_service.TranslationFeatureCapability"
                    }
                },
                "policy_version": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_service.TranslationFeatureCapability": {
            "type": "object",
            "properties": {
                "active": {
                    "type": "boolean"
                },
                "applicable_document_modes": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "applicable_file_types": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "conflicts_with": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_service.FeatureConflictResult"
                    }
                },
                "description": {
                    "type": "string"
                },
                "display_name": {
                    "type": "string"
                },
                "enabled": {
                    "type": "boolean"
                },
                "extra_config": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.FeatureAccessExtraConfig"
                },
                "feature_key": {
                    "type": "string"
                },
                "grantable": {
                    "type": "boolean"
                },
                "selection_group": {
                    "type": "string"
                },
                "selection_type": {
                    "type": "string"
                },
                "sort_order": {
                    "type": "integer"
                },
                "source": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_courseV2_service.WechatPayOrderResponse": {
            "type": "object",
            "properties": {
                "mch_id": {
                    "type": "string"
                },
                "order_no": {
                    "type": "string"
                },
                "pay_info": {
                    "$ref": "#/definitions/wechat.AppPayParams"
                }
            }
        },
        "bluente_internal_ocr_service.MappedReceiptOCRData": {
            "type": "object",
            "properties": {
                "items_breakdown": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_pkg_receiptocr.ReceiptItem"
                    }
                },
                "receipt_details": {
                    "$ref": "#/definitions/bluente_internal_pkg_receiptocr.ReceiptDetails"
                },
                "receipt_type": {
                    "$ref": "#/definitions/bluente_internal_pkg_receiptocr.ReceiptType"
                }
            }
        },
        "bluente_internal_pkg_receiptocr.AddressValue": {
            "type": "object",
            "properties": {
                "city": {
                    "description": "Name of city, town, village, etc.",
                    "type": "string"
                },
                "cityDistrict": {
                    "description": "Districts or boroughs within a city, such as Brooklyn in New York City or City of Westminster in London.",
                    "type": "string"
                },
                "countryRegion": {
                    "description": "Country/region.",
                    "type": "string"
                },
                "house": {
                    "description": "Build name, such as World Trade Center.",
                    "type": "string"
                },
                "houseNumber": {
                    "description": "House or building number.",
                    "type": "string"
                },
                "level": {
                    "description": "Floor number, such as 3F.",
                    "type": "string"
                },
                "poBox": {
                    "description": "Post office box number.",
                    "type": "string"
                },
                "postalCode": {
                    "description": "Postal code used for mail sorting.",
                    "type": "string"
                },
                "road": {
                    "description": "Street name.",
                    "type": "string"
                },
                "state": {
                    "description": "First-level administrative division.",
                    "type": "string"
                },
                "stateDistrict": {
                    "description": "Second-level administrative division used in certain locales.",
                    "type": "string"
                },
                "streetAddress": {
                    "description": "Street-level address, excluding city, state, countryRegion, and postalCode.",
                    "type": "string"
                },
                "suburb": {
                    "description": "Unofficial neighborhood name, like Chinatown.",
                    "type": "string"
                },
                "unit": {
                    "description": "Apartment or office number",
                    "type": "string"
                }
            }
        },
        "bluente_internal_pkg_receiptocr.CurrencyValue": {
            "type": "object",
            "properties": {
                "amount": {
                    "description": "Currency amount.",
                    "type": "number"
                },
                "currencyCode": {
                    "description": "Resolved currency code (ISO 4217), if any.",
                    "type": "string"
                },
                "currencySymbol": {
                    "description": "Currency symbol label, if any.",
                    "type": "string"
                }
            }
        },
        "bluente_internal_pkg_receiptocr.ReceiptDetails": {
            "type": "object",
            "properties": {
                "arrivalDate": {
                    "type": "string"
                },
                "country": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "departureDate": {
                    "type": "string"
                },
                "invoiceNumber": {
                    "type": "string"
                },
                "merchantAddress": {
                    "$ref": "#/definitions/bluente_internal_pkg_receiptocr.AddressValue"
                },
                "merchantAliases": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "merchantName": {
                    "type": "string"
                },
                "merchantPhoneNumber": {
                    "type": "string"
                },
                "subtotal": {
                    "type": "number"
                },
                "taxDetails": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_pkg_receiptocr.CurrencyValue"
                    }
                },
                "tip": {
                    "type": "number"
                },
                "total": {
                    "type": "number"
                },
                "totalTax": {
                    "type": "number"
                },
                "transactionDate": {
                    "type": "string"
                },
                "transactionTime": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_pkg_receiptocr.ReceiptItem": {
            "type": "object",
            "properties": {
                "category": {
                    "description": "Item category\n\nApplicable for: ReceiptTypeHotel",
                    "type": "string"
                },
                "date": {
                    "description": "Item date\n\nApplicable for: ReceiptTypeHotel",
                    "type": "string"
                },
                "description": {
                    "description": "Item description\n\nApplicable for: ReceiptTypeGeneric, ReceiptTypeRetailMeal, ReceiptTypeCreditCard, ReceiptTypeGas, ReceiptTypeParking, ReceiptTypeHotel",
                    "type": "string"
                },
                "price": {
                    "description": "Individual price of each item unit\n\nApplicable for: ReceiptTypeGeneric, ReceiptTypeRetailMeal, ReceiptTypeCreditCard, ReceiptTypeGas, ReceiptTypeParking",
                    "type": "number"
                },
                "productCode": {
                    "description": "Product code, product number, or SKU associated with the specific line item\n\nApplicable for: ReceiptTypeGeneric, ReceiptTypeRetailMeal, ReceiptTypeCreditCard, ReceiptTypeGas, ReceiptTypeParking",
                    "type": "string"
                },
                "quantity": {
                    "description": "Quantity of each item\n\nApplicable for: ReceiptTypeGeneric, ReceiptTypeRetailMeal, ReceiptTypeCreditCard, ReceiptTypeGas, ReceiptTypeParking",
                    "type": "number"
                },
                "quantityUnit": {
                    "description": "Quantity unit of each item\n\nApplicable for: ReceiptTypeGeneric, ReceiptTypeRetailMeal, ReceiptTypeCreditCard, ReceiptTypeGas, ReceiptTypeParking",
                    "type": "string"
                },
                "totalPrice": {
                    "description": "Total price of line item\n\nApplicable for: ReceiptTypeGeneric, ReceiptTypeRetailMeal, ReceiptTypeCreditCard, ReceiptTypeGas, ReceiptTypeParking, ReceiptTypeHotel",
                    "type": "number"
                }
            }
        },
        "bluente_internal_pkg_receiptocr.ReceiptType": {
            "type": "string",
            "enum": [
                "Receipt",
                "receipt",
                "receipt.retailMeal",
                "receipt.creditCard",
                "receipt.gas",
                "receipt.parking",
                "receipt.hotel"
            ],
            "x-enum-comments": {
                "ReceiptTypeCreditCard": "https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/concept-receipt?view=doc-intel-3.1.0#receiptcreditcard",
                "ReceiptTypeGas": "https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/concept-receipt?view=doc-intel-3.1.0#receiptgas",
                "ReceiptTypeGeneric": "https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/concept-receipt?view=doc-intel-3.1.0#receipt",
                "ReceiptTypeGeneric2": "https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/concept-receipt?view=doc-intel-3.1.0#receipt",
                "ReceiptTypeHotel": "https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/concept-receipt?view=doc-intel-3.1.0#receipthotel",
                "ReceiptTypeParking": "https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/concept-receipt?view=doc-intel-3.1.0#receiptparking",
                "ReceiptTypeRetailMeal": "https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/concept-receipt?view=doc-intel-3.1.0#receiptretailmeal"
            },
            "x-enum-varnames": [
                "ReceiptTypeGeneric",
                "ReceiptTypeGeneric2",
                "ReceiptTypeRetailMeal",
                "ReceiptTypeCreditCard",
                "ReceiptTypeGas",
                "ReceiptTypeParking",
                "ReceiptTypeHotel"
            ]
        },
        "bluente_internal_pkg_storage_s3.MultipartPart": {
            "type": "object",
            "properties": {
                "etag": {
                    "type": "string"
                },
                "part_number": {
                    "type": "integer"
                }
            }
        },
        "bluente_internal_platform_utils.BaseListItem": {
            "type": "object",
            "properties": {
                "list": {
                    "description": "It is a list of elements"
                },
                "next_token": {
                    "description": "next_token for page list",
                    "type": "string"
                }
            }
        },
        "bluente_internal_platform_utils.BaseListResponse": {
            "type": "object",
            "properties": {
                "code": {
                    "description": "0=success，only parse data when code=0",
                    "type": "integer",
                    "example": 0
                },
                "data": {
                    "description": "real data",
                    "allOf": [
                        {
                            "$ref": "#/definitions/bluente_internal_platform_utils.BaseListItem"
                        }
                    ]
                },
                "message": {
                    "description": "tip message",
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "bluente_internal_platform_utils.BaseResponse": {
            "type": "object",
            "properties": {
                "code": {
                    "description": "0=success，only parse data when code=0",
                    "type": "integer",
                    "example": 0
                },
                "data": {
                    "description": "real data"
                },
                "message": {
                    "description": "tip message",
                    "type": "string",
                    "example": "success"
                }
            }
        },
        "bluente_internal_rpc_doc.Cell": {
            "type": "object",
            "properties": {
                "paragraphs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_rpc_doc.Paragraph"
                    }
                }
            }
        },
        "bluente_internal_rpc_doc.ListLabel": {
            "type": "object",
            "properties": {
                "label": {
                    "type": "string"
                },
                "value": {
                    "type": "integer"
                }
            }
        },
        "bluente_internal_rpc_doc.Node": {
            "type": "object",
            "properties": {
                "paragraph": {
                    "$ref": "#/definitions/bluente_internal_rpc_doc.Paragraph"
                },
                "table": {
                    "$ref": "#/definitions/bluente_internal_rpc_doc.Table"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_rpc_doc.Paragraph": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "string"
                },
                "list_label": {
                    "$ref": "#/definitions/bluente_internal_rpc_doc.ListLabel"
                }
            }
        },
        "bluente_internal_rpc_doc.Row": {
            "type": "object",
            "properties": {
                "cells": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_rpc_doc.Cell"
                    }
                }
            }
        },
        "bluente_internal_rpc_doc.Table": {
            "type": "object",
            "properties": {
                "rows": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_rpc_doc.Row"
                    }
                }
            }
        },
        "bluente_internal_thirdpartystatus_model.StatusCheckResponse": {
            "type": "object",
            "properties": {
                "checks": {
                    "type": "object",
                    "additionalProperties": true
                },
                "code": {
                    "description": "0: success, 1: error",
                    "type": "integer"
                },
                "time": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_translate_model.DocItem": {
            "type": "object",
            "properties": {
                "ai_rewrite": {
                    "type": "string"
                },
                "highlights_text": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_translate_model.HighlightItem"
                    }
                },
                "section_id": {
                    "type": "integer"
                },
                "source_node": {
                    "$ref": "#/definitions/bluente_internal_rpc_doc.Node"
                },
                "target_node": {
                    "$ref": "#/definitions/bluente_internal_rpc_doc.Node"
                }
            }
        },
        "bluente_internal_translate_model.EditDocReq": {
            "type": "object",
            "required": [
                "id",
                "seq"
            ],
            "properties": {
                "cell_index": {
                    "description": "take it if type is TABLE",
                    "type": "integer"
                },
                "content": {
                    "description": "new content (whole paragraph will be replaced)",
                    "type": "string"
                },
                "id": {
                    "description": "translation task id",
                    "type": "integer"
                },
                "paragraph_index": {
                    "type": "integer"
                },
                "row_index": {
                    "description": "take it if type is TABLE",
                    "type": "integer"
                },
                "seq": {
                    "description": "paragraph sequence in the translated file",
                    "type": "integer"
                },
                "type": {
                    "description": "take it with PARAGRAPH/TABLE",
                    "type": "string"
                },
                "version": {
                    "description": "edit version",
                    "type": "integer"
                }
            }
        },
        "bluente_internal_translate_model.EditDocRsp": {
            "type": "object",
            "properties": {
                "version": {
                    "description": "next version to edit",
                    "type": "integer"
                }
            }
        },
        "bluente_internal_translate_model.HighlightItem": {
            "type": "object",
            "properties": {
                "source_term": {
                    "type": "string"
                },
                "synonyms": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_translate_model.SynonymItem"
                    }
                },
                "target_term": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_translate_model.ParsedDocRsp": {
            "type": "object",
            "properties": {
                "Title": {
                    "description": "source document title",
                    "type": "string"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_translate_model.DocItem"
                    }
                },
                "next_token": {
                    "type": "string"
                },
                "source_language": {
                    "type": "string"
                },
                "target_language": {
                    "type": "string"
                },
                "total_section": {
                    "type": "integer"
                },
                "total_suggestion": {
                    "type": "integer"
                }
            }
        },
        "bluente_internal_translate_model.SynonymItem": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string"
                },
                "tag": {
                    "type": "string"
                },
                "term": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_translate_model.TranslateRequest": {
            "type": "object",
            "properties": {
                "action": {
                    "type": "string"
                },
                "client_id": {
                    "type": "integer"
                },
                "features": {
                    "$ref": "#/definitions/bluente_internal_translate_model.TranslationFeatureConfigs"
                },
                "font_name": {
                    "type": "string"
                },
                "from": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "is_only_extract": {
                    "type": "boolean"
                },
                "is_use_bilingual": {
                    "type": "boolean"
                },
                "is_use_custom_glossary": {
                    "type": "boolean"
                },
                "is_use_glossary": {
                    "type": "boolean"
                },
                "is_use_table_layout_enhancement": {
                    "type": "boolean"
                },
                "is_vertical_bilingual": {
                    "type": "boolean"
                },
                "meta_data": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "namespace": {
                    "type": "string"
                },
                "namespaces": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "page_range": {
                    "type": "string"
                },
                "scanned_option": {
                    "type": "integer"
                },
                "selected_engine": {
                    "type": "string"
                },
                "to": {
                    "type": "string"
                },
                "to_type": {
                    "type": "string"
                },
                "translate_image": {
                    "type": "boolean"
                }
            }
        },
        "bluente_internal_translate_model.TranslationFeatureConfigs": {
            "type": "object",
            "additionalProperties": {
                "type": "array",
                "items": {
                    "type": "integer"
                }
            }
        },
        "bluente_internal_translate_model.UserGlossary": {
            "type": "object",
            "properties": {
                "examples": {
                    "description": "usage examples",
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "scene": {
                    "description": "scene/domain for disambiguation",
                    "type": "string"
                },
                "source_lang": {
                    "description": "lang of the source characters",
                    "type": "string"
                },
                "source_text": {
                    "description": "source text",
                    "type": "string"
                },
                "target_lang": {
                    "description": "lang of the target characters",
                    "type": "string"
                },
                "target_text": {
                    "description": "target text",
                    "type": "string"
                }
            }
        },
        "bluente_internal_translate_service.AutoDetectCandidate": {
            "type": "object",
            "properties": {
                "confidence": {
                    "type": "number"
                },
                "evidence": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "language": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_translate_service.AutoDetectResponse": {
            "type": "object",
            "properties": {
                "candidates": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_translate_service.AutoDetectCandidate"
                    }
                },
                "language": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_translate_service.TranslateCheckStatus": {
            "type": "object",
            "properties": {
                "cache_file_status": {
                    "type": "string"
                },
                "filename": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "internal_error_code": {
                    "description": "internal error code that will be used to sync to amplitude(316,312 etc)",
                    "type": "integer"
                },
                "internal_error_msg": {
                    "description": "internal error msg that will be used to sync to amplitude(316,312 etc)",
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "original_page_count": {
                    "description": "original page count of the file",
                    "type": "integer"
                },
                "pageCount": {
                    "type": "integer"
                },
                "serviceCode": {
                    "type": "integer"
                },
                "show_watermark": {
                    "description": "show watermark in the file",
                    "type": "boolean"
                },
                "source_lang": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "sub_task_statuses": {
                    "description": "Status of sub-tasks for multi-file upload",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_translate_service.TranslateCheckStatus"
                    }
                },
                "target_lang": {
                    "type": "string"
                },
                "updatedAt": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.AddOrganizationMemberRequestV2": {
            "type": "object",
            "required": [
                "email",
                "nick_name",
                "role"
            ],
            "properties": {
                "email": {
                    "type": "string"
                },
                "nick_name": {
                    "type": "string"
                },
                "role": {
                    "type": "string",
                    "enum": [
                        "admin",
                        "staff",
                        "viewer",
                        "collaborator"
                    ]
                }
            }
        },
        "bluente_internal_user_model.AuthLoginReq": {
            "type": "object",
            "required": [
                "app_id",
                "code"
            ],
            "properties": {
                "app_id": {
                    "description": "登录AppID Bluente 模式设置10000",
                    "type": "integer"
                },
                "code": {
                    "description": "如果是微信小程序，这个是code，",
                    "type": "string"
                },
                "platform": {
                    "description": "android 还是 ios",
                    "type": "string"
                },
                "referee_id": {
                    "description": "推荐人ID",
                    "type": "integer"
                },
                "scene": {
                    "description": "微信登录用户的场景值",
                    "type": "integer"
                },
                "src": {
                    "description": "登录来源",
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.ChangeMyLangRequest": {
            "type": "object",
            "required": [
                "learn_language",
                "speak_language"
            ],
            "properties": {
                "learn_language": {
                    "type": "string"
                },
                "speak_language": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.CreateUserAPIKeyRequest": {
            "type": "object",
            "properties": {
                "name": {
                    "description": "API Key 名称，可以为空",
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.GenerateReferralCodeRequest": {
            "type": "object",
            "properties": {
                "email": {
                    "description": "optional, if provided, the email will be the user's email",
                    "type": "string"
                },
                "request_id": {
                    "type": "integer"
                }
            }
        },
        "bluente_internal_user_model.GetInviteDetailsRequest": {
            "type": "object",
            "properties": {
                "invite_code": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.GetOrganizationMembersResponseV2": {
            "type": "object",
            "properties": {
                "members": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_user_model.OrganizationMembersItemV2"
                    }
                }
            }
        },
        "bluente_internal_user_model.GetUserAPIKeysResponse": {
            "type": "object",
            "properties": {
                "api_keys": {
                    "description": "用户的 API Key 列表（脱敏）",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_user_model.UserAPIKeyMaskedResponse"
                    }
                }
            }
        },
        "bluente_internal_user_model.GoogleAuthResponse": {
            "type": "object",
            "properties": {
                "access_token": {
                    "type": "string"
                },
                "apiKey": {
                    "type": "string"
                },
                "appName": {
                    "type": "string"
                },
                "createAt": {
                    "description": "miliseconds",
                    "type": "string"
                },
                "displayName": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "emailVerified": {
                    "type": "boolean"
                },
                "id_token": {
                    "type": "string"
                },
                "lastLoginAt": {
                    "description": "miliseconds",
                    "type": "string"
                },
                "providerData": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "displayName": {
                                "type": "string"
                            },
                            "email": {
                                "type": "string"
                            },
                            "photoUrl": {
                                "type": "string"
                            },
                            "providerId": {
                                "type": "string"
                            },
                            "uid": {
                                "type": "string"
                            }
                        }
                    }
                },
                "stsTokenManager": {
                    "type": "object",
                    "additionalProperties": true
                }
            }
        },
        "bluente_internal_user_model.LoginUser": {
            "type": "object",
            "properties": {
                "activated": {
                    "type": "integer"
                },
                "audit": {
                    "$ref": "#/definitions/bluente_internal_courseV2_oldmodel.Audit"
                },
                "email": {
                    "type": "string"
                },
                "fullName": {
                    "type": "string"
                },
                "lastCourse": {
                    "type": "string"
                },
                "lastCourses": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "lastLogin": {
                    "type": "string"
                },
                "lastModule": {
                    "type": "string"
                },
                "lastModules": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "role": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "translationExpireAt": {
                    "type": "string"
                },
                "translationPages": {
                    "type": "integer"
                },
                "type": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.MicrosoftAuthResponse": {
            "type": "object",
            "properties": {
                "orgInfo": {
                    "type": "object",
                    "additionalProperties": true
                }
            }
        },
        "bluente_internal_user_model.OrganizationClientRequestV2": {
            "type": "object",
            "properties": {
                "address": {
                    "type": "string"
                },
                "city": {
                    "type": "string"
                },
                "client_code": {
                    "type": "string"
                },
                "client_name": {
                    "type": "string"
                },
                "state": {
                    "type": "string"
                },
                "zip_code": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.OrganizationClientUpdateRequestV2": {
            "type": "object",
            "required": [
                "id"
            ],
            "properties": {
                "address": {
                    "type": "string"
                },
                "city": {
                    "type": "string"
                },
                "client_code": {
                    "type": "string"
                },
                "client_name": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "state": {
                    "type": "string"
                },
                "zip_code": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.OrganizationInvoiceRequestV2": {
            "type": "object",
            "properties": {
                "address": {
                    "type": "string"
                },
                "amount_str": {
                    "type": "string"
                },
                "attn": {
                    "type": "string"
                },
                "city": {
                    "type": "string"
                },
                "client_code": {
                    "type": "string"
                },
                "client_name": {
                    "type": "string"
                },
                "currency": {
                    "type": "string"
                },
                "due_date": {
                    "type": "string"
                },
                "end_date": {
                    "type": "string"
                },
                "filter_date_str": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "invoice_date": {
                    "type": "string"
                },
                "page_total": {
                    "type": "number"
                },
                "page_total_str": {
                    "type": "string"
                },
                "payment_info": {
                    "type": "string"
                },
                "rate_str": {
                    "type": "string"
                },
                "special_code": {
                    "type": "string"
                },
                "start_date": {
                    "type": "string"
                },
                "state": {
                    "type": "string"
                },
                "zip_code": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.OrganizationMemberMutationResponseV2": {
            "type": "object",
            "properties": {
                "email": {
                    "type": "string"
                },
                "role": {
                    "type": "string"
                },
                "user_uuid": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.OrganizationMembersItemV2": {
            "type": "object",
            "properties": {
                "assignable_roles": {
                    "description": "roles the caller may set this member to; empty = not editable",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "email": {
                    "description": "邮箱",
                    "type": "string"
                },
                "fullname": {
                    "description": "用户昵称",
                    "type": "string"
                },
                "joined_at": {
                    "description": "加入组织的时间",
                    "type": "string"
                },
                "monthly_usage": {
                    "description": "当月Usage：该成员在组织中的READY状态的page_count当月总和",
                    "type": "integer"
                },
                "role": {
                    "description": "在组织的role",
                    "type": "string"
                },
                "total_usage": {
                    "description": "总Usage：该成员在组织中的READY状态的page_count总和",
                    "type": "integer"
                },
                "user_uuid": {
                    "description": "用户uuid",
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.OrganizationProfileDescriptionV2": {
            "type": "object",
            "properties": {
                "audio": {
                    "type": "string"
                },
                "text": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.OrganizationProfileDisplayV2": {
            "type": "object",
            "properties": {
                "base": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_user_model.OrganizationProfileDescriptionV2"
                    }
                },
                "header": {
                    "type": "string"
                },
                "target": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_user_model.OrganizationProfileDescriptionV2"
                    }
                }
            }
        },
        "bluente_internal_user_model.OrganizationProfileRequestV2": {
            "type": "object",
            "properties": {
                "base": {
                    "type": "string"
                },
                "target": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.PasswordUpdateRequest": {
            "type": "object",
            "required": [
                "newPassword",
                "oldPassword"
            ],
            "properties": {
                "newPassword": {
                    "type": "string"
                },
                "oldPassword": {
                    "type": "string"
                },
                "platform": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.RemoveOrganizationMemberRequestV2": {
            "type": "object",
            "required": [
                "user_uuid"
            ],
            "properties": {
                "user_uuid": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.ResetPasswordVerifyRequest": {
            "type": "object",
            "required": [
                "password",
                "token"
            ],
            "properties": {
                "password": {
                    "type": "string"
                },
                "token": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.RevokeUserAPIKeyRequest": {
            "type": "object",
            "properties": {
                "api_key_id": {
                    "description": "要作废的 API Key ID",
                    "type": "integer",
                    "minimum": 0
                }
            }
        },
        "bluente_internal_user_model.UpdateOrganizationMemberRoleRequestV2": {
            "type": "object",
            "required": [
                "role",
                "user_uuid"
            ],
            "properties": {
                "role": {
                    "type": "string",
                    "enum": [
                        "admin",
                        "staff",
                        "viewer",
                        "collaborator"
                    ]
                },
                "user_uuid": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.UserAPIKeyMaskedResponse": {
            "type": "object",
            "properties": {
                "api_key": {
                    "description": "脱敏后的 API Key",
                    "type": "string"
                },
                "created_at": {
                    "description": "创建时间",
                    "type": "string"
                },
                "expire_time": {
                    "description": "过期时间",
                    "type": "integer"
                },
                "id": {
                    "description": "API Key ID",
                    "type": "integer"
                },
                "last_used_at": {
                    "description": "最后使用时间",
                    "type": "integer"
                },
                "name": {
                    "description": "API Key 名称",
                    "type": "string"
                },
                "status": {
                    "description": "0=normal, 10=expired, 20=revoked",
                    "type": "integer"
                }
            }
        },
        "bluente_internal_user_model.UserAPIKeyResponse": {
            "type": "object",
            "properties": {
                "api_key": {
                    "description": "生成的 API Key",
                    "type": "string"
                },
                "created_at": {
                    "description": "创建时间",
                    "type": "string"
                },
                "expire_time": {
                    "description": "过期时间",
                    "type": "integer"
                },
                "id": {
                    "description": "API Key ID",
                    "type": "integer"
                },
                "last_used_at": {
                    "description": "最后使用时间",
                    "type": "integer"
                },
                "name": {
                    "description": "API Key 名称",
                    "type": "string"
                },
                "status": {
                    "description": "0=normal, 10=expired, 20=revoked",
                    "type": "integer"
                }
            }
        },
        "bluente_internal_user_model.UserCoursePreferences": {
            "type": "object",
            "properties": {
                "finance": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "general": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "learning": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "bluente_internal_user_model.UserCreationRequestV2": {
            "type": "object",
            "required": [
                "email",
                "fullName",
                "password"
            ],
            "properties": {
                "country_code": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "fullName": {
                    "type": "string"
                },
                "invite_code": {
                    "type": "string"
                },
                "need_email_verify": {
                    "description": "only after email verification requirement is implemented",
                    "type": "integer"
                },
                "page": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "platform": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.UserDeleteReason": {
            "type": "object",
            "required": [
                "reason"
            ],
            "properties": {
                "reason": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.UserEmail": {
            "type": "object",
            "required": [
                "email"
            ],
            "properties": {
                "email": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.UserGoogleLoginRequest": {
            "type": "object",
            "required": [
                "token"
            ],
            "properties": {
                "invite_code": {
                    "type": "string"
                },
                "platform": {
                    "type": "string"
                },
                "select_by": {
                    "type": "string"
                },
                "token": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.UserLoginRequest": {
            "type": "object",
            "required": [
                "email",
                "password"
            ],
            "properties": {
                "email": {
                    "type": "string"
                },
                "fullName": {
                    "type": "string"
                },
                "google_auth": {
                    "$ref": "#/definitions/bluente_internal_user_model.GoogleAuthResponse"
                },
                "invite_code": {
                    "type": "string"
                },
                "microsoft_auth": {
                    "$ref": "#/definitions/bluente_internal_user_model.MicrosoftAuthResponse"
                },
                "page": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "platform": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.UserLoginResponseV2": {
            "type": "object",
            "properties": {
                "country_code": {
                    "type": "string"
                },
                "isPremium": {
                    "type": "boolean"
                },
                "is_new_user": {
                    "type": "boolean"
                },
                "jwtToken": {
                    "type": "string"
                },
                "learn_language": {
                    "type": "string"
                },
                "organization": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.Organization"
                },
                "rights": {
                    "type": "string"
                },
                "speak_language": {
                    "type": "string"
                },
                "user": {
                    "$ref": "#/definitions/bluente_internal_user_model.LoginUser"
                }
            }
        },
        "bluente_internal_user_model.UserProficiency": {
            "type": "object",
            "properties": {
                "listening": {
                    "type": "string"
                },
                "reading": {
                    "type": "string"
                },
                "speaking": {
                    "type": "string"
                },
                "writing": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.UserProfile": {
            "type": "object",
            "required": [
                "avatar"
            ],
            "properties": {
                "avatar": {
                    "type": "string"
                },
                "birthDate": {
                    "type": "string"
                },
                "chineseProficiency": {
                    "$ref": "#/definitions/bluente_internal_user_model.UserProficiency"
                },
                "coursePreferences": {
                    "$ref": "#/definitions/bluente_internal_user_model.UserCoursePreferences"
                },
                "learningReason": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "marketing": {
                    "type": "boolean"
                },
                "notification": {
                    "type": "boolean"
                },
                "notificationRecommendation": {
                    "$ref": "#/definitions/bluente_internal_user_model.UserProfileNotificationRecommendation"
                },
                "reason": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.UserProfileBirthDate": {
            "type": "object",
            "properties": {
                "day": {
                    "type": "string"
                },
                "month": {
                    "type": "string"
                },
                "year": {
                    "type": "string"
                }
            }
        },
        "bluente_internal_user_model.UserProfileNotificationRecommendation": {
            "type": "object",
            "required": [
                "recommendation"
            ],
            "properties": {
                "days": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "recommendation": {
                    "type": "boolean"
                }
            }
        },
        "bluente_internal_user_model.UserProfileRequest": {
            "type": "object",
            "required": [
                "avatar",
                "notificationRecommendation"
            ],
            "properties": {
                "avatar": {
                    "type": "string"
                },
                "birthDate": {
                    "$ref": "#/definitions/bluente_internal_user_model.UserProfileBirthDate"
                },
                "chineseProficiency": {
                    "$ref": "#/definitions/bluente_internal_user_model.UserProficiency"
                },
                "coursePreferences": {
                    "$ref": "#/definitions/bluente_internal_user_model.UserCoursePreferences"
                },
                "learningReason": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "marketing": {
                    "type": "boolean"
                },
                "notification": {
                    "type": "boolean"
                },
                "notificationRecommendation": {
                    "$ref": "#/definitions/bluente_internal_user_model.UserProfileNotificationRecommendation"
                },
                "reason": {
                    "type": "string"
                }
            }
        },
        "internal_branchio_handler.BranchIOCreateRequestBody": {
            "type": "object",
            "required": [
                "tags",
                "type"
            ],
            "properties": {
                "campaign": {
                    "type": "string"
                },
                "channel": {
                    "type": "string"
                },
                "data": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "feature": {
                    "type": "string"
                },
                "identityId": {
                    "type": "string"
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "type": {
                    "type": "integer",
                    "enum": [
                        1,
                        2
                    ]
                }
            }
        },
        "internal_branchio_handler.BranchIODeviceRequestBody": {
            "type": "object",
            "required": [
                "deviceId",
                "platform",
                "tags"
            ],
            "properties": {
                "campaign": {
                    "type": "string"
                },
                "channel": {
                    "type": "string"
                },
                "deviceId": {
                    "type": "string"
                },
                "feature": {
                    "type": "string"
                },
                "identityId": {
                    "type": "string"
                },
                "platform": {
                    "type": "string"
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "internal_client_handler.ClientLogRequestBody": {
            "type": "object",
            "properties": {
                "campaign": {
                    "description": "campaign",
                    "type": "string"
                },
                "cost_time": {
                    "description": "unit: millisecond, duration of time between sending request and reading response",
                    "type": "integer"
                },
                "curl": {
                    "description": "request curl, contain request args",
                    "type": "string"
                },
                "device_id": {
                    "description": "device_id",
                    "type": "string"
                },
                "extra_data": {
                    "description": "client other data",
                    "type": "string"
                },
                "feature": {
                    "description": "feature",
                    "type": "string"
                },
                "http_code": {
                    "description": "http code",
                    "type": "integer"
                },
                "platform": {
                    "description": "ios,android,web",
                    "type": "string"
                },
                "response_code": {
                    "description": "response code",
                    "type": "integer"
                },
                "response_data": {
                    "description": "response data",
                    "type": "string"
                },
                "url": {
                    "description": "request url",
                    "type": "string"
                },
                "user_id": {
                    "description": "user_id",
                    "type": "string"
                },
                "version": {
                    "description": "app version",
                    "type": "string"
                }
            }
        },
        "internal_courseV2_handler.BookmarkCourseRequestV2": {
            "type": "object",
            "required": [
                "code"
            ],
            "properties": {
                "code": {
                    "type": "string"
                }
            }
        },
        "internal_courseV2_handler.ChangeWordListFollowRequest": {
            "type": "object",
            "properties": {
                "folder_id": {
                    "description": "which featured folder to follow or unfollow",
                    "type": "integer"
                }
            }
        },
        "internal_courseV2_handler.CultureCourseResponse": {
            "type": "object",
            "properties": {
                "country_info": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CultureCountry"
                },
                "cultures": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.Culture"
                    }
                },
                "title": {
                    "type": "string"
                },
                "topic": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/internal_courseV2_handler.CultureCourseTopic"
                    }
                }
            }
        },
        "internal_courseV2_handler.CultureCourseTopic": {
            "type": "object",
            "properties": {
                "asset": {
                    "type": "string"
                },
                "topic": {
                    "type": "string"
                }
            }
        },
        "internal_courseV2_handler.GetAllWordListFolderResponse": {
            "type": "object",
            "properties": {
                "folder_list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.WordListFolder"
                    }
                },
                "total_folder_count": {
                    "type": "integer"
                },
                "total_saved_term_count": {
                    "type": "integer"
                }
            }
        },
        "internal_courseV2_handler.LessonResponse": {
            "type": "object",
            "properties": {
                "completed_time": {
                    "type": "integer"
                },
                "course_code": {
                    "type": "string"
                },
                "course_uuid": {
                    "type": "string"
                },
                "current_lesson_id": {
                    "type": "integer"
                },
                "current_level": {
                    "type": "integer"
                },
                "latest_level": {
                    "type": "integer"
                },
                "learn_name": {
                    "type": "string"
                },
                "lessons": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.Lesson"
                    }
                },
                "levels": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.LessonLevel"
                    }
                },
                "name": {
                    "type": "string"
                },
                "overall_progress": {
                    "type": "integer"
                },
                "paid": {
                    "type": "boolean"
                },
                "role_play": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.RolePlayRsp"
                }
            }
        },
        "internal_courseV2_handler.RecommendationCourseAfterOnboardingResponse": {
            "type": "object",
            "properties": {
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_oldmodel.CourseResponse"
                    }
                },
                "matched": {
                    "type": "integer"
                },
                "my_courses": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "my_interests": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "internal_courseV2_handler.RecommendationCourseAfterOnboardingResponseV2": {
            "type": "object",
            "properties": {
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.CourseItem"
                    }
                },
                "matched": {
                    "type": "integer"
                },
                "my_courses": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "my_interests": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "internal_courseV2_handler.RemoveWordFromFolderRequest": {
            "type": "object",
            "properties": {
                "folder_ids": {
                    "description": "if folder_id is 0, remove the word from all folders",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "words": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.WordList"
                    }
                }
            }
        },
        "internal_courseV2_handler.SaveWordToListRequest": {
            "type": "object",
            "properties": {
                "folder_ids": {
                    "description": "can save multi words to multi folders",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "words": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.WordList"
                    }
                }
            }
        },
        "internal_courseV2_handler.SaveWordsToFoldersResponse": {
            "type": "object",
            "properties": {
                "total_saved_term_count": {
                    "type": "integer"
                },
                "words": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.WordList"
                    }
                }
            }
        },
        "internal_courseV2_handler.UpdateUserConfigRequest": {
            "type": "object",
            "required": [
                "config"
            ],
            "properties": {
                "config": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.ExtraConfig"
                }
            }
        },
        "internal_courseV2_handler.WechatLoginQrcodeResponse": {
            "type": "object",
            "properties": {
                "expire_seconds": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "qrcode": {
                    "type": "string"
                }
            }
        },
        "internal_customfont.FontRecord": {
            "type": "object",
            "properties": {
                "coverage": {
                    "description": "expanded at read time, never stored",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "family_name": {
                    "type": "string"
                },
                "is_default": {
                    "type": "boolean"
                },
                "languages": {
                    "description": "declared codes, verbatim",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "owner_type": {
                    "type": "string"
                },
                "styles": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "uuid": {
                    "type": "string"
                }
            }
        },
        "internal_customfont.LanguagesUpdate": {
            "type": "object",
            "properties": {
                "coverage": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "glyph_warnings": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "languages": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "internal_customfont.SkippedFile": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "reason": {
                    "type": "string"
                }
            }
        },
        "internal_customfont.UploadReport": {
            "type": "object",
            "properties": {
                "family_name": {
                    "type": "string"
                },
                "glyph_warnings": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "languages_covered": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "skipped_files": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/internal_customfont.SkippedFile"
                    }
                },
                "styles_found": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "styles_synthesized": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "uuid": {
                    "type": "string"
                }
            }
        },
        "internal_ocr_handler.IDDocumentOCRCheckResponse": {
            "type": "object",
            "properties": {
                "is_done": {
                    "type": "boolean"
                }
            }
        },
        "internal_ocr_handler.IDDocumentOCRResponse": {
            "type": "object",
            "properties": {
                "mapped_ocr": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/internal_ocr_handler.MappedOCRRecord"
                    }
                },
                "raw_ocr": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "internal_ocr_handler.IDDocumentOCRUploadResponse": {
            "type": "object",
            "properties": {
                "task_id": {
                    "type": "string"
                }
            }
        },
        "internal_ocr_handler.MappedOCRRecord": {
            "type": "object",
            "properties": {
                "field": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "internal_ocr_handler.ReceiptOCRCheckResponse": {
            "type": "object",
            "properties": {
                "is_done": {
                    "type": "boolean"
                }
            }
        },
        "internal_ocr_handler.ReceiptOCRUploadResponse": {
            "type": "object",
            "properties": {
                "task_id": {
                    "type": "string"
                }
            }
        },
        "internal_translate_handler.ListHistoryResponse": {
            "type": "object",
            "properties": {
                "next_token": {
                    "description": "RemainPages  int                          `json:\"remain_pages\"`",
                    "type": "string"
                },
                "translations": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/bluente_internal_courseV2_model.FileTranslationTask"
                    }
                }
            }
        },
        "internal_translate_handler.MultiCheckResponse": {
            "type": "object",
            "properties": {
                "statuses": {
                    "type": "object",
                    "additionalProperties": {
                        "$ref": "#/definitions/bluente_internal_translate_service.TranslateCheckStatus"
                    }
                }
            }
        },
        "internal_translate_handler.TranslationSupportedFileSizeResponse": {
            "type": "object",
            "properties": {
                "display": {
                    "type": "string"
                },
                "maxFileSize": {
                    "type": "integer"
                }
            }
        },
        "internal_translate_handler.TranslationSupportedFiletype": {
            "type": "object",
            "properties": {
                "extension": {
                    "type": "string"
                },
                "mimeType": {
                    "type": "string"
                }
            }
        },
        "internal_translate_handler.TranslationSupportedLanguageResponse": {
            "type": "object",
            "properties": {
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "engine_specific": {
                    "description": "A json array that define only certain engine allowd, if null means avaliable for all,1=iflytek,3=LLM",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "id": {
                    "type": "integer"
                },
                "language": {
                    "description": "translation target / source language",
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "source": {
                    "description": "Is this language supported as source?",
                    "type": "integer"
                },
                "supported": {
                    "description": "0=deprecated; 1=still in support",
                    "type": "integer"
                },
                "svcCode": {
                    "description": "language code supported by the iflytek",
                    "type": "string"
                },
                "target": {
                    "description": "Is this language supported as target?",
                    "type": "integer"
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                }
            }
        },
        "internal_translate_handler.UploadResponse": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "language": {
                    "description": "the language of the document",
                    "type": "string"
                },
                "sub_task_ids": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "internal_user_handler.UserCreationResponse": {
            "type": "object",
            "properties": {
                "activated": {
                    "description": "determines if the user account is activated by email",
                    "type": "integer"
                },
                "app_id": {
                    "description": "Bluente=10000, inlingua=10001",
                    "type": "integer"
                },
                "created_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "email": {
                    "description": "user registered email",
                    "type": "string"
                },
                "fullname": {
                    "description": "user nickName",
                    "type": "string"
                },
                "hashed_password": {
                    "description": "user hashed password",
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "last_login": {
                    "description": "the time user last logged in",
                    "allOf": [
                        {
                            "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                        }
                    ]
                },
                "role": {
                    "description": "role type of this user",
                    "type": "string"
                },
                "status": {
                    "description": "account status of this account",
                    "type": "string"
                },
                "type": {
                    "description": "the account sources",
                    "type": "string"
                },
                "updated_at": {
                    "$ref": "#/definitions/bluente_internal_courseV2_model.CustomTime"
                },
                "user_id": {
                    "description": "user uuid created in mongodb",
                    "type": "string"
                }
            }
        },
        "internal_user_handler.UserSubscriberInfo": {
            "type": "object",
            "properties": {
                "expiration": {
                    "type": "string"
                },
                "plan": {
                    "type": "string"
                },
                "uuid": {
                    "type": "string"
                }
            }
        },
        "wechat.AppPayParams": {
            "type": "object",
            "properties": {
                "appid": {
                    "type": "string"
                },
                "noncestr": {
                    "type": "string"
                },
                "package": {
                    "type": "string"
                },
                "partnerid": {
                    "type": "string"
                },
                "prepayid": {
                    "type": "string"
                },
                "sign": {
                    "type": "string"
                },
                "timestamp": {
                    "type": "string"
                }
            }
        }
    },
    "securityDefinitions": {
        "BasicAuth": {
            "type": "basic"
        }
    }
}