{
    "swagger": "2.0",
    "info": {
        "description": "Apache Answer API",
        "title": "Apache Answer",
        "contact": {}
    },
    "basePath": "/",
    "paths": {
        "/": {
            "get": {
                "description": "if config file not exist try to redirect to install page",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "installation"
                ],
                "summary": "if config file not exist try to redirect to install page",
                "responses": {}
            }
        },
        "/answer/admin/api/ai-config": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get AI configuration",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get AI configuration",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SiteAIResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update AI configuration",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update AI configuration",
                "parameters": [
                    {
                        "description": "AI config",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SiteAIReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/ai-models": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get AI models",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get AI models",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.GetAIModelResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/admin/api/ai-provider": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get AI provider configuration",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get AI provider configuration",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.GetAIProviderResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/admin/api/ai/conversation": {
            "get": {
                "description": "get conversation detail for admin",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ai-conversation-admin"
                ],
                "summary": "get conversation detail for admin",
                "parameters": [
                    {
                        "type": "string",
                        "description": "conversation id",
                        "name": "conversation_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.AIConversationAdminDetailResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "delete": {
                "description": "delete conversation and its related records for admin",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ai-conversation-admin"
                ],
                "summary": "delete conversation for admin",
                "parameters": [
                    {
                        "description": "apikey",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.AIConversationAdminDeleteReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/ai/conversation/page": {
            "get": {
                "description": "get conversation list for admin",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ai-conversation-admin"
                ],
                "summary": "get conversation list for admin",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "page",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page_size",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/pager.PageModel"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/schema.AIConversationAdminListItem"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/admin/api/answer/page": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Status:[available,deleted,pending]",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "AdminAnswerPage admin answer page",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "available",
                            "deleted",
                            "pending"
                        ],
                        "type": "string",
                        "description": "user status",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "answer id or question title",
                        "name": "query",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "question id",
                        "name": "question_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/answer/status": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update answer status",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update answer status",
                "parameters": [
                    {
                        "description": "AdminUpdateAnswerStatusReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.AdminUpdateAnswerStatusReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/api-key": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update apikey",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update apikey",
                "parameters": [
                    {
                        "description": "apikey",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdateAPIKeyReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "add apikey",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "add apikey",
                "parameters": [
                    {
                        "description": "apikey",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.AddAPIKeyReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.AddAPIKeyResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "delete apikey",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "delete apikey",
                "parameters": [
                    {
                        "description": "apikey",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.DeleteAPIKeyReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/api-key/all": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get all api keys",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get all api keys",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.GetAPIKeyResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/admin/api/badge/status": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update badge status",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "AdminBadge"
                ],
                "summary": "update badge status",
                "parameters": [
                    {
                        "description": "UpdateBadgeStatusReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdateBadgeStatusReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/badges": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "list all badges by page",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "AdminBadge"
                ],
                "summary": "list all badges by page",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "page",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "",
                            "active",
                            "inactive"
                        ],
                        "type": "string",
                        "description": "badge status",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "search param",
                        "name": "q",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.GetBadgeListPagedResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/admin/api/dashboard": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "DashboardInfo",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "DashboardInfo",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/delete/permanently": {
            "delete": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "delete permanently",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "delete permanently",
                "parameters": [
                    {
                        "description": "DeletePermanentlyReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.DeletePermanentlyReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/language/options": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Get language options",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Lang"
                ],
                "summary": "Get language options",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/mcp-config": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get MCP configuration",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get MCP configuration",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SiteMCPResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update MCP configuration",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update MCP configuration",
                "parameters": [
                    {
                        "description": "MCP config",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SiteMCPReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/plugin/config": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get plugin config",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "AdminPlugin"
                ],
                "summary": "get plugin config",
                "parameters": [
                    {
                        "type": "string",
                        "description": "plugin_slug_name",
                        "name": "plugin_slug_name",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetPluginConfigResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update plugin config",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "AdminPlugin"
                ],
                "summary": "update plugin config",
                "parameters": [
                    {
                        "description": "UpdatePluginConfigReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdatePluginConfigReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/plugin/status": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update plugin status",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "AdminPlugin"
                ],
                "summary": "update plugin status",
                "parameters": [
                    {
                        "description": "UpdatePluginStatusReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdatePluginStatusReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/plugins": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get plugin list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "AdminPlugin"
                ],
                "summary": "get plugin list",
                "parameters": [
                    {
                        "type": "string",
                        "description": "status: active/inactive",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "have config",
                        "name": "have_config",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.GetPluginListResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/admin/api/question/page": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Status:[available,closed,deleted,pending]",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "AdminQuestionPage admin question page",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "available",
                            "closed",
                            "deleted",
                            "pending"
                        ],
                        "type": "string",
                        "description": "user status",
                        "name": "status",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "question id or title",
                        "name": "query",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/question/status": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update question status",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update question status",
                "parameters": [
                    {
                        "description": "AdminUpdateQuestionStatusReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.AdminUpdateQuestionStatusReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/reasons": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get reasons by object type and action",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "reason"
                ],
                "summary": "get reasons by object type and action",
                "parameters": [
                    {
                        "enum": [
                            "question",
                            "answer",
                            "comment",
                            "user"
                        ],
                        "type": "string",
                        "description": "object_type",
                        "name": "object_type",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "status",
                            "close",
                            "flag",
                            "review"
                        ],
                        "type": "string",
                        "description": "action",
                        "name": "action",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/roles": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get role list",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get role list",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.GetRoleResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/admin/api/setting/privileges": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "GetPrivilegesConfig get privileges config",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "GetPrivilegesConfig get privileges config",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetPrivilegesConfigResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update privileges config",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update privileges config",
                "parameters": [
                    {
                        "description": "config",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdatePrivilegesConfigReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/setting/smtp": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "GetSMTPConfig get smtp config",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "GetSMTPConfig get smtp config",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetSMTPConfigResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update smtp config",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update smtp config",
                "parameters": [
                    {
                        "description": "smtp config",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdateSMTPConfigReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/siteinfo/advanced": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get site advanced setting",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get site advanced setting",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SiteAdvancedResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update site advanced info",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update site advanced info",
                "parameters": [
                    {
                        "description": "advanced settings",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SiteAdvancedReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/siteinfo/branding": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get site interface",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get site interface",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SiteBrandingResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update site info branding",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update site info branding",
                "parameters": [
                    {
                        "description": "branding info",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SiteBrandingReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/siteinfo/custom-css-html": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get site info custom html css config",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get site info custom html css config",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SiteCustomCssHTMLResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update site custom css html config",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update site custom css html config",
                "parameters": [
                    {
                        "description": "login info",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SiteCustomCssHTMLReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/siteinfo/general": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get site general information",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get site general information",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SiteGeneralResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update site general information",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update site general information",
                "parameters": [
                    {
                        "description": "general",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SiteGeneralReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/siteinfo/interface": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get site interface",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get site interface",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SiteInterfaceSettingsResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update site info interface",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update site info interface",
                "parameters": [
                    {
                        "description": "general",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SiteInterfaceReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/siteinfo/login": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get site info login config",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get site info login config",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SiteLoginResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update site login",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update site login",
                "parameters": [
                    {
                        "description": "login info",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SiteLoginReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/siteinfo/polices": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Get the policies information for the site",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "Get the policies information for the site",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SitePoliciesResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update site policies configuration",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update site policies configuration",
                "parameters": [
                    {
                        "description": "write info",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SitePoliciesReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/siteinfo/question": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get site questions setting",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get site questions setting",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SiteQuestionsResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update site question settings",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update site question settings",
                "parameters": [
                    {
                        "description": "questions settings",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SiteQuestionsReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/siteinfo/security": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Get the security information for the site",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "Get the security information for the site",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SiteSecurityResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update site security configuration",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update site security configuration",
                "parameters": [
                    {
                        "description": "write info",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SiteSecurityReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/siteinfo/seo": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get site seo information",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get site seo information",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SiteSeoResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update site seo information",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update site seo information",
                "parameters": [
                    {
                        "description": "seo",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SiteSeoReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/siteinfo/tag": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get site tags setting",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get site tags setting",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SiteTagsResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update site tag settings",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update site tag settings",
                "parameters": [
                    {
                        "description": "tags settings",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SiteTagsReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/siteinfo/theme": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get site info theme config",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get site info theme config",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SiteThemeResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update site custom css html config",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update site custom css html config",
                "parameters": [
                    {
                        "description": "login info",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SiteThemeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/siteinfo/users": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get site user config",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get site user config",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SiteUsersResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update site info config about users",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update site info config about users",
                "parameters": [
                    {
                        "description": "users info",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SiteUsersReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/siteinfo/users-settings": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get site interface",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get site interface",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SiteUsersSettingsResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update site info users settings",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update site info users settings",
                "parameters": [
                    {
                        "description": "general",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SiteUsersSettingsReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/theme/options": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Get theme options",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "Get theme options",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/user": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "add user",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "add user",
                "parameters": [
                    {
                        "description": "user",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.AddUserReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/user/activation": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get user activation",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get user activation",
                "parameters": [
                    {
                        "type": "string",
                        "description": "user id",
                        "name": "user_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetUserActivationResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/admin/api/user/password": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update user password",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update user password",
                "parameters": [
                    {
                        "description": "user",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdateUserPasswordReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/user/profile": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "edit user profile",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "edit user profile",
                "parameters": [
                    {
                        "description": "user",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.EditUserProfileReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/user/role": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update user role",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update user role",
                "parameters": [
                    {
                        "description": "user",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdateUserRoleReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/user/status": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update user",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "update user",
                "parameters": [
                    {
                        "description": "user",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdateUserStatusReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/users": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "add users",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "add users",
                "parameters": [
                    {
                        "description": "user",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.AddUsersReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/users/activation": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "send user activation",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "send user activation",
                "parameters": [
                    {
                        "description": "SendUserActivationReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.SendUserActivationReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/admin/api/users/page": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get user page",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "admin"
                ],
                "summary": "get user page",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "search query: email, username or id:[id]",
                        "name": "query",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "staff user",
                        "name": "staff",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "suspended",
                            "deleted",
                            "inactive"
                        ],
                        "type": "string",
                        "description": "user status",
                        "name": "status",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/pager.PageModel"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "records": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/schema.GetUserPageResp"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/activity/timeline": {
            "get": {
                "description": "get object timeline",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Comment"
                ],
                "summary": "get object timeline",
                "parameters": [
                    {
                        "type": "string",
                        "description": "object id",
                        "name": "object_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "tag slug name",
                        "name": "tag_slug_name",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "question",
                            "answer",
                            "tag"
                        ],
                        "type": "string",
                        "description": "object type",
                        "name": "object_type",
                        "in": "query"
                    },
                    {
                        "type": "boolean",
                        "description": "is show vote",
                        "name": "show_vote",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetObjectTimelineResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/activity/timeline/detail": {
            "get": {
                "description": "get object timeline detail",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Comment"
                ],
                "summary": "get object timeline detail",
                "parameters": [
                    {
                        "type": "string",
                        "description": "revision id",
                        "name": "revision_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetObjectTimelineResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/ai/conversation": {
            "get": {
                "description": "get conversation detail",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ai-conversation"
                ],
                "summary": "get conversation detail",
                "parameters": [
                    {
                        "type": "string",
                        "description": "conversation id",
                        "name": "conversation_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.AIConversationDetailResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/ai/conversation/page": {
            "get": {
                "description": "get conversation list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ai-conversation"
                ],
                "summary": "get conversation list",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "page",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page_size",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/pager.PageModel"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/schema.AIConversationListItem"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/ai/conversation/vote": {
            "post": {
                "description": "vote record",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ai-conversation"
                ],
                "summary": "vote record",
                "parameters": [
                    {
                        "description": "vote request",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.AIConversationVoteReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/answer": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Update Answer",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Answer"
                ],
                "summary": "Update Answer",
                "parameters": [
                    {
                        "description": "AnswerUpdateReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.AnswerUpdateReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "add answer",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Answer"
                ],
                "summary": "Add Answer",
                "parameters": [
                    {
                        "description": "add answer request",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.AnswerAddReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "delete answer",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Answer"
                ],
                "summary": "delete answer",
                "parameters": [
                    {
                        "description": "answer",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.RemoveAnswerReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/answer/acceptance": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Accept Answer",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Answer"
                ],
                "summary": "Accept Answer",
                "parameters": [
                    {
                        "description": "AcceptAnswerReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.AcceptAnswerReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/answer/info": {
            "get": {
                "description": "Get Answer Detail",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Answer"
                ],
                "summary": "Get Answer Detail",
                "parameters": [
                    {
                        "type": "string",
                        "description": "id",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetAnswerInfoResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/answer/page": {
            "get": {
                "description": "AnswerList \u003cbr\u003e \u003cb\u003eorder\u003c/b\u003e (default or updated)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Answer"
                ],
                "summary": "AnswerList",
                "parameters": [
                    {
                        "type": "string",
                        "description": "question_id",
                        "name": "question_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "order",
                        "name": "order",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "page",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "page_size",
                        "name": "page_size",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/answer/recover": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "recover the deleted answer",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Answer"
                ],
                "summary": "recover answer",
                "parameters": [
                    {
                        "description": "answer",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.RecoverAnswerReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/badge": {
            "get": {
                "description": "get badge info",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "api-badge"
                ],
                "summary": "get badge info",
                "parameters": [
                    {
                        "type": "string",
                        "default": "string",
                        "description": "id",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetBadgeInfoResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/badge/awards/page": {
            "get": {
                "description": "get badge award list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "api-badge"
                ],
                "summary": "get badge award list",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "page",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "badge id",
                        "name": "badge_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "only list the award by username",
                        "name": "username",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetBadgeInfoResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/badge/user/awards": {
            "get": {
                "description": "get user badge award list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "api-badge"
                ],
                "summary": "get user badge award list",
                "parameters": [
                    {
                        "type": "string",
                        "description": "user name",
                        "name": "username",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.GetUserBadgeAwardListResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/badge/user/awards/recent": {
            "get": {
                "description": "get user badge award list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "api-badge"
                ],
                "summary": "get user badge award list",
                "parameters": [
                    {
                        "type": "string",
                        "description": "user name",
                        "name": "username",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.GetUserBadgeAwardListResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/badges": {
            "get": {
                "description": "list all badges group by group",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "api-badge"
                ],
                "summary": "list all badges group by group",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.GetBadgeListResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/collection/switch": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "add collection",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Collection"
                ],
                "summary": "add collection",
                "parameters": [
                    {
                        "description": "collection",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.CollectionSwitchReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.CollectionSwitchResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/comment": {
            "get": {
                "description": "get comment by id",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Comment"
                ],
                "summary": "get comment by id",
                "parameters": [
                    {
                        "type": "string",
                        "description": "id",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/pager.PageModel"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/schema.GetCommentResp"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update comment",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Comment"
                ],
                "summary": "update comment",
                "parameters": [
                    {
                        "description": "comment",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdateCommentReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "add comment",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Comment"
                ],
                "summary": "add comment",
                "parameters": [
                    {
                        "description": "comment",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.AddCommentReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetCommentResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "remove comment",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Comment"
                ],
                "summary": "remove comment",
                "parameters": [
                    {
                        "description": "comment",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.RemoveCommentReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/comment/page": {
            "get": {
                "description": "get comment page",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Comment"
                ],
                "summary": "get comment page",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "page",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "object id",
                        "name": "object_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "vote"
                        ],
                        "type": "string",
                        "description": "query condition",
                        "name": "query_cond",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/pager.PageModel"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/schema.GetCommentResp"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/connector/binding/email": {
            "post": {
                "description": "external login binding user send email",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "PluginConnector"
                ],
                "summary": "external login binding user send email",
                "parameters": [
                    {
                        "description": "external login binding user send email",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.ExternalLoginBindingUserSendEmailReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.ExternalLoginBindingUserSendEmailResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/connector/info": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get all enabled connectors",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "PluginConnector"
                ],
                "summary": "get all enabled connectors",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.ConnectorInfoResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/connector/user/info": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get all connectors info about user",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "PluginConnector"
                ],
                "summary": "get all connectors info about user",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.ConnectorUserInfoResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/connector/user/unbinding": {
            "delete": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "unbind external user login",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "PluginConnector"
                ],
                "summary": "unbind external user login",
                "parameters": [
                    {
                        "description": "ExternalLoginUnbindingReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.ExternalLoginUnbindingReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/embed/config": {
            "get": {
                "description": "get embed plugin config",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Plugin"
                ],
                "summary": "get embed plugin config",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/plugin.EmbedConfig"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/file": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "upload file",
                "consumes": [
                    "multipart/form-data"
                ],
                "tags": [
                    "Upload"
                ],
                "summary": "upload file",
                "parameters": [
                    {
                        "enum": [
                            "post",
                            "post_attachment",
                            "avatar",
                            "branding"
                        ],
                        "type": "string",
                        "description": "identify the source of the file upload",
                        "name": "source",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "file",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/follow": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "follow object or cancel follow operation",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Activity"
                ],
                "summary": "follow object or cancel follow operation",
                "parameters": [
                    {
                        "description": "follow",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.FollowReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.FollowResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/follow/tags": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update user follow tags",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Activity"
                ],
                "summary": "update user follow tags",
                "parameters": [
                    {
                        "description": "follow",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdateFollowTagsReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/language/config": {
            "get": {
                "description": "get language config mapping",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Lang"
                ],
                "summary": "get language config mapping",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Accept-Language",
                        "name": "Accept-Language",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/language/options": {
            "get": {
                "description": "Get language options",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Lang"
                ],
                "summary": "Get language options",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/meta/reaction": {
            "get": {
                "description": "get reaction for an object",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Meta"
                ],
                "summary": "get reaction",
                "parameters": [
                    {
                        "type": "string",
                        "description": "object_id",
                        "name": "object_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.ReactionRespItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update reaction. if not exist, add one",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Meta"
                ],
                "summary": "add or update reaction",
                "parameters": [
                    {
                        "description": "reaction",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdateReactionReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/notification/page": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get notification list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Notification"
                ],
                "summary": "get notification list",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "inbox",
                            "achievement"
                        ],
                        "type": "string",
                        "description": "type",
                        "name": "type",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "all",
                            "posts",
                            "invites",
                            "votes"
                        ],
                        "type": "string",
                        "description": "inbox_type",
                        "name": "inbox_type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/notification/read/state": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "ClearUnRead",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Notification"
                ],
                "summary": "ClearUnRead",
                "parameters": [
                    {
                        "description": "NotificationClearIDRequest",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.NotificationClearIDRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/notification/read/state/all": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "ClearUnRead",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Notification"
                ],
                "summary": "ClearUnRead",
                "parameters": [
                    {
                        "description": "NotificationClearRequest",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.NotificationClearRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/notification/status": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "GetRedDot",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Notification"
                ],
                "summary": "GetRedDot",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "DelRedDot",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Notification"
                ],
                "summary": "DelRedDot",
                "parameters": [
                    {
                        "description": "NotificationClearRequest",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.NotificationClearRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/permission": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "check user permission",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Permission"
                ],
                "summary": "check user permission",
                "parameters": [
                    {
                        "type": "string",
                        "description": "access-token",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "enum": [
                            "question.add",
                            "question.edit",
                            "question.edit_without_review",
                            "question.delete",
                            "question.close",
                            "question.reopen",
                            "question.vote_up",
                            "question.vote_down",
                            "question.pin",
                            "question.unpin",
                            "question.hide",
                            "question.show",
                            "answer.add",
                            "answer.edit",
                            "answer.edit_without_review",
                            "answer.delete",
                            "answer.accept",
                            "answer.vote_up",
                            "answer.vote_down",
                            "answer.invite_someone_to_answer",
                            "comment.add",
                            "comment.edit",
                            "comment.delete",
                            "comment.vote_up",
                            "comment.vote_down",
                            "report.add",
                            "tag.add",
                            "tag.edit",
                            "tag.edit_slug_name",
                            "tag.edit_without_review",
                            "tag.delete",
                            "tag.synonym",
                            "link.url_limit",
                            "vote.detail",
                            "answer.audit",
                            "question.audit",
                            "tag.audit",
                            "tag.use_reserved_tag"
                        ],
                        "type": "string",
                        "description": "permission key",
                        "name": "action",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": {
                                                "type": "boolean"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/personal/answer/page": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "list personal answers",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Personal"
                ],
                "summary": "list personal answers",
                "parameters": [
                    {
                        "type": "string",
                        "default": "string",
                        "description": "username",
                        "name": "username",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "newest",
                            "score"
                        ],
                        "type": "string",
                        "description": "order",
                        "name": "order",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "0",
                        "description": "page",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "20",
                        "description": "page_size",
                        "name": "page_size",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/personal/collection/page": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "list personal collections",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Collection"
                ],
                "summary": "list personal collections",
                "parameters": [
                    {
                        "type": "string",
                        "default": "0",
                        "description": "page",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "20",
                        "description": "page_size",
                        "name": "page_size",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/personal/comment/page": {
            "get": {
                "description": "user personal comment list",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Comment"
                ],
                "summary": "user personal comment list",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "page",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "username",
                        "name": "username",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/pager.PageModel"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/schema.GetCommentPersonalWithPageResp"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/personal/qa/top": {
            "get": {
                "description": "UserTop",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Question"
                ],
                "summary": "UserTop",
                "parameters": [
                    {
                        "type": "string",
                        "default": "string",
                        "description": "username",
                        "name": "username",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/personal/rank/page": {
            "get": {
                "description": "user personal rank list",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Rank"
                ],
                "summary": "user personal rank list",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "page",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "username",
                        "name": "username",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/pager.PageModel"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/schema.GetRankPersonalPageResp"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/personal/user/info": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "GetOtherUserInfoByUsername",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "GetOtherUserInfoByUsername",
                "parameters": [
                    {
                        "type": "string",
                        "description": "username",
                        "name": "username",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetOtherUserInfoResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/personal/vote/page": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get user personal votes",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Activity"
                ],
                "summary": "get user personal votes",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page_size",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/pager.PageModel"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/schema.GetVoteWithPageResp"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/plugin/status": {
            "get": {
                "description": "get all plugins status",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Plugin"
                ],
                "summary": "get all plugins status",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.GetPluginListResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/post/render": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "render post content",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Upload"
                ],
                "summary": "render post content",
                "parameters": [
                    {
                        "description": "PostRenderReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.PostRenderReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/question": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update question",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Question"
                ],
                "summary": "update question",
                "parameters": [
                    {
                        "description": "question",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.QuestionUpdate"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "add question",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Question"
                ],
                "summary": "add question",
                "parameters": [
                    {
                        "description": "question",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.QuestionAdd"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "delete question",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Question"
                ],
                "summary": "delete question",
                "parameters": [
                    {
                        "description": "question",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.RemoveQuestionReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/question/answer": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "add question and answer",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Question"
                ],
                "summary": "add question and answer",
                "parameters": [
                    {
                        "description": "question",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.QuestionAddByAnswer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/question/info": {
            "get": {
                "description": "get question details",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Question"
                ],
                "summary": "get question details",
                "parameters": [
                    {
                        "type": "string",
                        "default": "1",
                        "description": "Question TagID",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/question/invite": {
            "get": {
                "description": "get question invite user info",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Question"
                ],
                "summary": "get question invite user info",
                "parameters": [
                    {
                        "type": "string",
                        "default": "1",
                        "description": "Question ID",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update question invite user",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Question"
                ],
                "summary": "update question invite user",
                "parameters": [
                    {
                        "description": "question",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.QuestionUpdateInviteUser"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/question/link": {
            "get": {
                "description": "get question link",
                "tags": [
                    "Question"
                ],
                "summary": "get question link",
                "parameters": [
                    {
                        "minimum": 1,
                        "type": "integer",
                        "name": "in_days",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "newest",
                            "active",
                            "hot",
                            "score",
                            "unanswered",
                            "recommend",
                            "frequent"
                        ],
                        "type": "string",
                        "name": "order",
                        "in": "query"
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "maximum": 100,
                        "minimum": 1,
                        "type": "integer",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "question_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/pager.PageModel"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/schema.QuestionPageResp"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/question/operation": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Operation question \\n operation [pin unpin hide show]",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Question"
                ],
                "summary": "Operation question",
                "parameters": [
                    {
                        "description": "question",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.OperationQuestionReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/question/page": {
            "get": {
                "description": "get questions by page",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Question"
                ],
                "summary": "get questions by page",
                "parameters": [
                    {
                        "description": "QuestionPageReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.QuestionPageReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/pager.PageModel"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/schema.QuestionPageResp"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/question/recommend/page": {
            "get": {
                "description": "get recommend questions by page",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Question"
                ],
                "summary": "get recommend questions by page",
                "parameters": [
                    {
                        "description": "QuestionPageReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.QuestionPageReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/pager.PageModel"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/schema.QuestionPageResp"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/question/recover": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "recover deleted question",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Question"
                ],
                "summary": "recover deleted question",
                "parameters": [
                    {
                        "description": "question",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.QuestionRecoverReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/question/reopen": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "reopen question",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Question"
                ],
                "summary": "reopen question",
                "parameters": [
                    {
                        "description": "question",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.ReopenQuestionReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/question/similar": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "fuzzy query similar questions based on title",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Question"
                ],
                "summary": "fuzzy query similar questions based on title",
                "parameters": [
                    {
                        "type": "string",
                        "default": "string",
                        "description": "title",
                        "name": "title",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/question/similar/tag": {
            "get": {
                "description": "Search Similar Question",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Question"
                ],
                "summary": "Search Similar Question",
                "parameters": [
                    {
                        "type": "string",
                        "default": "",
                        "description": "question_id",
                        "name": "question_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/question/status": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "Close question",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Question"
                ],
                "summary": "Close question",
                "parameters": [
                    {
                        "description": "question",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.CloseQuestionReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/question/tags": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get tag list",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tag"
                ],
                "summary": "get tag list",
                "parameters": [
                    {
                        "type": "string",
                        "description": "tag",
                        "name": "tag",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.GetTagBasicResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/reasons": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get reasons by object type and action",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "reason"
                ],
                "summary": "get reasons by object type and action",
                "parameters": [
                    {
                        "enum": [
                            "question",
                            "answer",
                            "comment",
                            "user"
                        ],
                        "type": "string",
                        "description": "object_type",
                        "name": "object_type",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "status",
                            "close",
                            "flag",
                            "review"
                        ],
                        "type": "string",
                        "description": "action",
                        "name": "action",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/render/config": {
            "get": {
                "description": "GetRenderConfig",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "PluginRender"
                ],
                "summary": "GetRenderConfig",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/plugin.RenderConfig"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/report": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "add report \u003cbr\u003e source (question, answer, comment, user)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Report"
                ],
                "summary": "add report",
                "parameters": [
                    {
                        "description": "report",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.AddReportReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/report/review": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "review report",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Report"
                ],
                "summary": "review report",
                "parameters": [
                    {
                        "description": "flag",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.ReviewReportReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/report/unreviewed/post": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get unreviewed report post page",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Report"
                ],
                "summary": "get unreviewed report post page",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "page",
                        "name": "page",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/pager.PageModel"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/schema.GetReportListPageResp"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/review/pending/post": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update review",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Review"
                ],
                "summary": "update review",
                "parameters": [
                    {
                        "description": "review",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdateReviewReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/review/pending/post/page": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get unreviewed post page",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Review"
                ],
                "summary": "get unreviewed post page",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "page",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "object_id",
                        "name": "object_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/pager.PageModel"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/schema.GetUnreviewedPostPageResp"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/reviewing/type": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get reviewing type",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Revision"
                ],
                "summary": "get reviewing type",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.GetReviewingTypeResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/revisions": {
            "get": {
                "description": "get revision list",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Revision"
                ],
                "summary": "get revision list",
                "parameters": [
                    {
                        "type": "string",
                        "description": "object id",
                        "name": "object_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.GetRevisionResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/revisions/audit": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "revision audit operation:approve or reject",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Revision"
                ],
                "summary": "revision audit",
                "parameters": [
                    {
                        "description": "audit",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.RevisionAuditReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/revisions/edit/check": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "check can update revision",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Revision"
                ],
                "summary": "check can update revision",
                "parameters": [
                    {
                        "type": "string",
                        "default": "string",
                        "description": "id",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/revisions/unreviewed": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get unreviewed revision list",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Revision"
                ],
                "summary": "get unreviewed revision list",
                "parameters": [
                    {
                        "type": "string",
                        "description": "page id",
                        "name": "page",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/pager.PageModel"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/schema.GetUnreviewedRevisionResp"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/search": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "search object",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Search"
                ],
                "summary": "search object",
                "parameters": [
                    {
                        "type": "string",
                        "description": "query string",
                        "name": "q",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "newest",
                            "active",
                            "score",
                            "relevance"
                        ],
                        "type": "string",
                        "description": "order",
                        "name": "order",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SearchResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/search/desc": {
            "get": {
                "description": "get search description",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Search"
                ],
                "summary": "get search description",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SearchResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/siteinfo": {
            "get": {
                "description": "get site info",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "site"
                ],
                "summary": "get site info",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.SiteInfoResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/siteinfo/legal": {
            "get": {
                "description": "get site legal info",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "site"
                ],
                "summary": "get site legal info",
                "parameters": [
                    {
                        "enum": [
                            "tos",
                            "privacy"
                        ],
                        "type": "string",
                        "description": "legal information type",
                        "name": "info_type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetSiteLegalInfoResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/tag": {
            "get": {
                "description": "get tag one",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tag"
                ],
                "summary": "get tag one",
                "parameters": [
                    {
                        "type": "string",
                        "description": "tag id",
                        "name": "tag_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "tag name",
                        "name": "tag_name",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetTagResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update tag",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tag"
                ],
                "summary": "update tag",
                "parameters": [
                    {
                        "description": "tag",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdateTagReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "add tag",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tag"
                ],
                "summary": "add tag",
                "parameters": [
                    {
                        "description": "tag",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.AddTagReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "delete tag",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tag"
                ],
                "summary": "delete tag",
                "parameters": [
                    {
                        "description": "tag",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.RemoveTagReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/tag/merge": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "merge tag",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tag"
                ],
                "summary": "merge tag",
                "parameters": [
                    {
                        "description": "tag",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.AddTagReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/tag/recover": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "recover delete tag",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tag"
                ],
                "summary": "recover delete tag",
                "parameters": [
                    {
                        "description": "tag",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.RecoverTagReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/tag/synonym": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update tag",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tag"
                ],
                "summary": "update tag",
                "parameters": [
                    {
                        "description": "tag",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdateTagSynonymReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/tag/synonyms": {
            "get": {
                "description": "get tag synonyms",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tag"
                ],
                "summary": "get tag synonyms",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "tag id",
                        "name": "tag_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetTagSynonymsResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/tags": {
            "get": {
                "description": "get tags list by slug name",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tag"
                ],
                "summary": "get tags list",
                "parameters": [
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "description": "string collection",
                        "name": "tags",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.GetTagBasicResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/tags/following": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get following tag list",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tag"
                ],
                "summary": "get following tag list",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.GetFollowingTagsResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/tags/page": {
            "get": {
                "description": "get tag page",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Tag"
                ],
                "summary": "get tag page",
                "parameters": [
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page",
                        "in": "query"
                    },
                    {
                        "type": "integer",
                        "description": "page size",
                        "name": "page_size",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "description": "slug_name",
                        "name": "slug_name",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "popular",
                            "name",
                            "newest"
                        ],
                        "type": "string",
                        "description": "query condition",
                        "name": "query_cond",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/definitions/pager.PageModel"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "list": {
                                                            "type": "array",
                                                            "items": {
                                                                "$ref": "#/definitions/schema.GetTagPageResp"
                                                            }
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/action/record": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "ActionRecord",
                "tags": [
                    "User"
                ],
                "summary": "ActionRecord",
                "parameters": [
                    {
                        "enum": [
                            "login",
                            "e_mail",
                            "find_pass"
                        ],
                        "type": "string",
                        "description": "action",
                        "name": "action",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.ActionRecordResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/email": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "user change email verification",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "user change email verification",
                "parameters": [
                    {
                        "description": "UserChangeEmailVerifyReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UserChangeEmailVerifyReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/email/change/code": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "send email to the user email then change their email",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "send email to the user email then change their email",
                "parameters": [
                    {
                        "description": "UserChangeEmailSendCodeReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UserChangeEmailSendCodeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/email/verification": {
            "post": {
                "description": "UserVerifyEmail",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "UserVerifyEmail",
                "parameters": [
                    {
                        "type": "string",
                        "default": "",
                        "description": "code",
                        "name": "code",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.UserLoginResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/email/verification/send": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "UserVerifyEmailSend",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "UserVerifyEmailSend",
                "parameters": [
                    {
                        "type": "string",
                        "default": "",
                        "description": "captcha_id",
                        "name": "captcha_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "default": "",
                        "description": "captcha_code",
                        "name": "captcha_code",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/info": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get user info, if user no login response http code is 200, but user info is null",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "GetUserInfoByUserID",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetCurrentLoginUserInfoResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "UserUpdateInfo update user info",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "UserUpdateInfo update user info",
                "parameters": [
                    {
                        "type": "string",
                        "description": "access-token",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "UpdateInfoRequest",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdateInfoRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/info/search": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "SearchUserListByName",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "SearchUserListByName",
                "parameters": [
                    {
                        "type": "string",
                        "description": "username",
                        "name": "username",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetOtherUserInfoResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/interface": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "UserUpdateInterface update user interface config",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "UserUpdateInterface update user interface config",
                "parameters": [
                    {
                        "type": "string",
                        "description": "access-token",
                        "name": "Authorization",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "UpdateInfoRequest",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdateUserInterfaceRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/login/email": {
            "post": {
                "description": "UserEmailLogin",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "UserEmailLogin",
                "parameters": [
                    {
                        "description": "UserEmailLogin",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UserEmailLoginReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.UserLoginResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/logout": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "user logout",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "user logout",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/notification/config": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update user's notification config",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "update user's notification config",
                "parameters": [
                    {
                        "description": "UpdateUserNotificationConfigReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdateUserNotificationConfigReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            },
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get user's notification config",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "get user's notification config",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetUserNotificationConfigResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/notification/unsubscribe": {
            "put": {
                "description": "unsubscribe notification",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "unsubscribe notification",
                "parameters": [
                    {
                        "description": "UserUnsubscribeNotificationReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UserUnsubscribeNotificationReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/password": {
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "UserModifyPassWord",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "UserModifyPassWord",
                "parameters": [
                    {
                        "description": "UserModifyPasswordReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UserModifyPasswordReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/password/replacement": {
            "post": {
                "description": "UseRePassWord",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "UseRePassWord",
                "parameters": [
                    {
                        "description": "UserRePassWordRequest",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UserRePassWordRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/password/reset": {
            "post": {
                "description": "RetrievePassWord",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "RetrievePassWord",
                "parameters": [
                    {
                        "description": "UserRetrievePassWordRequest",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UserRetrievePassWordRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/plugin/config": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get user plugin config",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserPlugin"
                ],
                "summary": "get user plugin config",
                "parameters": [
                    {
                        "type": "string",
                        "description": "plugin_slug_name",
                        "name": "plugin_slug_name",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetPluginConfigResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "update user plugin config",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserPlugin"
                ],
                "summary": "update user plugin config",
                "parameters": [
                    {
                        "description": "UpdatePluginConfigReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UpdateUserPluginConfigReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/plugin/configs": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "get plugin list that used for user.",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "UserPlugin"
                ],
                "summary": "get plugin list that used for user.",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/schema.GetUserPluginListResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/ranking": {
            "get": {
                "description": "get user ranking",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "get user ranking",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.UserRankingResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/register/email": {
            "post": {
                "description": "UserRegisterByEmail",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "UserRegisterByEmail",
                "parameters": [
                    {
                        "description": "UserRegisterReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.UserRegisterReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.UserLoginResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/user/staff": {
            "get": {
                "description": "get user staff",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "User"
                ],
                "summary": "get user staff",
                "parameters": [
                    {
                        "type": "string",
                        "description": "username",
                        "name": "username",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "page_size",
                        "name": "page_size",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.GetUserStaffResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/vote/down": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "add vote",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Activity"
                ],
                "summary": "vote down",
                "parameters": [
                    {
                        "description": "vote",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.VoteReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.VoteResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/answer/api/v1/vote/up": {
            "post": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "add vote",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Activity"
                ],
                "summary": "vote up",
                "parameters": [
                    {
                        "description": "vote",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/schema.VoteReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/schema.VoteResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/custom.css": {
            "get": {
                "description": "get site custom CSS",
                "produces": [
                    "text/css"
                ],
                "tags": [
                    "site"
                ],
                "summary": "get site custom CSS",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/installation/base-info": {
            "post": {
                "description": "init base info",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "installation"
                ],
                "summary": "init base info",
                "parameters": [
                    {
                        "description": "InitBaseInfoReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/install.InitBaseInfoReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/installation/config-file/check": {
            "post": {
                "description": "check config file if exist when installation",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "installation"
                ],
                "summary": "check config file if exist when installation",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/install.CheckConfigFileResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/installation/db/check": {
            "post": {
                "description": "check database if exist when installation",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "installation"
                ],
                "summary": "check database if exist when installation",
                "parameters": [
                    {
                        "description": "CheckDatabaseReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/install.CheckDatabaseReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/install.CheckConfigFileResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/installation/init": {
            "post": {
                "description": "init environment",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "installation"
                ],
                "summary": "init environment",
                "parameters": [
                    {
                        "description": "CheckDatabaseReq",
                        "name": "data",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/install.CheckDatabaseReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/installation/language/config": {
            "get": {
                "description": "get installation language config mapping",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Lang"
                ],
                "summary": "get installation language config mapping",
                "parameters": [
                    {
                        "type": "string",
                        "description": "installation language",
                        "name": "lang",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/installation/language/options": {
            "get": {
                "description": "get installation language options",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Lang"
                ],
                "summary": "get installation language options",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/handler.RespBody"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/translator.LangOption"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/personal/question/page": {
            "get": {
                "security": [
                    {
                        "ApiKeyAuth": []
                    }
                ],
                "description": "list personal questions",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Personal"
                ],
                "summary": "list personal questions",
                "parameters": [
                    {
                        "type": "string",
                        "default": "string",
                        "description": "username",
                        "name": "username",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            "newest",
                            "score"
                        ],
                        "type": "string",
                        "description": "order",
                        "name": "order",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "0",
                        "description": "page",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "default": "20",
                        "description": "page_size",
                        "name": "page_size",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/handler.RespBody"
                        }
                    }
                }
            }
        },
        "/robots.txt": {
            "get": {
                "description": "get site robots information",
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "site"
                ],
                "summary": "get site robots information",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "constant.NotificationChannelKey": {
            "type": "string",
            "enum": [
                "email"
            ],
            "x-enum-varnames": [
                "EmailChannel"
            ]
        },
        "constant.Privilege": {
            "type": "object",
            "properties": {
                "key": {
                    "type": "string"
                },
                "label": {
                    "type": "string"
                },
                "value": {
                    "type": "integer",
                    "minimum": 1
                }
            }
        },
        "entity.BadgeLevel": {
            "type": "integer",
            "enum": [
                1,
                2,
                3
            ],
            "x-enum-varnames": [
                "BadgeLevelBronze",
                "BadgeLevelSilver",
                "BadgeLevelGold"
            ]
        },
        "handler.RespBody": {
            "type": "object",
            "properties": {
                "code": {
                    "description": "http code",
                    "type": "integer"
                },
                "data": {
                    "description": "response data"
                },
                "msg": {
                    "description": "response message",
                    "type": "string"
                },
                "reason": {
                    "description": "reason key",
                    "type": "string"
                }
            }
        },
        "install.CheckConfigFileResp": {
            "type": "object",
            "properties": {
                "config_file_exist": {
                    "type": "boolean"
                },
                "db_connection_success": {
                    "type": "boolean"
                },
                "db_table_exist": {
                    "type": "boolean"
                }
            }
        },
        "install.CheckDatabaseReq": {
            "type": "object",
            "required": [
                "db_type"
            ],
            "properties": {
                "db_file": {
                    "type": "string"
                },
                "db_host": {
                    "type": "string"
                },
                "db_name": {
                    "type": "string"
                },
                "db_password": {
                    "type": "string"
                },
                "db_type": {
                    "type": "string",
                    "enum": [
                        "postgres",
                        "sqlite3",
                        "mysql"
                    ]
                },
                "db_username": {
                    "type": "string"
                },
                "ssl_cert": {
                    "type": "string"
                },
                "ssl_enabled": {
                    "type": "boolean"
                },
                "ssl_key": {
                    "type": "string"
                },
                "ssl_mode": {
                    "type": "string"
                },
                "ssl_root_cert": {
                    "type": "string"
                }
            }
        },
        "install.InitBaseInfoReq": {
            "type": "object",
            "required": [
                "contact_email",
                "email",
                "external_content_display",
                "lang",
                "name",
                "password",
                "site_name",
                "site_url"
            ],
            "properties": {
                "contact_email": {
                    "type": "string",
                    "maxLength": 500
                },
                "email": {
                    "type": "string",
                    "maxLength": 500
                },
                "external_content_display": {
                    "type": "string",
                    "enum": [
                        "always_display",
                        "ask_before_display"
                    ]
                },
                "lang": {
                    "type": "string",
                    "maxLength": 30
                },
                "login_required": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string",
                    "maxLength": 30,
                    "minLength": 2
                },
                "password": {
                    "type": "string",
                    "maxLength": 32,
                    "minLength": 8
                },
                "site_name": {
                    "type": "string",
                    "maxLength": 30
                },
                "site_url": {
                    "type": "string",
                    "maxLength": 512
                }
            }
        },
        "pager.PageModel": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "list": {}
            }
        },
        "plugin.EmbedConfig": {
            "type": "object",
            "properties": {
                "enable": {
                    "type": "boolean"
                },
                "platform": {
                    "type": "string"
                }
            }
        },
        "plugin.RenderConfig": {
            "type": "object",
            "properties": {
                "select_theme": {
                    "type": "string"
                }
            }
        },
        "schema.AIConversationAdminDeleteReq": {
            "type": "object",
            "required": [
                "conversation_id"
            ],
            "properties": {
                "conversation_id": {
                    "type": "string"
                }
            }
        },
        "schema.AIConversationAdminDetailResp": {
            "type": "object",
            "properties": {
                "conversation_id": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "records": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.AIConversationRecord"
                    }
                },
                "topic": {
                    "type": "string"
                },
                "user_info": {
                    "$ref": "#/definitions/schema.AIConversationUserInfo"
                }
            }
        },
        "schema.AIConversationAdminListItem": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "integer"
                },
                "helpful_count": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "topic": {
                    "type": "string"
                },
                "unhelpful_count": {
                    "type": "integer"
                },
                "user_info": {
                    "$ref": "#/definitions/schema.AIConversationUserInfo"
                }
            }
        },
        "schema.AIConversationDetailResp": {
            "type": "object",
            "properties": {
                "conversation_id": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "records": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.AIConversationRecord"
                    }
                },
                "topic": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "integer"
                }
            }
        },
        "schema.AIConversationListItem": {
            "type": "object",
            "properties": {
                "conversation_id": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "topic": {
                    "type": "string"
                }
            }
        },
        "schema.AIConversationRecord": {
            "type": "object",
            "properties": {
                "chat_completion_id": {
                    "type": "string"
                },
                "content": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "helpful": {
                    "type": "integer"
                },
                "reasoning_content": {
                    "type": "string"
                },
                "role": {
                    "type": "string"
                },
                "unhelpful": {
                    "type": "integer"
                }
            }
        },
        "schema.AIConversationUserInfo": {
            "type": "object",
            "properties": {
                "avatar": {
                    "type": "string"
                },
                "display_name": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "rank": {
                    "type": "integer"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "schema.AIConversationVoteReq": {
            "type": "object",
            "required": [
                "chat_completion_id",
                "vote_type"
            ],
            "properties": {
                "cancel": {
                    "type": "boolean"
                },
                "chat_completion_id": {
                    "type": "string"
                },
                "vote_type": {
                    "type": "string",
                    "enum": [
                        "helpful",
                        "unhelpful"
                    ]
                }
            }
        },
        "schema.AIPromptConfig": {
            "type": "object",
            "properties": {
                "en_us": {
                    "type": "string"
                },
                "zh_cn": {
                    "type": "string"
                }
            }
        },
        "schema.AcceptAnswerReq": {
            "type": "object",
            "required": [
                "question_id"
            ],
            "properties": {
                "answer_id": {
                    "type": "string"
                },
                "question_id": {
                    "type": "string",
                    "maxLength": 30
                }
            }
        },
        "schema.ActObjectInfo": {
            "type": "object",
            "properties": {
                "answer_id": {
                    "type": "string"
                },
                "display_name": {
                    "type": "string"
                },
                "main_tag_slug_name": {
                    "type": "string"
                },
                "object_type": {
                    "type": "string"
                },
                "question_id": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "schema.ActObjectTimeline": {
            "type": "object",
            "properties": {
                "activity_id": {
                    "type": "string"
                },
                "activity_type": {
                    "type": "string"
                },
                "cancelled": {
                    "type": "boolean"
                },
                "cancelled_at": {
                    "type": "integer"
                },
                "comment": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "object_id": {
                    "type": "string"
                },
                "object_type": {
                    "type": "string"
                },
                "revision_id": {
                    "type": "string"
                },
                "user_info": {
                    "$ref": "#/definitions/schema.UserBasicInfo"
                }
            }
        },
        "schema.ActionRecordResp": {
            "type": "object",
            "properties": {
                "captcha_id": {
                    "type": "string"
                },
                "captcha_img": {
                    "type": "string"
                },
                "verify": {
                    "type": "boolean"
                }
            }
        },
        "schema.AddAPIKeyReq": {
            "type": "object",
            "required": [
                "description",
                "scope"
            ],
            "properties": {
                "description": {
                    "type": "string",
                    "maxLength": 150
                },
                "scope": {
                    "type": "string",
                    "enum": [
                        "read-only",
                        "global"
                    ]
                }
            }
        },
        "schema.AddAPIKeyResp": {
            "type": "object",
            "properties": {
                "access_key": {
                    "type": "string"
                }
            }
        },
        "schema.AddCommentReq": {
            "type": "object",
            "required": [
                "object_id",
                "original_text"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "type": "string"
                },
                "mention_username_list": {
                    "description": "@ user id list",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "object_id": {
                    "description": "object id",
                    "type": "string"
                },
                "original_text": {
                    "description": "original comment content",
                    "type": "string",
                    "maxLength": 600,
                    "minLength": 2
                },
                "reply_comment_id": {
                    "description": "reply comment id",
                    "type": "string"
                }
            }
        },
        "schema.AddReportReq": {
            "type": "object",
            "required": [
                "object_id",
                "report_type"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "description": "captcha_id",
                    "type": "string"
                },
                "content": {
                    "description": "report content",
                    "type": "string",
                    "maxLength": 500
                },
                "object_id": {
                    "description": "object id",
                    "type": "string",
                    "maxLength": 20
                },
                "report_type": {
                    "description": "report type",
                    "type": "integer"
                }
            }
        },
        "schema.AddTagReq": {
            "type": "object",
            "required": [
                "display_name",
                "original_text",
                "slug_name"
            ],
            "properties": {
                "display_name": {
                    "description": "display_name",
                    "type": "string",
                    "maxLength": 35
                },
                "original_text": {
                    "description": "original text",
                    "type": "string",
                    "maxLength": 65536
                },
                "slug_name": {
                    "description": "slug_name",
                    "type": "string",
                    "maxLength": 35
                }
            }
        },
        "schema.AddUserReq": {
            "type": "object",
            "required": [
                "display_name",
                "email",
                "password"
            ],
            "properties": {
                "display_name": {
                    "type": "string",
                    "maxLength": 30,
                    "minLength": 2
                },
                "email": {
                    "type": "string",
                    "maxLength": 500
                },
                "password": {
                    "type": "string",
                    "maxLength": 32,
                    "minLength": 8
                }
            }
        },
        "schema.AddUsersReq": {
            "type": "object",
            "properties": {
                "users": {
                    "description": "users info line by line",
                    "type": "string"
                }
            }
        },
        "schema.AdminUpdateAnswerStatusReq": {
            "type": "object",
            "required": [
                "answer_id",
                "status"
            ],
            "properties": {
                "answer_id": {
                    "type": "string"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "available",
                        "deleted"
                    ]
                }
            }
        },
        "schema.AdminUpdateQuestionStatusReq": {
            "type": "object",
            "required": [
                "question_id",
                "status"
            ],
            "properties": {
                "question_id": {
                    "type": "string"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "available",
                        "closed",
                        "deleted"
                    ]
                }
            }
        },
        "schema.AnswerAddReq": {
            "type": "object",
            "required": [
                "content"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "type": "string"
                },
                "content": {
                    "type": "string",
                    "maxLength": 65535,
                    "minLength": 6
                },
                "question_id": {
                    "type": "string"
                }
            }
        },
        "schema.AnswerInfo": {
            "type": "object",
            "properties": {
                "accepted": {
                    "type": "integer"
                },
                "collected": {
                    "type": "boolean"
                },
                "content": {
                    "type": "string"
                },
                "create_time": {
                    "type": "integer"
                },
                "html": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "member_actions": {
                    "description": "MemberActions",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.PermissionMemberAction"
                    }
                },
                "question_id": {
                    "type": "string"
                },
                "question_info": {
                    "$ref": "#/definitions/schema.QuestionInfoResp"
                },
                "status": {
                    "type": "integer"
                },
                "update_time": {
                    "type": "integer"
                },
                "update_user_info": {
                    "$ref": "#/definitions/schema.UserBasicInfo"
                },
                "user_info": {
                    "$ref": "#/definitions/schema.UserBasicInfo"
                },
                "vote_count": {
                    "type": "integer"
                },
                "vote_status": {
                    "type": "string"
                }
            }
        },
        "schema.AnswerUpdateReq": {
            "type": "object",
            "required": [
                "content"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "type": "string"
                },
                "content": {
                    "type": "string",
                    "maxLength": 65535,
                    "minLength": 6
                },
                "edit_summary": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                }
            }
        },
        "schema.AvatarInfo": {
            "type": "object",
            "properties": {
                "custom": {
                    "type": "string",
                    "maxLength": 200
                },
                "gravatar": {
                    "type": "string",
                    "maxLength": 200
                },
                "type": {
                    "type": "string",
                    "maxLength": 100
                }
            }
        },
        "schema.BadgeListInfo": {
            "type": "object",
            "properties": {
                "award_count": {
                    "description": "badge award count",
                    "type": "integer"
                },
                "earned_count": {
                    "description": "badge earned count",
                    "type": "integer"
                },
                "icon": {
                    "description": "badge icon",
                    "type": "string"
                },
                "id": {
                    "description": "badge id",
                    "type": "string"
                },
                "level": {
                    "description": "badge level",
                    "allOf": [
                        {
                            "$ref": "#/definitions/entity.BadgeLevel"
                        }
                    ]
                },
                "name": {
                    "description": "badge name",
                    "type": "string"
                }
            }
        },
        "schema.BadgeStatus": {
            "type": "string",
            "enum": [
                "active",
                "inactive"
            ],
            "x-enum-varnames": [
                "BadgeStatusActive",
                "BadgeStatusInactive"
            ]
        },
        "schema.CloseQuestionReq": {
            "type": "object",
            "required": [
                "id"
            ],
            "properties": {
                "close_msg": {
                    "description": "close_type",
                    "type": "string"
                },
                "close_type": {
                    "description": "close_type",
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                }
            }
        },
        "schema.CollectionSwitchReq": {
            "type": "object",
            "required": [
                "group_id",
                "object_id"
            ],
            "properties": {
                "bookmark": {
                    "type": "boolean"
                },
                "group_id": {
                    "type": "string"
                },
                "object_id": {
                    "type": "string"
                }
            }
        },
        "schema.CollectionSwitchResp": {
            "type": "object",
            "properties": {
                "object_collection_count": {
                    "type": "integer"
                }
            }
        },
        "schema.ConfigField": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "options": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.ConfigFieldOption"
                    }
                },
                "required": {
                    "type": "boolean"
                },
                "title": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "ui_options": {
                    "$ref": "#/definitions/schema.ConfigFieldUIOptions"
                },
                "value": {}
            }
        },
        "schema.ConfigFieldOption": {
            "type": "object",
            "properties": {
                "label": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "schema.ConfigFieldUIOptions": {
            "type": "object",
            "properties": {
                "action": {
                    "$ref": "#/definitions/schema.UIOptionAction"
                },
                "class_name": {
                    "type": "string"
                },
                "field_class_name": {
                    "type": "string"
                },
                "input_type": {
                    "type": "string"
                },
                "label": {
                    "type": "string"
                },
                "placeholder": {
                    "type": "string"
                },
                "rows": {
                    "type": "string"
                },
                "text": {
                    "type": "string"
                },
                "variant": {
                    "type": "string"
                }
            }
        },
        "schema.ConnectorInfoResp": {
            "type": "object",
            "properties": {
                "icon": {
                    "type": "string"
                },
                "link": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "schema.ConnectorUserInfoResp": {
            "type": "object",
            "properties": {
                "binding": {
                    "type": "boolean"
                },
                "external_id": {
                    "type": "string"
                },
                "icon": {
                    "type": "string"
                },
                "link": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "schema.DeleteAPIKeyReq": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "integer"
                }
            }
        },
        "schema.DeletePermanentlyReq": {
            "type": "object",
            "required": [
                "type"
            ],
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "users",
                        "questions",
                        "answers"
                    ]
                }
            }
        },
        "schema.EditUserProfileReq": {
            "type": "object",
            "required": [
                "display_name",
                "email",
                "user_id"
            ],
            "properties": {
                "display_name": {
                    "type": "string",
                    "maxLength": 30,
                    "minLength": 2
                },
                "email": {
                    "type": "string",
                    "maxLength": 500
                },
                "user_id": {
                    "type": "string"
                },
                "username": {
                    "type": "string",
                    "maxLength": 30,
                    "minLength": 2
                }
            }
        },
        "schema.ExternalLoginBindingUserSendEmailReq": {
            "type": "object",
            "required": [
                "binding_key",
                "email"
            ],
            "properties": {
                "binding_key": {
                    "type": "string",
                    "maxLength": 100
                },
                "email": {
                    "type": "string",
                    "maxLength": 512
                },
                "must": {
                    "description": "If must is true, whatever email if exists, try to bind user.\nIf must is false, when email exist, will only be prompted with a warning.",
                    "type": "boolean"
                }
            }
        },
        "schema.ExternalLoginBindingUserSendEmailResp": {
            "type": "object",
            "properties": {
                "access_token": {
                    "type": "string"
                },
                "email_exist_and_must_be_confirmed": {
                    "type": "boolean"
                }
            }
        },
        "schema.ExternalLoginUnbindingReq": {
            "type": "object",
            "required": [
                "external_id"
            ],
            "properties": {
                "external_id": {
                    "type": "string",
                    "maxLength": 128
                }
            }
        },
        "schema.FollowReq": {
            "type": "object",
            "required": [
                "object_id"
            ],
            "properties": {
                "is_cancel": {
                    "description": "is cancel",
                    "type": "boolean"
                },
                "object_id": {
                    "description": "object id",
                    "type": "string"
                }
            }
        },
        "schema.FollowResp": {
            "type": "object",
            "properties": {
                "follows": {
                    "description": "the followers of object",
                    "type": "integer"
                },
                "is_followed": {
                    "description": "if user is followed object will be true,otherwise false",
                    "type": "boolean"
                }
            }
        },
        "schema.GetAIModelResp": {
            "type": "object",
            "properties": {
                "created": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "object": {
                    "type": "string"
                },
                "owned_by": {
                    "type": "string"
                }
            }
        },
        "schema.GetAIProviderResp": {
            "type": "object",
            "properties": {
                "default_api_host": {
                    "type": "string"
                },
                "display_name": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "schema.GetAPIKeyResp": {
            "type": "object",
            "properties": {
                "access_key": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "description": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "last_used_at": {
                    "type": "integer"
                },
                "scope": {
                    "type": "string"
                }
            }
        },
        "schema.GetAnswerInfoResp": {
            "type": "object",
            "properties": {
                "info": {
                    "$ref": "#/definitions/schema.AnswerInfo"
                },
                "question": {
                    "$ref": "#/definitions/schema.QuestionInfoResp"
                }
            }
        },
        "schema.GetBadgeInfoResp": {
            "type": "object",
            "properties": {
                "award_count": {
                    "description": "badge award count",
                    "type": "integer"
                },
                "description": {
                    "description": "badge description",
                    "type": "string"
                },
                "earned_count": {
                    "description": "badge earned count",
                    "type": "integer"
                },
                "icon": {
                    "description": "badge icon",
                    "type": "string"
                },
                "id": {
                    "description": "badge id",
                    "type": "string"
                },
                "is_single": {
                    "description": "badge is single or multiple",
                    "type": "boolean"
                },
                "level": {
                    "description": "badge level",
                    "allOf": [
                        {
                            "$ref": "#/definitions/entity.BadgeLevel"
                        }
                    ]
                },
                "name": {
                    "description": "badge name",
                    "type": "string"
                }
            }
        },
        "schema.GetBadgeListPagedResp": {
            "type": "object",
            "properties": {
                "award_count": {
                    "description": "badge award count",
                    "type": "integer"
                },
                "description": {
                    "description": "badge description",
                    "type": "string"
                },
                "earned": {
                    "description": "badge earned count",
                    "type": "boolean"
                },
                "group_name": {
                    "description": "badge group name",
                    "type": "string"
                },
                "icon": {
                    "description": "badge icon",
                    "type": "string"
                },
                "id": {
                    "description": "badge id",
                    "type": "string"
                },
                "level": {
                    "description": "badge level",
                    "allOf": [
                        {
                            "$ref": "#/definitions/entity.BadgeLevel"
                        }
                    ]
                },
                "name": {
                    "description": "badge name",
                    "type": "string"
                },
                "status": {
                    "description": "badge status",
                    "allOf": [
                        {
                            "$ref": "#/definitions/schema.BadgeStatus"
                        }
                    ]
                }
            }
        },
        "schema.GetBadgeListResp": {
            "type": "object",
            "properties": {
                "badges": {
                    "description": "badge list info",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.BadgeListInfo"
                    }
                },
                "group_name": {
                    "description": "badge group name",
                    "type": "string"
                }
            }
        },
        "schema.GetCommentPersonalWithPageResp": {
            "type": "object",
            "properties": {
                "answer_id": {
                    "description": "answer id",
                    "type": "string"
                },
                "comment_id": {
                    "description": "comment id",
                    "type": "string"
                },
                "content": {
                    "description": "content",
                    "type": "string"
                },
                "created_at": {
                    "description": "create time",
                    "type": "integer"
                },
                "object_id": {
                    "description": "object id",
                    "type": "string"
                },
                "object_type": {
                    "description": "object type",
                    "type": "string",
                    "enum": [
                        "question",
                        "answer",
                        "tag",
                        "comment"
                    ]
                },
                "question_id": {
                    "description": "question id",
                    "type": "string"
                },
                "title": {
                    "description": "title",
                    "type": "string"
                },
                "url_title": {
                    "description": "url title",
                    "type": "string"
                }
            }
        },
        "schema.GetCommentResp": {
            "type": "object",
            "properties": {
                "comment_id": {
                    "description": "comment id",
                    "type": "string"
                },
                "created_at": {
                    "description": "create time",
                    "type": "integer"
                },
                "is_vote": {
                    "description": "current user if already vote this comment",
                    "type": "boolean"
                },
                "member_actions": {
                    "description": "MemberActions",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.PermissionMemberAction"
                    }
                },
                "object_id": {
                    "description": "object id",
                    "type": "string"
                },
                "original_text": {
                    "description": "original comment content",
                    "type": "string"
                },
                "parsed_text": {
                    "description": "parsed comment content",
                    "type": "string"
                },
                "reply_comment_id": {
                    "description": "reply comment id",
                    "type": "string"
                },
                "reply_user_display_name": {
                    "description": "reply user display name",
                    "type": "string"
                },
                "reply_user_id": {
                    "description": "reply user id",
                    "type": "string"
                },
                "reply_user_status": {
                    "description": "reply user status",
                    "type": "string"
                },
                "reply_username": {
                    "description": "reply user username",
                    "type": "string"
                },
                "user_avatar": {
                    "description": "user avatar",
                    "type": "string"
                },
                "user_display_name": {
                    "description": "user display name",
                    "type": "string"
                },
                "user_id": {
                    "description": "user id",
                    "type": "string"
                },
                "user_status": {
                    "description": "user status",
                    "type": "string"
                },
                "username": {
                    "description": "username",
                    "type": "string"
                },
                "vote_count": {
                    "description": "user vote amount",
                    "type": "integer"
                }
            }
        },
        "schema.GetCurrentLoginUserInfoResp": {
            "type": "object",
            "properties": {
                "access_token": {
                    "description": "access token",
                    "type": "string"
                },
                "answer_count": {
                    "description": "answer count",
                    "type": "integer"
                },
                "authority_group": {
                    "description": "authority group",
                    "type": "integer"
                },
                "avatar": {
                    "$ref": "#/definitions/schema.AvatarInfo"
                },
                "bio": {
                    "description": "bio markdown",
                    "type": "string"
                },
                "bio_html": {
                    "description": "bio html",
                    "type": "string"
                },
                "color_scheme": {
                    "description": "Color scheme",
                    "type": "string"
                },
                "created_at": {
                    "description": "create time",
                    "type": "integer"
                },
                "display_name": {
                    "description": "display name",
                    "type": "string"
                },
                "e_mail": {
                    "description": "email",
                    "type": "string"
                },
                "follow_count": {
                    "description": "follow count",
                    "type": "integer"
                },
                "have_password": {
                    "description": "user have password",
                    "type": "boolean"
                },
                "id": {
                    "description": "user id",
                    "type": "string"
                },
                "language": {
                    "description": "language",
                    "type": "string"
                },
                "last_login_date": {
                    "description": "last login date",
                    "type": "integer"
                },
                "location": {
                    "description": "location",
                    "type": "string"
                },
                "mail_status": {
                    "description": "mail status(1 pass 2 to be verified)",
                    "type": "integer"
                },
                "mobile": {
                    "description": "mobile",
                    "type": "string"
                },
                "notice_status": {
                    "description": "notice status(1 on 2off)",
                    "type": "integer"
                },
                "question_count": {
                    "description": "question count",
                    "type": "integer"
                },
                "rank": {
                    "description": "rank",
                    "type": "integer"
                },
                "role_id": {
                    "description": "role id",
                    "type": "integer"
                },
                "status": {
                    "description": "user status",
                    "type": "string"
                },
                "suspended_until": {
                    "description": "suspended until timestamp",
                    "type": "integer"
                },
                "username": {
                    "description": "username",
                    "type": "string"
                },
                "visit_token": {
                    "description": "visit token",
                    "type": "string"
                },
                "website": {
                    "description": "website",
                    "type": "string"
                }
            }
        },
        "schema.GetFollowingTagsResp": {
            "type": "object",
            "properties": {
                "display_name": {
                    "description": "display name",
                    "type": "string"
                },
                "main_tag_slug_name": {
                    "description": "if main tag slug name is not empty, this tag is synonymous with the main tag",
                    "type": "string"
                },
                "recommend": {
                    "type": "boolean"
                },
                "reserved": {
                    "type": "boolean"
                },
                "slug_name": {
                    "description": "slug name",
                    "type": "string"
                },
                "tag_id": {
                    "description": "tag id",
                    "type": "string"
                }
            }
        },
        "schema.GetObjectTimelineResp": {
            "type": "object",
            "properties": {
                "object_info": {
                    "$ref": "#/definitions/schema.ActObjectInfo"
                },
                "timeline": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.ActObjectTimeline"
                    }
                }
            }
        },
        "schema.GetOtherUserInfoByUsernameResp": {
            "type": "object",
            "properties": {
                "answer_count": {
                    "description": "answer count",
                    "type": "integer"
                },
                "avatar": {
                    "description": "avatar",
                    "type": "string"
                },
                "bio": {
                    "description": "bio markdown",
                    "type": "string"
                },
                "bio_html": {
                    "description": "bio html",
                    "type": "string"
                },
                "created_at": {
                    "description": "create time",
                    "type": "integer"
                },
                "display_name": {
                    "description": "display name",
                    "type": "string"
                },
                "follow_count": {
                    "description": "email\nfollow count",
                    "type": "integer"
                },
                "id": {
                    "description": "user id",
                    "type": "string"
                },
                "last_login_date": {
                    "description": "last login date",
                    "type": "integer"
                },
                "location": {
                    "description": "location",
                    "type": "string"
                },
                "mobile": {
                    "description": "mobile",
                    "type": "string"
                },
                "question_count": {
                    "description": "question count",
                    "type": "integer"
                },
                "rank": {
                    "description": "rank",
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                },
                "status_msg": {
                    "type": "string"
                },
                "suspended_until": {
                    "description": "suspended until timestamp",
                    "type": "integer"
                },
                "username": {
                    "description": "username",
                    "type": "string"
                },
                "website": {
                    "description": "website",
                    "type": "string"
                }
            }
        },
        "schema.GetOtherUserInfoResp": {
            "type": "object",
            "properties": {
                "info": {
                    "$ref": "#/definitions/schema.GetOtherUserInfoByUsernameResp"
                }
            }
        },
        "schema.GetPluginConfigResp": {
            "type": "object",
            "properties": {
                "config_fields": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.ConfigField"
                    }
                },
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "slug_name": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "schema.GetPluginListResp": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "enabled": {
                    "type": "boolean"
                },
                "have_config": {
                    "type": "boolean"
                },
                "link": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "slug_name": {
                    "type": "string"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "schema.GetPrivilegesConfigResp": {
            "type": "object",
            "properties": {
                "options": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.PrivilegeOption"
                    }
                },
                "selected_level": {
                    "$ref": "#/definitions/schema.PrivilegeLevel"
                }
            }
        },
        "schema.GetRankPersonalPageResp": {
            "type": "object",
            "properties": {
                "answer_id": {
                    "description": "answer id",
                    "type": "string"
                },
                "content": {
                    "description": "content",
                    "type": "string"
                },
                "created_at": {
                    "description": "create time",
                    "type": "integer"
                },
                "object_id": {
                    "description": "object id",
                    "type": "string"
                },
                "object_type": {
                    "description": "object type",
                    "type": "string",
                    "enum": [
                        "question",
                        "answer",
                        "tag",
                        "comment"
                    ]
                },
                "question_id": {
                    "description": "question id",
                    "type": "string"
                },
                "rank_type": {
                    "description": "rank type",
                    "type": "string"
                },
                "reputation": {
                    "description": "reputation",
                    "type": "integer"
                },
                "title": {
                    "description": "title",
                    "type": "string"
                },
                "url_title": {
                    "description": "url title",
                    "type": "string"
                }
            }
        },
        "schema.GetReportListPageResp": {
            "type": "object",
            "properties": {
                "answer_accepted": {
                    "type": "boolean"
                },
                "answer_count": {
                    "type": "integer"
                },
                "answer_id": {
                    "type": "string"
                },
                "author_user_info": {
                    "$ref": "#/definitions/schema.UserBasicInfo"
                },
                "comment_id": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "flag_id": {
                    "type": "string"
                },
                "object_id": {
                    "type": "string"
                },
                "object_show_status": {
                    "type": "integer"
                },
                "object_status": {
                    "type": "integer"
                },
                "object_type": {
                    "type": "string",
                    "enum": [
                        "question",
                        "answer",
                        "comment"
                    ]
                },
                "original_text": {
                    "type": "string"
                },
                "parsed_text": {
                    "type": "string"
                },
                "question_id": {
                    "type": "string"
                },
                "reason": {
                    "$ref": "#/definitions/schema.ReasonItem"
                },
                "reason_content": {
                    "type": "string"
                },
                "submit_at": {
                    "type": "integer"
                },
                "submitter_user": {
                    "$ref": "#/definitions/schema.UserBasicInfo"
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.TagResp"
                    }
                },
                "title": {
                    "type": "string"
                },
                "url_title": {
                    "type": "string"
                }
            }
        },
        "schema.GetReviewingTypeResp": {
            "type": "object",
            "properties": {
                "label": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "todo_amount": {
                    "type": "integer"
                }
            }
        },
        "schema.GetRevisionResp": {
            "type": "object",
            "properties": {
                "content": {},
                "create_at": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "object_id": {
                    "type": "string"
                },
                "reason": {
                    "type": "string"
                },
                "status": {
                    "type": "integer"
                },
                "title": {
                    "type": "string"
                },
                "url_title": {
                    "type": "string"
                },
                "use_id": {
                    "type": "string"
                },
                "user_info": {
                    "$ref": "#/definitions/schema.UserBasicInfo"
                }
            }
        },
        "schema.GetRoleResp": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "schema.GetSMTPConfigResp": {
            "type": "object",
            "properties": {
                "encryption": {
                    "description": "\"\" SSL TLS",
                    "type": "string"
                },
                "from_email": {
                    "type": "string"
                },
                "from_name": {
                    "type": "string"
                },
                "smtp_authentication": {
                    "type": "boolean"
                },
                "smtp_host": {
                    "type": "string"
                },
                "smtp_password": {
                    "type": "string"
                },
                "smtp_port": {
                    "type": "integer"
                },
                "smtp_username": {
                    "type": "string"
                }
            }
        },
        "schema.GetSiteLegalInfoResp": {
            "type": "object",
            "properties": {
                "privacy_policy_original_text": {
                    "type": "string"
                },
                "privacy_policy_parsed_text": {
                    "type": "string"
                },
                "terms_of_service_original_text": {
                    "type": "string"
                },
                "terms_of_service_parsed_text": {
                    "type": "string"
                }
            }
        },
        "schema.GetTagBasicResp": {
            "type": "object",
            "properties": {
                "display_name": {
                    "type": "string"
                },
                "recommend": {
                    "type": "boolean"
                },
                "reserved": {
                    "type": "boolean"
                },
                "slug_name": {
                    "type": "string"
                },
                "tag_id": {
                    "type": "string"
                }
            }
        },
        "schema.GetTagPageResp": {
            "type": "object",
            "properties": {
                "created_at": {
                    "description": "created time",
                    "type": "integer"
                },
                "description": {
                    "description": "description",
                    "type": "string"
                },
                "display_name": {
                    "description": "display_name",
                    "type": "string"
                },
                "excerpt": {
                    "description": "excerpt",
                    "type": "string"
                },
                "follow_count": {
                    "description": "follower amount",
                    "type": "integer"
                },
                "is_follower": {
                    "description": "is follower",
                    "type": "boolean"
                },
                "original_text": {
                    "description": "original text",
                    "type": "string"
                },
                "parsed_text": {
                    "description": "parsed_text",
                    "type": "string"
                },
                "question_count": {
                    "description": "question amount",
                    "type": "integer"
                },
                "recommend": {
                    "type": "boolean"
                },
                "reserved": {
                    "type": "boolean"
                },
                "slug_name": {
                    "description": "slug_name",
                    "type": "string"
                },
                "tag_id": {
                    "description": "tag_id",
                    "type": "string"
                },
                "updated_at": {
                    "description": "updated time",
                    "type": "integer"
                }
            }
        },
        "schema.GetTagResp": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "integer"
                },
                "description": {
                    "type": "string"
                },
                "display_name": {
                    "type": "string"
                },
                "excerpt": {
                    "type": "string"
                },
                "follow_count": {
                    "type": "integer"
                },
                "is_follower": {
                    "type": "boolean"
                },
                "main_tag_slug_name": {
                    "description": "if main tag slug name is not empty, this tag is synonymous with the main tag",
                    "type": "string"
                },
                "member_actions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.PermissionMemberAction"
                    }
                },
                "original_text": {
                    "type": "string"
                },
                "parsed_text": {
                    "type": "string"
                },
                "question_count": {
                    "type": "integer"
                },
                "recommend": {
                    "type": "boolean"
                },
                "reserved": {
                    "type": "boolean"
                },
                "slug_name": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                },
                "tag_id": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "integer"
                }
            }
        },
        "schema.GetTagSynonymsResp": {
            "type": "object",
            "properties": {
                "member_actions": {
                    "description": "MemberActions",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.PermissionMemberAction"
                    }
                },
                "synonyms": {
                    "description": "synonyms",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.TagSynonym"
                    }
                }
            }
        },
        "schema.GetUnreviewedPostPageResp": {
            "type": "object",
            "properties": {
                "answer_id": {
                    "type": "string"
                },
                "author_user_info": {
                    "$ref": "#/definitions/schema.UserBasicInfo"
                },
                "comment_id": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "object_id": {
                    "type": "string"
                },
                "object_show_status": {
                    "type": "integer"
                },
                "object_status": {
                    "type": "integer"
                },
                "object_type": {
                    "type": "string",
                    "enum": [
                        "question",
                        "answer",
                        "comment"
                    ]
                },
                "original_text": {
                    "type": "string"
                },
                "parsed_text": {
                    "type": "string"
                },
                "question_id": {
                    "type": "string"
                },
                "reason": {
                    "type": "string"
                },
                "review_id": {
                    "type": "integer"
                },
                "submit_at": {
                    "type": "integer"
                },
                "submitter_display_name": {
                    "type": "string"
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.TagResp"
                    }
                },
                "title": {
                    "type": "string"
                },
                "url_title": {
                    "type": "string"
                }
            }
        },
        "schema.GetUnreviewedRevisionResp": {
            "type": "object",
            "properties": {
                "info": {
                    "$ref": "#/definitions/schema.UnreviewedRevisionInfoInfo"
                },
                "type": {
                    "type": "string"
                },
                "unreviewed_info": {
                    "$ref": "#/definitions/schema.GetRevisionResp"
                }
            }
        },
        "schema.GetUserActivationResp": {
            "type": "object",
            "properties": {
                "activation_url": {
                    "type": "string"
                }
            }
        },
        "schema.GetUserBadgeAwardListResp": {
            "type": "object",
            "properties": {
                "earned_count": {
                    "description": "badge award count",
                    "type": "integer"
                },
                "icon": {
                    "description": "badge icon",
                    "type": "string"
                },
                "id": {
                    "description": "badge id",
                    "type": "string"
                },
                "level": {
                    "description": "badge level",
                    "allOf": [
                        {
                            "$ref": "#/definitions/entity.BadgeLevel"
                        }
                    ]
                },
                "name": {
                    "description": "badge name",
                    "type": "string"
                }
            }
        },
        "schema.GetUserNotificationConfigResp": {
            "type": "object",
            "properties": {
                "all_new_question": {
                    "$ref": "#/definitions/schema.NotificationChannelConfig"
                },
                "all_new_question_for_following_tags": {
                    "$ref": "#/definitions/schema.NotificationChannelConfig"
                },
                "inbox": {
                    "$ref": "#/definitions/schema.NotificationChannelConfig"
                }
            }
        },
        "schema.GetUserPageResp": {
            "type": "object",
            "properties": {
                "avatar": {
                    "description": "avatar",
                    "type": "string"
                },
                "created_at": {
                    "description": "create time",
                    "type": "integer"
                },
                "deleted_at": {
                    "description": "delete time",
                    "type": "integer"
                },
                "display_name": {
                    "description": "display name",
                    "type": "string"
                },
                "e_mail": {
                    "description": "email",
                    "type": "string"
                },
                "rank": {
                    "description": "rank",
                    "type": "integer"
                },
                "role_id": {
                    "description": "role id",
                    "type": "integer"
                },
                "role_name": {
                    "description": "role name",
                    "type": "string"
                },
                "status": {
                    "description": "user status(normal,suspended,deleted,inactive)",
                    "type": "string"
                },
                "suspended_at": {
                    "description": "suspended time",
                    "type": "integer"
                },
                "suspended_until": {
                    "description": "suspended until time",
                    "type": "integer"
                },
                "user_id": {
                    "description": "user id",
                    "type": "string"
                },
                "username": {
                    "description": "username",
                    "type": "string"
                }
            }
        },
        "schema.GetUserPluginListResp": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "slug_name": {
                    "type": "string"
                }
            }
        },
        "schema.GetUserStaffResp": {
            "type": "object",
            "properties": {
                "avatar": {
                    "description": "avatar",
                    "type": "string"
                },
                "display_name": {
                    "description": "display name",
                    "type": "string"
                },
                "username": {
                    "description": "username",
                    "type": "string"
                }
            }
        },
        "schema.GetVoteWithPageResp": {
            "type": "object",
            "properties": {
                "answer_id": {
                    "description": "answer id",
                    "type": "string"
                },
                "content": {
                    "description": "content",
                    "type": "string"
                },
                "created_at": {
                    "description": "create time",
                    "type": "integer"
                },
                "object_id": {
                    "description": "object id",
                    "type": "string"
                },
                "object_type": {
                    "description": "object type",
                    "type": "string",
                    "enum": [
                        "question",
                        "answer",
                        "tag",
                        "comment"
                    ]
                },
                "question_id": {
                    "description": "question id",
                    "type": "string"
                },
                "title": {
                    "description": "title",
                    "type": "string"
                },
                "url_title": {
                    "description": "url title",
                    "type": "string"
                },
                "vote_type": {
                    "description": "vote type",
                    "type": "string"
                }
            }
        },
        "schema.LoadingAction": {
            "type": "object",
            "properties": {
                "state": {
                    "type": "string"
                },
                "text": {
                    "type": "string"
                }
            }
        },
        "schema.NotificationChannelConfig": {
            "type": "object",
            "properties": {
                "enable": {
                    "type": "boolean"
                },
                "key": {
                    "$ref": "#/definitions/constant.NotificationChannelKey"
                }
            }
        },
        "schema.NotificationClearIDRequest": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                }
            }
        },
        "schema.NotificationClearRequest": {
            "type": "object",
            "required": [
                "type"
            ],
            "properties": {
                "type": {
                    "type": "string",
                    "enum": [
                        "inbox",
                        "achievement"
                    ]
                }
            }
        },
        "schema.OnCompleteAction": {
            "type": "object",
            "properties": {
                "refresh_form_config": {
                    "type": "boolean"
                },
                "toast_return_message": {
                    "type": "boolean"
                }
            }
        },
        "schema.Operation": {
            "type": "object",
            "properties": {
                "description": {
                    "type": "string"
                },
                "level": {
                    "$ref": "#/definitions/schema.OperationLevel"
                },
                "msg": {
                    "type": "string"
                },
                "time": {
                    "type": "integer"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "schema.OperationLevel": {
            "type": "string",
            "enum": [
                "info",
                "danger",
                "warning",
                "secondary"
            ],
            "x-enum-varnames": [
                "OperationLevelInfo",
                "OperationLevelDanger",
                "OperationLevelWarning",
                "OperationLevelSecondary"
            ]
        },
        "schema.OperationQuestionReq": {
            "type": "object",
            "required": [
                "id"
            ],
            "properties": {
                "id": {
                    "type": "string"
                },
                "operation": {
                    "description": "operation [pin unpin hide show]",
                    "type": "string"
                }
            }
        },
        "schema.PermissionMemberAction": {
            "type": "object",
            "properties": {
                "action": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "schema.PostRenderReq": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "string"
                }
            }
        },
        "schema.PrivilegeLevel": {
            "type": "integer",
            "enum": [
                1,
                2,
                3,
                99
            ],
            "x-enum-varnames": [
                "PrivilegeLevel1",
                "PrivilegeLevel2",
                "PrivilegeLevel3",
                "PrivilegeLevelCustom"
            ]
        },
        "schema.PrivilegeOption": {
            "type": "object",
            "properties": {
                "level": {
                    "$ref": "#/definitions/schema.PrivilegeLevel"
                },
                "level_desc": {
                    "type": "string"
                },
                "privileges": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/constant.Privilege"
                    }
                }
            }
        },
        "schema.QuestionAdd": {
            "type": "object",
            "required": [
                "title"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "description": "captcha_id",
                    "type": "string"
                },
                "content": {
                    "description": "content",
                    "type": "string",
                    "maxLength": 65535,
                    "minLength": 0
                },
                "tags": {
                    "description": "tags",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.TagItem"
                    }
                },
                "title": {
                    "description": "question title",
                    "type": "string",
                    "maxLength": 150,
                    "minLength": 6
                }
            }
        },
        "schema.QuestionAddByAnswer": {
            "type": "object",
            "required": [
                "answer_content",
                "title"
            ],
            "properties": {
                "answer_content": {
                    "type": "string",
                    "maxLength": 65535,
                    "minLength": 6
                },
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "description": "captcha_id",
                    "type": "string"
                },
                "content": {
                    "description": "content",
                    "type": "string",
                    "maxLength": 65535,
                    "minLength": 0
                },
                "mention_username_list": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "tags": {
                    "description": "tags",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.TagItem"
                    }
                },
                "title": {
                    "description": "question title",
                    "type": "string",
                    "maxLength": 150,
                    "minLength": 6
                }
            }
        },
        "schema.QuestionInfoResp": {
            "type": "object",
            "properties": {
                "accepted_answer_id": {
                    "type": "string"
                },
                "answer_count": {
                    "type": "integer"
                },
                "answered": {
                    "type": "boolean"
                },
                "collected": {
                    "type": "boolean"
                },
                "collection_count": {
                    "type": "integer"
                },
                "content": {
                    "type": "string"
                },
                "create_time": {
                    "type": "integer"
                },
                "description": {
                    "type": "string"
                },
                "edit_time": {
                    "type": "integer"
                },
                "extends_actions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.PermissionMemberAction"
                    }
                },
                "first_answer_id": {
                    "type": "string"
                },
                "follow_count": {
                    "type": "integer"
                },
                "html": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "is_followed": {
                    "type": "boolean"
                },
                "last_answer_id": {
                    "type": "string"
                },
                "last_answered_user_info": {
                    "$ref": "#/definitions/schema.UserBasicInfo"
                },
                "member_actions": {
                    "description": "MemberActions",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.PermissionMemberAction"
                    }
                },
                "operation": {
                    "$ref": "#/definitions/schema.Operation"
                },
                "pin": {
                    "type": "integer"
                },
                "show": {
                    "type": "integer"
                },
                "status": {
                    "type": "integer"
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.TagResp"
                    }
                },
                "title": {
                    "type": "string"
                },
                "unique_view_count": {
                    "type": "integer"
                },
                "update_time": {
                    "type": "integer"
                },
                "update_user_info": {
                    "$ref": "#/definitions/schema.UserBasicInfo"
                },
                "url_title": {
                    "type": "string"
                },
                "user_info": {
                    "$ref": "#/definitions/schema.UserBasicInfo"
                },
                "view_count": {
                    "type": "integer"
                },
                "vote_count": {
                    "type": "integer"
                },
                "vote_status": {
                    "type": "string"
                }
            }
        },
        "schema.QuestionPageReq": {
            "type": "object",
            "properties": {
                "in_days": {
                    "type": "integer",
                    "minimum": 1
                },
                "order": {
                    "type": "string",
                    "enum": [
                        "newest",
                        "active",
                        "hot",
                        "score",
                        "unanswered",
                        "recommend",
                        "frequent"
                    ]
                },
                "page": {
                    "type": "integer",
                    "minimum": 1
                },
                "page_size": {
                    "type": "integer",
                    "minimum": 1
                },
                "tag": {
                    "type": "string",
                    "maxLength": 100
                },
                "username": {
                    "type": "string",
                    "maxLength": 100
                }
            }
        },
        "schema.QuestionPageResp": {
            "type": "object",
            "properties": {
                "accepted_answer_id": {
                    "description": "answer information",
                    "type": "string"
                },
                "answer_count": {
                    "type": "integer"
                },
                "collection_count": {
                    "type": "integer"
                },
                "created_at": {
                    "type": "integer"
                },
                "description": {
                    "type": "string"
                },
                "follow_count": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "last_answer_id": {
                    "type": "string"
                },
                "operated_at": {
                    "description": "operator information",
                    "type": "integer"
                },
                "operation_type": {
                    "type": "string"
                },
                "operator": {
                    "$ref": "#/definitions/schema.QuestionPageRespOperator"
                },
                "pin": {
                    "description": "1: unpin, 2: pin",
                    "type": "integer"
                },
                "show": {
                    "description": "0: show, 1: hide",
                    "type": "integer"
                },
                "status": {
                    "type": "integer"
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.TagResp"
                    }
                },
                "title": {
                    "type": "string"
                },
                "unique_view_count": {
                    "type": "integer"
                },
                "url_title": {
                    "type": "string"
                },
                "view_count": {
                    "description": "question statistical information",
                    "type": "integer"
                },
                "vote_count": {
                    "type": "integer"
                }
            }
        },
        "schema.QuestionPageRespOperator": {
            "type": "object",
            "properties": {
                "avatar": {
                    "type": "string"
                },
                "display_name": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "rank": {
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "schema.QuestionRecoverReq": {
            "type": "object",
            "required": [
                "question_id"
            ],
            "properties": {
                "question_id": {
                    "type": "string"
                }
            }
        },
        "schema.QuestionUpdate": {
            "type": "object",
            "required": [
                "id",
                "title"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "description": "captcha_id",
                    "type": "string"
                },
                "content": {
                    "description": "content",
                    "type": "string",
                    "maxLength": 65535,
                    "minLength": 0
                },
                "edit_summary": {
                    "description": "edit summary",
                    "type": "string"
                },
                "id": {
                    "description": "question id",
                    "type": "string"
                },
                "invite_user": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "tags": {
                    "description": "tags",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.TagItem"
                    }
                },
                "title": {
                    "description": "question title",
                    "type": "string",
                    "maxLength": 150,
                    "minLength": 6
                }
            }
        },
        "schema.QuestionUpdateInviteUser": {
            "type": "object",
            "required": [
                "id"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "description": "captcha_id",
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "invite_user": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "schema.ReactionRespItem": {
            "type": "object",
            "properties": {
                "count": {
                    "description": "Count is the number of users who reacted",
                    "type": "integer"
                },
                "emoji": {
                    "description": "Emoji is the reaction emoji",
                    "type": "string"
                },
                "is_active": {
                    "description": "IsActive is if current user has reacted",
                    "type": "boolean"
                },
                "tooltip": {
                    "description": "Tooltip is the user's name who reacted",
                    "type": "string"
                }
            }
        },
        "schema.ReasonItem": {
            "type": "object",
            "properties": {
                "content_type": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "placeholder": {
                    "type": "string"
                },
                "reason_key": {
                    "type": "string"
                },
                "reason_type": {
                    "type": "integer"
                }
            }
        },
        "schema.RecoverAnswerReq": {
            "type": "object",
            "required": [
                "answer_id"
            ],
            "properties": {
                "answer_id": {
                    "type": "string"
                }
            }
        },
        "schema.RecoverTagReq": {
            "type": "object",
            "required": [
                "tag_id"
            ],
            "properties": {
                "tag_id": {
                    "type": "string"
                }
            }
        },
        "schema.RemoveAnswerReq": {
            "type": "object",
            "required": [
                "id"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                }
            }
        },
        "schema.RemoveCommentReq": {
            "type": "object",
            "required": [
                "comment_id"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "type": "string"
                },
                "comment_id": {
                    "description": "comment id",
                    "type": "string"
                }
            }
        },
        "schema.RemoveQuestionReq": {
            "type": "object",
            "required": [
                "id"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "description": "captcha_id",
                    "type": "string"
                },
                "id": {
                    "description": "question id",
                    "type": "string"
                }
            }
        },
        "schema.RemoveTagReq": {
            "type": "object",
            "required": [
                "tag_id"
            ],
            "properties": {
                "tag_id": {
                    "description": "tag_id",
                    "type": "string"
                }
            }
        },
        "schema.ReopenQuestionReq": {
            "type": "object",
            "properties": {
                "question_id": {
                    "type": "string"
                }
            }
        },
        "schema.ReviewReportReq": {
            "type": "object",
            "required": [
                "flag_id",
                "operation_type"
            ],
            "properties": {
                "close_msg": {
                    "type": "string"
                },
                "close_type": {
                    "type": "integer"
                },
                "content": {
                    "type": "string",
                    "maxLength": 65535,
                    "minLength": 6
                },
                "flag_id": {
                    "type": "string"
                },
                "operation_type": {
                    "type": "string",
                    "enum": [
                        "edit_post",
                        "close_post",
                        "delete_post",
                        "unlist_post",
                        "ignore_report"
                    ]
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.TagItem"
                    }
                },
                "title": {
                    "type": "string",
                    "maxLength": 150,
                    "minLength": 6
                }
            }
        },
        "schema.RevisionAuditReq": {
            "type": "object",
            "required": [
                "id",
                "operation"
            ],
            "properties": {
                "id": {
                    "description": "object id",
                    "type": "string"
                },
                "operation": {
                    "description": "approve or reject",
                    "type": "string"
                }
            }
        },
        "schema.SearchObject": {
            "type": "object",
            "properties": {
                "accepted": {
                    "type": "boolean"
                },
                "answer_count": {
                    "type": "integer"
                },
                "created_at": {
                    "type": "integer"
                },
                "excerpt": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "question_id": {
                    "type": "string"
                },
                "status": {
                    "description": "Status",
                    "type": "string"
                },
                "tags": {
                    "description": "tags",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.TagResp"
                    }
                },
                "title": {
                    "type": "string"
                },
                "url_title": {
                    "type": "string"
                },
                "user_info": {
                    "description": "user info",
                    "allOf": [
                        {
                            "$ref": "#/definitions/schema.SearchObjectUser"
                        }
                    ]
                },
                "vote_count": {
                    "type": "integer"
                }
            }
        },
        "schema.SearchObjectUser": {
            "type": "object",
            "properties": {
                "display_name": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "rank": {
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "schema.SearchResp": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "list": {
                    "description": "search response",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.SearchResult"
                    }
                }
            }
        },
        "schema.SearchResult": {
            "type": "object",
            "properties": {
                "object": {
                    "description": "this object",
                    "allOf": [
                        {
                            "$ref": "#/definitions/schema.SearchObject"
                        }
                    ]
                },
                "object_type": {
                    "description": "object_type",
                    "type": "string"
                }
            }
        },
        "schema.SendUserActivationReq": {
            "type": "object",
            "required": [
                "user_id"
            ],
            "properties": {
                "user_id": {
                    "type": "string"
                }
            }
        },
        "schema.SiteAIProvider": {
            "type": "object",
            "properties": {
                "api_host": {
                    "type": "string",
                    "maxLength": 512
                },
                "api_key": {
                    "type": "string",
                    "maxLength": 256
                },
                "model": {
                    "type": "string",
                    "maxLength": 100
                },
                "provider": {
                    "type": "string",
                    "maxLength": 50
                }
            }
        },
        "schema.SiteAIReq": {
            "type": "object",
            "properties": {
                "ai_providers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.SiteAIProvider"
                    }
                },
                "chosen_provider": {
                    "type": "string",
                    "maxLength": 50
                },
                "enabled": {
                    "type": "boolean"
                },
                "prompt_config": {
                    "$ref": "#/definitions/schema.AIPromptConfig"
                }
            }
        },
        "schema.SiteAIResp": {
            "type": "object",
            "properties": {
                "ai_providers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.SiteAIProvider"
                    }
                },
                "chosen_provider": {
                    "type": "string",
                    "maxLength": 50
                },
                "enabled": {
                    "type": "boolean"
                },
                "prompt_config": {
                    "$ref": "#/definitions/schema.AIPromptConfig"
                }
            }
        },
        "schema.SiteAdvancedReq": {
            "type": "object",
            "properties": {
                "authorized_attachment_extensions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "authorized_image_extensions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "max_attachment_size": {
                    "type": "integer"
                },
                "max_image_megapixel": {
                    "type": "integer"
                },
                "max_image_size": {
                    "type": "integer"
                }
            }
        },
        "schema.SiteAdvancedResp": {
            "type": "object",
            "properties": {
                "authorized_attachment_extensions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "authorized_image_extensions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "max_attachment_size": {
                    "type": "integer"
                },
                "max_image_megapixel": {
                    "type": "integer"
                },
                "max_image_size": {
                    "type": "integer"
                }
            }
        },
        "schema.SiteBrandingReq": {
            "type": "object",
            "properties": {
                "favicon": {
                    "type": "string",
                    "maxLength": 512
                },
                "logo": {
                    "type": "string",
                    "maxLength": 512
                },
                "mobile_logo": {
                    "type": "string",
                    "maxLength": 512
                },
                "square_icon": {
                    "type": "string",
                    "maxLength": 512
                }
            }
        },
        "schema.SiteBrandingResp": {
            "type": "object",
            "properties": {
                "favicon": {
                    "type": "string",
                    "maxLength": 512
                },
                "logo": {
                    "type": "string",
                    "maxLength": 512
                },
                "mobile_logo": {
                    "type": "string",
                    "maxLength": 512
                },
                "square_icon": {
                    "type": "string",
                    "maxLength": 512
                }
            }
        },
        "schema.SiteCustomCssHTMLReq": {
            "type": "object",
            "properties": {
                "custom_css": {
                    "type": "string",
                    "maxLength": 65536
                },
                "custom_footer": {
                    "type": "string",
                    "maxLength": 65536
                },
                "custom_head": {
                    "type": "string",
                    "maxLength": 65536
                },
                "custom_header": {
                    "type": "string",
                    "maxLength": 65536
                },
                "custom_sidebar": {
                    "type": "string",
                    "maxLength": 65536
                }
            }
        },
        "schema.SiteCustomCssHTMLResp": {
            "type": "object",
            "properties": {
                "custom_css": {
                    "type": "string",
                    "maxLength": 65536
                },
                "custom_footer": {
                    "type": "string",
                    "maxLength": 65536
                },
                "custom_head": {
                    "type": "string",
                    "maxLength": 65536
                },
                "custom_header": {
                    "type": "string",
                    "maxLength": 65536
                },
                "custom_sidebar": {
                    "type": "string",
                    "maxLength": 65536
                }
            }
        },
        "schema.SiteGeneralReq": {
            "type": "object",
            "required": [
                "contact_email",
                "name",
                "site_url"
            ],
            "properties": {
                "contact_email": {
                    "type": "string",
                    "maxLength": 512
                },
                "description": {
                    "type": "string",
                    "maxLength": 2000
                },
                "name": {
                    "type": "string",
                    "maxLength": 128
                },
                "short_description": {
                    "type": "string",
                    "maxLength": 255
                },
                "site_url": {
                    "type": "string",
                    "maxLength": 512
                }
            }
        },
        "schema.SiteGeneralResp": {
            "type": "object",
            "required": [
                "contact_email",
                "name",
                "site_url"
            ],
            "properties": {
                "contact_email": {
                    "type": "string",
                    "maxLength": 512
                },
                "description": {
                    "type": "string",
                    "maxLength": 2000
                },
                "name": {
                    "type": "string",
                    "maxLength": 128
                },
                "short_description": {
                    "type": "string",
                    "maxLength": 255
                },
                "site_url": {
                    "type": "string",
                    "maxLength": 512
                }
            }
        },
        "schema.SiteInfoResp": {
            "type": "object",
            "properties": {
                "ai_enabled": {
                    "type": "boolean"
                },
                "branding": {
                    "$ref": "#/definitions/schema.SiteBrandingResp"
                },
                "custom_css_html": {
                    "$ref": "#/definitions/schema.SiteCustomCssHTMLResp"
                },
                "general": {
                    "$ref": "#/definitions/schema.SiteGeneralResp"
                },
                "interface": {
                    "$ref": "#/definitions/schema.SiteInterfaceSettingsResp"
                },
                "login": {
                    "$ref": "#/definitions/schema.SiteLoginResp"
                },
                "mcp_enabled": {
                    "type": "boolean"
                },
                "revision": {
                    "type": "string"
                },
                "site_advanced": {
                    "$ref": "#/definitions/schema.SiteAdvancedResp"
                },
                "site_legal": {
                    "$ref": "#/definitions/schema.SiteLegalSimpleResp"
                },
                "site_questions": {
                    "$ref": "#/definitions/schema.SiteQuestionsResp"
                },
                "site_security": {
                    "$ref": "#/definitions/schema.SiteSecurityResp"
                },
                "site_seo": {
                    "$ref": "#/definitions/schema.SiteSeoResp"
                },
                "site_tags": {
                    "$ref": "#/definitions/schema.SiteTagsResp"
                },
                "site_users": {
                    "$ref": "#/definitions/schema.SiteUsersResp"
                },
                "theme": {
                    "$ref": "#/definitions/schema.SiteThemeResp"
                },
                "users_settings": {
                    "$ref": "#/definitions/schema.SiteUsersSettingsResp"
                },
                "version": {
                    "type": "string"
                }
            }
        },
        "schema.SiteInterfaceReq": {
            "type": "object",
            "required": [
                "language",
                "time_zone"
            ],
            "properties": {
                "language": {
                    "type": "string",
                    "maxLength": 128
                },
                "time_zone": {
                    "type": "string",
                    "maxLength": 128
                }
            }
        },
        "schema.SiteInterfaceSettingsResp": {
            "type": "object",
            "required": [
                "language",
                "time_zone"
            ],
            "properties": {
                "language": {
                    "type": "string",
                    "maxLength": 128
                },
                "time_zone": {
                    "type": "string",
                    "maxLength": 128
                }
            }
        },
        "schema.SiteLegalSimpleResp": {
            "type": "object",
            "required": [
                "external_content_display"
            ],
            "properties": {
                "external_content_display": {
                    "type": "string",
                    "enum": [
                        "always_display",
                        "ask_before_display"
                    ]
                }
            }
        },
        "schema.SiteLoginReq": {
            "type": "object",
            "required": [
                "require_email_verification"
            ],
            "properties": {
                "allow_email_domains": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "allow_email_registrations": {
                    "type": "boolean"
                },
                "allow_new_registrations": {
                    "type": "boolean"
                },
                "allow_password_login": {
                    "type": "boolean"
                },
                "require_email_verification": {
                    "type": "boolean"
                }
            }
        },
        "schema.SiteLoginResp": {
            "type": "object",
            "properties": {
                "allow_email_domains": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "allow_email_registrations": {
                    "type": "boolean"
                },
                "allow_new_registrations": {
                    "type": "boolean"
                },
                "allow_password_login": {
                    "type": "boolean"
                },
                "require_email_verification": {
                    "type": "boolean"
                }
            }
        },
        "schema.SiteMCPReq": {
            "type": "object",
            "properties": {
                "enabled": {
                    "type": "boolean"
                }
            }
        },
        "schema.SiteMCPResp": {
            "type": "object",
            "properties": {
                "enabled": {
                    "type": "boolean"
                },
                "http_header": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "schema.SitePoliciesReq": {
            "type": "object",
            "properties": {
                "privacy_policy_original_text": {
                    "type": "string"
                },
                "privacy_policy_parsed_text": {
                    "type": "string"
                },
                "terms_of_service_original_text": {
                    "type": "string"
                },
                "terms_of_service_parsed_text": {
                    "type": "string"
                }
            }
        },
        "schema.SitePoliciesResp": {
            "type": "object",
            "properties": {
                "privacy_policy_original_text": {
                    "type": "string"
                },
                "privacy_policy_parsed_text": {
                    "type": "string"
                },
                "terms_of_service_original_text": {
                    "type": "string"
                },
                "terms_of_service_parsed_text": {
                    "type": "string"
                }
            }
        },
        "schema.SiteQuestionsReq": {
            "type": "object",
            "properties": {
                "min_content": {
                    "type": "integer",
                    "maximum": 65535,
                    "minimum": 0
                },
                "min_tags": {
                    "type": "integer",
                    "maximum": 5,
                    "minimum": 0
                },
                "restrict_answer": {
                    "type": "boolean"
                }
            }
        },
        "schema.SiteQuestionsResp": {
            "type": "object",
            "properties": {
                "min_content": {
                    "type": "integer",
                    "maximum": 65535,
                    "minimum": 0
                },
                "min_tags": {
                    "type": "integer",
                    "maximum": 5,
                    "minimum": 0
                },
                "restrict_answer": {
                    "type": "boolean"
                }
            }
        },
        "schema.SiteSecurityReq": {
            "type": "object",
            "required": [
                "external_content_display"
            ],
            "properties": {
                "check_update": {
                    "type": "boolean"
                },
                "external_content_display": {
                    "type": "string",
                    "enum": [
                        "always_display",
                        "ask_before_display"
                    ]
                },
                "login_required": {
                    "type": "boolean"
                }
            }
        },
        "schema.SiteSecurityResp": {
            "type": "object",
            "required": [
                "external_content_display"
            ],
            "properties": {
                "check_update": {
                    "type": "boolean"
                },
                "external_content_display": {
                    "type": "string",
                    "enum": [
                        "always_display",
                        "ask_before_display"
                    ]
                },
                "login_required": {
                    "type": "boolean"
                }
            }
        },
        "schema.SiteSeoReq": {
            "type": "object",
            "required": [
                "permalink",
                "robots"
            ],
            "properties": {
                "permalink": {
                    "type": "integer",
                    "maximum": 4,
                    "minimum": 0
                },
                "robots": {
                    "type": "string"
                }
            }
        },
        "schema.SiteSeoResp": {
            "type": "object",
            "required": [
                "permalink",
                "robots"
            ],
            "properties": {
                "permalink": {
                    "type": "integer",
                    "maximum": 4,
                    "minimum": 0
                },
                "robots": {
                    "type": "string"
                }
            }
        },
        "schema.SiteTagsReq": {
            "type": "object",
            "properties": {
                "recommend_tags": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.SiteWriteTag"
                    }
                },
                "required_tag": {
                    "type": "boolean"
                },
                "reserved_tags": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.SiteWriteTag"
                    }
                }
            }
        },
        "schema.SiteTagsResp": {
            "type": "object",
            "properties": {
                "recommend_tags": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.SiteWriteTag"
                    }
                },
                "required_tag": {
                    "type": "boolean"
                },
                "reserved_tags": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.SiteWriteTag"
                    }
                }
            }
        },
        "schema.SiteThemeReq": {
            "type": "object",
            "required": [
                "theme"
            ],
            "properties": {
                "color_scheme": {
                    "type": "string",
                    "maxLength": 100
                },
                "layout": {
                    "type": "string",
                    "enum": [
                        "Full-width",
                        "Fixed-width"
                    ]
                },
                "theme": {
                    "type": "string",
                    "maxLength": 255
                },
                "theme_config": {
                    "type": "object",
                    "additionalProperties": {}
                }
            }
        },
        "schema.SiteThemeResp": {
            "type": "object",
            "properties": {
                "color_scheme": {
                    "type": "string"
                },
                "layout": {
                    "type": "string"
                },
                "theme": {
                    "type": "string"
                },
                "theme_config": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "theme_options": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.ThemeOption"
                    }
                }
            }
        },
        "schema.SiteUsersReq": {
            "type": "object",
            "required": [
                "default_avatar"
            ],
            "properties": {
                "allow_update_avatar": {
                    "type": "boolean"
                },
                "allow_update_bio": {
                    "type": "boolean"
                },
                "allow_update_display_name": {
                    "type": "boolean"
                },
                "allow_update_location": {
                    "type": "boolean"
                },
                "allow_update_username": {
                    "type": "boolean"
                },
                "allow_update_website": {
                    "type": "boolean"
                },
                "default_avatar": {
                    "type": "string",
                    "enum": [
                        "system",
                        "gravatar"
                    ]
                },
                "gravatar_base_url": {
                    "type": "string"
                }
            }
        },
        "schema.SiteUsersResp": {
            "type": "object",
            "required": [
                "default_avatar"
            ],
            "properties": {
                "allow_update_avatar": {
                    "type": "boolean"
                },
                "allow_update_bio": {
                    "type": "boolean"
                },
                "allow_update_display_name": {
                    "type": "boolean"
                },
                "allow_update_location": {
                    "type": "boolean"
                },
                "allow_update_username": {
                    "type": "boolean"
                },
                "allow_update_website": {
                    "type": "boolean"
                },
                "default_avatar": {
                    "type": "string",
                    "enum": [
                        "system",
                        "gravatar"
                    ]
                },
                "gravatar_base_url": {
                    "type": "string"
                }
            }
        },
        "schema.SiteUsersSettingsReq": {
            "type": "object",
            "required": [
                "default_avatar"
            ],
            "properties": {
                "default_avatar": {
                    "type": "string",
                    "enum": [
                        "system",
                        "gravatar"
                    ]
                },
                "gravatar_base_url": {
                    "type": "string"
                }
            }
        },
        "schema.SiteUsersSettingsResp": {
            "type": "object",
            "required": [
                "default_avatar"
            ],
            "properties": {
                "default_avatar": {
                    "type": "string",
                    "enum": [
                        "system",
                        "gravatar"
                    ]
                },
                "gravatar_base_url": {
                    "type": "string"
                }
            }
        },
        "schema.SiteWriteTag": {
            "type": "object",
            "required": [
                "slug_name"
            ],
            "properties": {
                "display_name": {
                    "type": "string"
                },
                "slug_name": {
                    "type": "string"
                }
            }
        },
        "schema.TagItem": {
            "type": "object",
            "properties": {
                "display_name": {
                    "description": "display_name",
                    "type": "string",
                    "maxLength": 35
                },
                "original_text": {
                    "description": "original text",
                    "type": "string"
                },
                "slug_name": {
                    "description": "slug_name",
                    "type": "string",
                    "maxLength": 35
                }
            }
        },
        "schema.TagResp": {
            "type": "object",
            "properties": {
                "display_name": {
                    "type": "string"
                },
                "main_tag_slug_name": {
                    "description": "if main tag slug name is not empty, this tag is synonymous with the main tag",
                    "type": "string"
                },
                "recommend": {
                    "type": "boolean"
                },
                "reserved": {
                    "type": "boolean"
                },
                "slug_name": {
                    "type": "string"
                }
            }
        },
        "schema.TagSynonym": {
            "type": "object",
            "properties": {
                "display_name": {
                    "description": "display name",
                    "type": "string"
                },
                "main_tag_slug_name": {
                    "description": "if main tag slug name is not empty, this tag is synonymous with the main tag",
                    "type": "string"
                },
                "slug_name": {
                    "description": "slug name",
                    "type": "string"
                },
                "tag_id": {
                    "description": "tag id",
                    "type": "string"
                }
            }
        },
        "schema.ThemeOption": {
            "type": "object",
            "properties": {
                "label": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "schema.UIOptionAction": {
            "type": "object",
            "properties": {
                "loading": {
                    "$ref": "#/definitions/schema.LoadingAction"
                },
                "method": {
                    "type": "string"
                },
                "on_complete": {
                    "$ref": "#/definitions/schema.OnCompleteAction"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "schema.UnreviewedRevisionInfoInfo": {
            "type": "object",
            "properties": {
                "answer_accepted": {
                    "type": "boolean"
                },
                "answer_count": {
                    "type": "integer"
                },
                "answer_id": {
                    "type": "string"
                },
                "comment_id": {
                    "type": "string"
                },
                "content": {
                    "type": "string"
                },
                "created_at": {
                    "type": "integer"
                },
                "html": {
                    "type": "string"
                },
                "object_creator_user_id": {
                    "type": "string"
                },
                "object_id": {
                    "type": "string"
                },
                "object_type": {
                    "type": "string"
                },
                "question_id": {
                    "type": "string"
                },
                "show_status": {
                    "type": "integer"
                },
                "status": {
                    "type": "integer"
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.TagResp"
                    }
                },
                "title": {
                    "type": "string"
                },
                "url_title": {
                    "type": "string"
                }
            }
        },
        "schema.UpdateAPIKeyReq": {
            "type": "object",
            "required": [
                "description",
                "id"
            ],
            "properties": {
                "description": {
                    "type": "string",
                    "maxLength": 150
                },
                "id": {
                    "type": "integer"
                }
            }
        },
        "schema.UpdateBadgeStatusReq": {
            "type": "object",
            "required": [
                "id",
                "status"
            ],
            "properties": {
                "id": {
                    "description": "badge id",
                    "type": "string"
                },
                "status": {
                    "description": "badge status",
                    "allOf": [
                        {
                            "$ref": "#/definitions/schema.BadgeStatus"
                        }
                    ]
                }
            }
        },
        "schema.UpdateCommentReq": {
            "type": "object",
            "required": [
                "comment_id",
                "original_text"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "description": "whether user can delete it",
                    "type": "string"
                },
                "comment_id": {
                    "description": "comment id",
                    "type": "string"
                },
                "original_text": {
                    "description": "original comment content",
                    "type": "string",
                    "maxLength": 600,
                    "minLength": 2
                }
            }
        },
        "schema.UpdateFollowTagsReq": {
            "type": "object",
            "properties": {
                "slug_name_list": {
                    "description": "tag slug name list",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "schema.UpdateInfoRequest": {
            "type": "object",
            "properties": {
                "avatar": {
                    "$ref": "#/definitions/schema.AvatarInfo"
                },
                "bio": {
                    "type": "string",
                    "maxLength": 4096
                },
                "display_name": {
                    "type": "string",
                    "maxLength": 30,
                    "minLength": 2
                },
                "location": {
                    "type": "string",
                    "maxLength": 100
                },
                "username": {
                    "type": "string",
                    "maxLength": 30,
                    "minLength": 2
                },
                "website": {
                    "type": "string",
                    "maxLength": 500
                }
            }
        },
        "schema.UpdatePluginConfigReq": {
            "type": "object",
            "required": [
                "plugin_slug_name"
            ],
            "properties": {
                "config_fields": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "plugin_slug_name": {
                    "type": "string",
                    "maxLength": 100
                }
            }
        },
        "schema.UpdatePluginStatusReq": {
            "type": "object",
            "required": [
                "plugin_slug_name"
            ],
            "properties": {
                "enabled": {
                    "type": "boolean"
                },
                "plugin_slug_name": {
                    "type": "string",
                    "maxLength": 100
                }
            }
        },
        "schema.UpdatePrivilegesConfigReq": {
            "type": "object",
            "required": [
                "level"
            ],
            "properties": {
                "custom_privileges": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/constant.Privilege"
                    }
                },
                "level": {
                    "minimum": 1,
                    "allOf": [
                        {
                            "$ref": "#/definitions/schema.PrivilegeLevel"
                        }
                    ]
                }
            }
        },
        "schema.UpdateReactionReq": {
            "type": "object",
            "required": [
                "emoji",
                "object_id",
                "reaction"
            ],
            "properties": {
                "emoji": {
                    "type": "string",
                    "enum": [
                        "heart",
                        "smile",
                        "frown"
                    ]
                },
                "object_id": {
                    "type": "string"
                },
                "reaction": {
                    "type": "string",
                    "enum": [
                        "activate",
                        "deactivate"
                    ]
                }
            }
        },
        "schema.UpdateReviewReq": {
            "type": "object",
            "required": [
                "review_id",
                "status"
            ],
            "properties": {
                "review_id": {
                    "type": "integer"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "approve",
                        "reject"
                    ]
                }
            }
        },
        "schema.UpdateSMTPConfigReq": {
            "type": "object",
            "properties": {
                "encryption": {
                    "description": "\"\" SSL TLS",
                    "type": "string",
                    "enum": [
                        "SSL",
                        "TLS"
                    ]
                },
                "from_email": {
                    "type": "string",
                    "maxLength": 256
                },
                "from_name": {
                    "type": "string",
                    "maxLength": 256
                },
                "smtp_authentication": {
                    "type": "boolean"
                },
                "smtp_host": {
                    "type": "string",
                    "maxLength": 256
                },
                "smtp_password": {
                    "type": "string",
                    "maxLength": 256
                },
                "smtp_port": {
                    "type": "integer",
                    "maximum": 65535,
                    "minimum": 1
                },
                "smtp_username": {
                    "type": "string",
                    "maxLength": 256
                },
                "test_email_recipient": {
                    "type": "string"
                }
            }
        },
        "schema.UpdateTagReq": {
            "type": "object",
            "required": [
                "tag_id"
            ],
            "properties": {
                "display_name": {
                    "description": "display_name",
                    "type": "string",
                    "maxLength": 35
                },
                "edit_summary": {
                    "description": "edit summary",
                    "type": "string"
                },
                "original_text": {
                    "description": "original text",
                    "type": "string"
                },
                "slug_name": {
                    "description": "slug_name",
                    "type": "string",
                    "maxLength": 35
                },
                "tag_id": {
                    "description": "tag_id",
                    "type": "string"
                }
            }
        },
        "schema.UpdateTagSynonymReq": {
            "type": "object",
            "required": [
                "synonym_tag_list",
                "tag_id"
            ],
            "properties": {
                "synonym_tag_list": {
                    "description": "synonym tag list",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.TagItem"
                    }
                },
                "tag_id": {
                    "description": "tag_id",
                    "type": "string"
                }
            }
        },
        "schema.UpdateUserInterfaceRequest": {
            "type": "object",
            "required": [
                "color_scheme",
                "language"
            ],
            "properties": {
                "color_scheme": {
                    "description": "Color scheme",
                    "type": "string",
                    "maxLength": 100
                },
                "language": {
                    "description": "language",
                    "type": "string",
                    "maxLength": 100
                }
            }
        },
        "schema.UpdateUserNotificationConfigReq": {
            "type": "object",
            "properties": {
                "all_new_question": {
                    "$ref": "#/definitions/schema.NotificationChannelConfig"
                },
                "all_new_question_for_following_tags": {
                    "$ref": "#/definitions/schema.NotificationChannelConfig"
                },
                "inbox": {
                    "$ref": "#/definitions/schema.NotificationChannelConfig"
                }
            }
        },
        "schema.UpdateUserPasswordReq": {
            "type": "object",
            "required": [
                "password",
                "user_id"
            ],
            "properties": {
                "password": {
                    "type": "string",
                    "maxLength": 32,
                    "minLength": 8
                },
                "user_id": {
                    "type": "string"
                }
            }
        },
        "schema.UpdateUserPluginConfigReq": {
            "type": "object",
            "required": [
                "plugin_slug_name"
            ],
            "properties": {
                "config_fields": {
                    "type": "object",
                    "additionalProperties": {}
                },
                "plugin_slug_name": {
                    "type": "string",
                    "maxLength": 100
                }
            }
        },
        "schema.UpdateUserRoleReq": {
            "type": "object",
            "required": [
                "role_id",
                "user_id"
            ],
            "properties": {
                "role_id": {
                    "description": "role id",
                    "type": "integer"
                },
                "user_id": {
                    "description": "user id",
                    "type": "string"
                }
            }
        },
        "schema.UpdateUserStatusReq": {
            "type": "object",
            "required": [
                "status",
                "user_id"
            ],
            "properties": {
                "remove_all_content": {
                    "type": "boolean"
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "normal",
                        "suspended",
                        "deleted",
                        "inactive"
                    ]
                },
                "suspend_duration": {
                    "type": "string",
                    "enum": [
                        "24h",
                        "48h",
                        "72h",
                        "7d",
                        "14d",
                        "1m",
                        "2m",
                        "3m",
                        "6m",
                        "1y",
                        "forever"
                    ]
                },
                "user_id": {
                    "type": "string"
                }
            }
        },
        "schema.UserBasicInfo": {
            "type": "object",
            "properties": {
                "avatar": {
                    "type": "string"
                },
                "display_name": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "language": {
                    "type": "string"
                },
                "location": {
                    "type": "string"
                },
                "rank": {
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                },
                "suspended_until": {
                    "type": "integer"
                },
                "username": {
                    "type": "string"
                },
                "website": {
                    "type": "string"
                }
            }
        },
        "schema.UserChangeEmailSendCodeReq": {
            "type": "object",
            "required": [
                "e_mail"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "type": "string"
                },
                "e_mail": {
                    "type": "string",
                    "maxLength": 500
                },
                "pass": {
                    "type": "string",
                    "maxLength": 32,
                    "minLength": 8
                }
            }
        },
        "schema.UserChangeEmailVerifyReq": {
            "type": "object",
            "required": [
                "code"
            ],
            "properties": {
                "code": {
                    "type": "string",
                    "maxLength": 500
                }
            }
        },
        "schema.UserEmailLoginReq": {
            "type": "object",
            "required": [
                "e_mail",
                "pass"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "type": "string"
                },
                "e_mail": {
                    "type": "string",
                    "maxLength": 500
                },
                "pass": {
                    "type": "string",
                    "maxLength": 32,
                    "minLength": 8
                }
            }
        },
        "schema.UserLoginResp": {
            "type": "object",
            "properties": {
                "access_token": {
                    "description": "access token",
                    "type": "string"
                },
                "answer_count": {
                    "description": "answer count",
                    "type": "integer"
                },
                "authority_group": {
                    "description": "authority group",
                    "type": "integer"
                },
                "avatar": {
                    "description": "avatar",
                    "type": "string"
                },
                "bio": {
                    "description": "bio markdown",
                    "type": "string"
                },
                "bio_html": {
                    "description": "bio html",
                    "type": "string"
                },
                "color_scheme": {
                    "description": "Color scheme",
                    "type": "string"
                },
                "created_at": {
                    "description": "create time",
                    "type": "integer"
                },
                "display_name": {
                    "description": "display name",
                    "type": "string"
                },
                "e_mail": {
                    "description": "email",
                    "type": "string"
                },
                "follow_count": {
                    "description": "follow count",
                    "type": "integer"
                },
                "have_password": {
                    "description": "user have password",
                    "type": "boolean"
                },
                "id": {
                    "description": "user id",
                    "type": "string"
                },
                "language": {
                    "description": "language",
                    "type": "string"
                },
                "last_login_date": {
                    "description": "last login date",
                    "type": "integer"
                },
                "location": {
                    "description": "location",
                    "type": "string"
                },
                "mail_status": {
                    "description": "mail status(1 pass 2 to be verified)",
                    "type": "integer"
                },
                "mobile": {
                    "description": "mobile",
                    "type": "string"
                },
                "notice_status": {
                    "description": "notice status(1 on 2off)",
                    "type": "integer"
                },
                "question_count": {
                    "description": "question count",
                    "type": "integer"
                },
                "rank": {
                    "description": "rank",
                    "type": "integer"
                },
                "role_id": {
                    "description": "role id",
                    "type": "integer"
                },
                "status": {
                    "description": "user status",
                    "type": "string"
                },
                "suspended_until": {
                    "description": "suspended until timestamp",
                    "type": "integer"
                },
                "username": {
                    "description": "username",
                    "type": "string"
                },
                "visit_token": {
                    "description": "visit token",
                    "type": "string"
                },
                "website": {
                    "description": "website",
                    "type": "string"
                }
            }
        },
        "schema.UserModifyPasswordReq": {
            "type": "object",
            "required": [
                "pass"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "type": "string"
                },
                "old_pass": {
                    "type": "string",
                    "maxLength": 32,
                    "minLength": 8
                },
                "pass": {
                    "type": "string",
                    "maxLength": 32,
                    "minLength": 8
                }
            }
        },
        "schema.UserRankingResp": {
            "type": "object",
            "properties": {
                "staffs": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.UserRankingSimpleInfo"
                    }
                },
                "users_with_the_most_reputation": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.UserRankingSimpleInfo"
                    }
                },
                "users_with_the_most_vote": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/schema.UserRankingSimpleInfo"
                    }
                }
            }
        },
        "schema.UserRankingSimpleInfo": {
            "type": "object",
            "properties": {
                "avatar": {
                    "description": "avatar",
                    "type": "string"
                },
                "display_name": {
                    "description": "display name",
                    "type": "string"
                },
                "rank": {
                    "description": "rank",
                    "type": "integer"
                },
                "username": {
                    "description": "username",
                    "type": "string"
                },
                "vote_count": {
                    "description": "vote",
                    "type": "integer"
                }
            }
        },
        "schema.UserRePassWordRequest": {
            "type": "object",
            "required": [
                "code",
                "pass"
            ],
            "properties": {
                "code": {
                    "type": "string",
                    "maxLength": 100
                },
                "pass": {
                    "type": "string",
                    "maxLength": 32
                }
            }
        },
        "schema.UserRegisterReq": {
            "type": "object",
            "required": [
                "e_mail",
                "name",
                "pass"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "type": "string"
                },
                "e_mail": {
                    "type": "string",
                    "maxLength": 500
                },
                "name": {
                    "type": "string",
                    "maxLength": 30,
                    "minLength": 2
                },
                "pass": {
                    "type": "string",
                    "maxLength": 32,
                    "minLength": 8
                }
            }
        },
        "schema.UserRetrievePassWordRequest": {
            "type": "object",
            "required": [
                "e_mail"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "type": "string"
                },
                "e_mail": {
                    "type": "string",
                    "maxLength": 500
                }
            }
        },
        "schema.UserUnsubscribeNotificationReq": {
            "type": "object",
            "required": [
                "code"
            ],
            "properties": {
                "code": {
                    "type": "string",
                    "maxLength": 500
                }
            }
        },
        "schema.VoteReq": {
            "type": "object",
            "required": [
                "object_id"
            ],
            "properties": {
                "captcha_code": {
                    "type": "string"
                },
                "captcha_id": {
                    "type": "string"
                },
                "is_cancel": {
                    "type": "boolean"
                },
                "object_id": {
                    "type": "string"
                }
            }
        },
        "schema.VoteResp": {
            "type": "object",
            "properties": {
                "down_votes": {
                    "type": "integer"
                },
                "up_votes": {
                    "type": "integer"
                },
                "vote_status": {
                    "type": "string"
                },
                "votes": {
                    "type": "integer"
                }
            }
        },
        "translator.LangOption": {
            "type": "object",
            "properties": {
                "label": {
                    "type": "string"
                },
                "progress": {
                    "description": "Translation completion percentage",
                    "type": "integer"
                },
                "value": {
                    "type": "string"
                }
            }
        }
    },
    "securityDefinitions": {
        "ApiKeyAuth": {
            "type": "apiKey",
            "name": "Authorization",
            "in": "header"
        }
    }
}