{
  "openapi": "3.0.3",
  "info": {
    "title": "Kratos-CMS 后台管理API",
    "description": "Kratos-CMS 后台管理API",
    "contact": {
      "name": "tx7do",
      "url": "https://github.com/tx7do/kratos-cms",
      "email": "yanglinbo@gmail.com"
    },
    "license": {
      "name": "MIT License",
      "url": "https://github.com/tx7do/kratos-cms/blob/master/LICENSE"
    },
    "version": "1.0"
  },
  "paths": {
    "/admin/v1/attachments": {
      "get": {
        "tags": [
          "AttachmentService"
        ],
        "description": "获取附件列表",
        "operationId": "AttachmentService_ListAttachment",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "当前页码",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每一页的行数",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "AND过滤参数，其语法为json格式的字符串，如：{\"key1\":\"val1\",\"key2\":\"val2\"}，具体请参见：https://github.com/tx7do/go-utils/tree/main/entgo/query/README.md",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "or",
            "in": "query",
            "description": "OR过滤参数，语法同AND过滤参数。",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "排序条件，其语法为JSON字符串，例如：{\"val1\", \"-val2\"}。字段名前加'-'为降序，否则为升序。",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "noPaging",
            "in": "query",
            "description": "是否不分页，如果为true，则page和pageSize参数无效。",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "fieldMask",
            "in": "query",
            "description": "字段掩码，其作用为SELECT中的字段，其语法为使用逗号分隔字段名，例如：id,realName,userName。如果为空则选中所有字段，即SELECT *。",
            "schema": {
              "type": "string",
              "format": "field-mask"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListAttachmentResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "AttachmentService"
        ],
        "description": "创建附件",
        "operationId": "AttachmentService_CreateAttachment",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAttachmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Attachment"
                }
              }
            }
          }
        }
      }
    },
    "/admin/v1/attachments/{id}": {
      "get": {
        "tags": [
          "AttachmentService"
        ],
        "description": "获取附件数据",
        "operationId": "AttachmentService_GetAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Attachment"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "AttachmentService"
        ],
        "description": "更新附件",
        "operationId": "AttachmentService_UpdateAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Attachment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Attachment"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "AttachmentService"
        ],
        "description": "删除附件",
        "operationId": "AttachmentService_DeleteAttachment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {}
          }
        }
      }
    },
    "/admin/v1/categories": {
      "get": {
        "tags": [
          "CategoryService"
        ],
        "description": "获取类别列表",
        "operationId": "CategoryService_ListCategory",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "当前页码",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每一页的行数",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "AND过滤参数，其语法为json格式的字符串，如：{\"key1\":\"val1\",\"key2\":\"val2\"}，具体请参见：https://github.com/tx7do/go-utils/tree/main/entgo/query/README.md",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "or",
            "in": "query",
            "description": "OR过滤参数，语法同AND过滤参数。",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "排序条件，其语法为JSON字符串，例如：{\"val1\", \"-val2\"}。字段名前加'-'为降序，否则为升序。",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "noPaging",
            "in": "query",
            "description": "是否不分页，如果为true，则page和pageSize参数无效。",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "fieldMask",
            "in": "query",
            "description": "字段掩码，其作用为SELECT中的字段，其语法为使用逗号分隔字段名，例如：id,realName,userName。如果为空则选中所有字段，即SELECT *。",
            "schema": {
              "type": "string",
              "format": "field-mask"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCategoryResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "CategoryService"
        ],
        "description": "创建类别",
        "operationId": "CategoryService_CreateCategory",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCategoryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Category"
                }
              }
            }
          }
        }
      }
    },
    "/admin/v1/categories/{id}": {
      "get": {
        "tags": [
          "CategoryService"
        ],
        "description": "获取类别数据",
        "operationId": "CategoryService_GetCategory",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "fieldMask",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "field-mask"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Category"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "CategoryService"
        ],
        "description": "更新类别",
        "operationId": "CategoryService_UpdateCategory",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Category"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Category"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "CategoryService"
        ],
        "description": "删除类别",
        "operationId": "CategoryService_DeleteCategory",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {}
          }
        }
      }
    },
    "/admin/v1/comments": {
      "get": {
        "tags": [
          "CommentService"
        ],
        "description": "获取评论列表",
        "operationId": "CommentService_ListComment",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "当前页码",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每一页的行数",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "AND过滤参数，其语法为json格式的字符串，如：{\"key1\":\"val1\",\"key2\":\"val2\"}，具体请参见：https://github.com/tx7do/go-utils/tree/main/entgo/query/README.md",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "or",
            "in": "query",
            "description": "OR过滤参数，语法同AND过滤参数。",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "排序条件，其语法为JSON字符串，例如：{\"val1\", \"-val2\"}。字段名前加'-'为降序，否则为升序。",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "noPaging",
            "in": "query",
            "description": "是否不分页，如果为true，则page和pageSize参数无效。",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "fieldMask",
            "in": "query",
            "description": "字段掩码，其作用为SELECT中的字段，其语法为使用逗号分隔字段名，例如：id,realName,userName。如果为空则选中所有字段，即SELECT *。",
            "schema": {
              "type": "string",
              "format": "field-mask"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCommentResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "CommentService"
        ],
        "description": "创建评论",
        "operationId": "CommentService_CreateComment",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCommentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Comment"
                }
              }
            }
          }
        }
      }
    },
    "/admin/v1/comments/{id}": {
      "get": {
        "tags": [
          "CommentService"
        ],
        "description": "获取评论数据",
        "operationId": "CommentService_GetComment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Comment"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "CommentService"
        ],
        "description": "更新评论",
        "operationId": "CommentService_UpdateComment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Comment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Comment"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "CommentService"
        ],
        "description": "删除评论",
        "operationId": "CommentService_DeleteComment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {}
          }
        }
      }
    },
    "/admin/v1/links": {
      "get": {
        "tags": [
          "LinkService"
        ],
        "description": "获取链接列表",
        "operationId": "LinkService_ListLink",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "当前页码",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每一页的行数",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "AND过滤参数，其语法为json格式的字符串，如：{\"key1\":\"val1\",\"key2\":\"val2\"}，具体请参见：https://github.com/tx7do/go-utils/tree/main/entgo/query/README.md",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "or",
            "in": "query",
            "description": "OR过滤参数，语法同AND过滤参数。",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "排序条件，其语法为JSON字符串，例如：{\"val1\", \"-val2\"}。字段名前加'-'为降序，否则为升序。",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "noPaging",
            "in": "query",
            "description": "是否不分页，如果为true，则page和pageSize参数无效。",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "fieldMask",
            "in": "query",
            "description": "字段掩码，其作用为SELECT中的字段，其语法为使用逗号分隔字段名，例如：id,realName,userName。如果为空则选中所有字段，即SELECT *。",
            "schema": {
              "type": "string",
              "format": "field-mask"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListLinkResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "LinkService"
        ],
        "description": "创建链接",
        "operationId": "LinkService_CreateLink",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLinkRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Link"
                }
              }
            }
          }
        }
      }
    },
    "/admin/v1/links/{id}": {
      "get": {
        "tags": [
          "LinkService"
        ],
        "description": "获取链接数据",
        "operationId": "LinkService_GetLink",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Link"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "LinkService"
        ],
        "description": "更新链接",
        "operationId": "LinkService_UpdateLink",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Link"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Link"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "LinkService"
        ],
        "description": "删除链接",
        "operationId": "LinkService_DeleteLink",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {}
          }
        }
      }
    },
    "/admin/v1/login": {
      "post": {
        "tags": [
          "AuthenticationService"
        ],
        "description": "后台登陆",
        "operationId": "AuthenticationService_Login",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponse"
                }
              }
            }
          }
        },
        "security": [
          {}
        ]
      }
    },
    "/admin/v1/logout": {
      "post": {
        "tags": [
          "AuthenticationService"
        ],
        "description": "后台登出",
        "operationId": "AuthenticationService_Logout",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LogoutRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {}
          }
        }
      }
    },
    "/admin/v1/me": {
      "get": {
        "tags": [
          "AuthenticationService"
        ],
        "description": "后台获取已经登陆的用户的数据",
        "operationId": "AuthenticationService_GetMe",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          }
        }
      }
    },
    "/admin/v1/menus": {
      "get": {
        "tags": [
          "MenuService"
        ],
        "description": "获取目录列表",
        "operationId": "MenuService_ListMenu",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "当前页码",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每一页的行数",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "AND过滤参数，其语法为json格式的字符串，如：{\"key1\":\"val1\",\"key2\":\"val2\"}，具体请参见：https://github.com/tx7do/go-utils/tree/main/entgo/query/README.md",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "or",
            "in": "query",
            "description": "OR过滤参数，语法同AND过滤参数。",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "排序条件，其语法为JSON字符串，例如：{\"val1\", \"-val2\"}。字段名前加'-'为降序，否则为升序。",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "noPaging",
            "in": "query",
            "description": "是否不分页，如果为true，则page和pageSize参数无效。",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "fieldMask",
            "in": "query",
            "description": "字段掩码，其作用为SELECT中的字段，其语法为使用逗号分隔字段名，例如：id,realName,userName。如果为空则选中所有字段，即SELECT *。",
            "schema": {
              "type": "string",
              "format": "field-mask"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListMenuResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "MenuService"
        ],
        "description": "创建目录",
        "operationId": "MenuService_CreateMenu",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMenuRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Menu"
                }
              }
            }
          }
        }
      }
    },
    "/admin/v1/menus/{id}": {
      "get": {
        "tags": [
          "MenuService"
        ],
        "description": "获取目录数据",
        "operationId": "MenuService_GetMenu",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Menu"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "MenuService"
        ],
        "description": "更新目录",
        "operationId": "MenuService_UpdateMenu",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Menu"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Menu"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "MenuService"
        ],
        "description": "删除目录",
        "operationId": "MenuService_DeleteMenu",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {}
          }
        }
      }
    },
    "/admin/v1/photos": {
      "get": {
        "tags": [
          "PhotoService"
        ],
        "description": "获取照片列表",
        "operationId": "PhotoService_ListPhoto",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "当前页码",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每一页的行数",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "AND过滤参数，其语法为json格式的字符串，如：{\"key1\":\"val1\",\"key2\":\"val2\"}，具体请参见：https://github.com/tx7do/go-utils/tree/main/entgo/query/README.md",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "or",
            "in": "query",
            "description": "OR过滤参数，语法同AND过滤参数。",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "排序条件，其语法为JSON字符串，例如：{\"val1\", \"-val2\"}。字段名前加'-'为降序，否则为升序。",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "noPaging",
            "in": "query",
            "description": "是否不分页，如果为true，则page和pageSize参数无效。",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "fieldMask",
            "in": "query",
            "description": "字段掩码，其作用为SELECT中的字段，其语法为使用逗号分隔字段名，例如：id,realName,userName。如果为空则选中所有字段，即SELECT *。",
            "schema": {
              "type": "string",
              "format": "field-mask"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPhotoResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "PhotoService"
        ],
        "description": "创建照片",
        "operationId": "PhotoService_CreatePhoto",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePhotoRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Photo"
                }
              }
            }
          }
        }
      }
    },
    "/admin/v1/photos/{id}": {
      "get": {
        "tags": [
          "PhotoService"
        ],
        "description": "获取照片数据",
        "operationId": "PhotoService_GetPhoto",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Photo"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "PhotoService"
        ],
        "description": "更新照片",
        "operationId": "PhotoService_UpdatePhoto",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Photo"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Photo"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "PhotoService"
        ],
        "description": "删除照片",
        "operationId": "PhotoService_DeletePhoto",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {}
          }
        }
      }
    },
    "/admin/v1/posts": {
      "get": {
        "tags": [
          "PostService"
        ],
        "description": "获取帖子列表",
        "operationId": "PostService_ListPost",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "当前页码",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每一页的行数",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "AND过滤参数，其语法为json格式的字符串，如：{\"key1\":\"val1\",\"key2\":\"val2\"}，具体请参见：https://github.com/tx7do/go-utils/tree/main/entgo/query/README.md",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "or",
            "in": "query",
            "description": "OR过滤参数，语法同AND过滤参数。",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "排序条件，其语法为JSON字符串，例如：{\"val1\", \"-val2\"}。字段名前加'-'为降序，否则为升序。",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "noPaging",
            "in": "query",
            "description": "是否不分页，如果为true，则page和pageSize参数无效。",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "fieldMask",
            "in": "query",
            "description": "字段掩码，其作用为SELECT中的字段，其语法为使用逗号分隔字段名，例如：id,realName,userName。如果为空则选中所有字段，即SELECT *。",
            "schema": {
              "type": "string",
              "format": "field-mask"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPostResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "PostService"
        ],
        "description": "创建帖子",
        "operationId": "PostService_CreatePost",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePostRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Post"
                }
              }
            }
          }
        }
      }
    },
    "/admin/v1/posts/{id}": {
      "get": {
        "tags": [
          "PostService"
        ],
        "description": "获取帖子数据",
        "operationId": "PostService_GetPost",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Post"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "PostService"
        ],
        "description": "更新帖子",
        "operationId": "PostService_UpdatePost",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Post"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "PostService"
        ],
        "description": "删除帖子",
        "operationId": "PostService_DeletePost",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {}
          }
        }
      }
    },
    "/admin/v1/system": {
      "get": {
        "tags": [
          "SystemService"
        ],
        "description": "获取系统设置列表",
        "operationId": "SystemService_ListSystem",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "当前页码",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每一页的行数",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "AND过滤参数，其语法为json格式的字符串，如：{\"key1\":\"val1\",\"key2\":\"val2\"}，具体请参见：https://github.com/tx7do/go-utils/tree/main/entgo/query/README.md",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "or",
            "in": "query",
            "description": "OR过滤参数，语法同AND过滤参数。",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "排序条件，其语法为JSON字符串，例如：{\"val1\", \"-val2\"}。字段名前加'-'为降序，否则为升序。",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "noPaging",
            "in": "query",
            "description": "是否不分页，如果为true，则page和pageSize参数无效。",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "fieldMask",
            "in": "query",
            "description": "字段掩码，其作用为SELECT中的字段，其语法为使用逗号分隔字段名，例如：id,realName,userName。如果为空则选中所有字段，即SELECT *。",
            "schema": {
              "type": "string",
              "format": "field-mask"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSystemResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "SystemService"
        ],
        "description": "创建系统设置",
        "operationId": "SystemService_CreateSystem",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSystemRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/System"
                }
              }
            }
          }
        }
      }
    },
    "/admin/v1/system/{id}": {
      "get": {
        "tags": [
          "SystemService"
        ],
        "description": "获取系统设置数据",
        "operationId": "SystemService_GetSystem",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/System"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "SystemService"
        ],
        "description": "更新系统设置",
        "operationId": "SystemService_UpdateSystem",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/System"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/System"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "SystemService"
        ],
        "description": "删除系统设置",
        "operationId": "SystemService_DeleteSystem",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {}
          }
        }
      }
    },
    "/admin/v1/tags": {
      "get": {
        "tags": [
          "TagService"
        ],
        "description": "获取标签列表",
        "operationId": "TagService_ListTag",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "当前页码",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每一页的行数",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "AND过滤参数，其语法为json格式的字符串，如：{\"key1\":\"val1\",\"key2\":\"val2\"}，具体请参见：https://github.com/tx7do/go-utils/tree/main/entgo/query/README.md",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "or",
            "in": "query",
            "description": "OR过滤参数，语法同AND过滤参数。",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "排序条件，其语法为JSON字符串，例如：{\"val1\", \"-val2\"}。字段名前加'-'为降序，否则为升序。",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "noPaging",
            "in": "query",
            "description": "是否不分页，如果为true，则page和pageSize参数无效。",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "fieldMask",
            "in": "query",
            "description": "字段掩码，其作用为SELECT中的字段，其语法为使用逗号分隔字段名，例如：id,realName,userName。如果为空则选中所有字段，即SELECT *。",
            "schema": {
              "type": "string",
              "format": "field-mask"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListTagResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "TagService"
        ],
        "description": "创建标签",
        "operationId": "TagService_CreateTag",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTagRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tag"
                }
              }
            }
          }
        }
      }
    },
    "/admin/v1/tags/{id}": {
      "get": {
        "tags": [
          "TagService"
        ],
        "description": "获取标签数据",
        "operationId": "TagService_GetTag",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tag"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "TagService"
        ],
        "description": "更新标签",
        "operationId": "TagService_UpdateTag",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Tag"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tag"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "TagService"
        ],
        "description": "删除标签",
        "operationId": "TagService_DeleteTag",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {}
          }
        }
      }
    },
    "/admin/v1/users": {
      "get": {
        "tags": [
          "UserService"
        ],
        "description": "获取用户列表",
        "operationId": "UserService_ListUser",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "当前页码",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每一页的行数",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "AND过滤参数，其语法为json格式的字符串，如：{\"key1\":\"val1\",\"key2\":\"val2\"}，具体请参见：https://github.com/tx7do/go-utils/tree/main/entgo/query/README.md",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "or",
            "in": "query",
            "description": "OR过滤参数，语法同AND过滤参数。",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "description": "排序条件，其语法为JSON字符串，例如：{\"val1\", \"-val2\"}。字段名前加'-'为降序，否则为升序。",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "noPaging",
            "in": "query",
            "description": "是否不分页，如果为true，则page和pageSize参数无效。",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "fieldMask",
            "in": "query",
            "description": "字段掩码，其作用为SELECT中的字段，其语法为使用逗号分隔字段名，例如：id,realName,userName。如果为空则选中所有字段，即SELECT *。",
            "schema": {
              "type": "string",
              "format": "field-mask"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListUserResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "UserService"
        ],
        "description": "创建用户",
        "operationId": "UserService_CreateUser",
        "parameters": [
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          }
        }
      }
    },
    "/admin/v1/users/{id}": {
      "get": {
        "tags": [
          "UserService"
        ],
        "description": "获取用户数据",
        "operationId": "UserService_GetUser",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "UserService"
        ],
        "description": "更新用户",
        "operationId": "UserService_UpdateUser",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "UserService"
        ],
        "description": "删除用户",
        "operationId": "UserService_DeleteUser",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          },
          {
            "name": "operatorId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "uint32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {}
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Any": {
        "type": "object",
        "properties": {
          "value": {
            "$ref": "#/components/schemas/GoogleProtobufAny"
          },
          "yaml": {
            "type": "string"
          }
        }
      },
      "AnyOrExpression": {
        "type": "object",
        "properties": {
          "any": {
            "$ref": "#/components/schemas/Any"
          },
          "expression": {
            "$ref": "#/components/schemas/Expression"
          }
        }
      },
      "Attachment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "uint32"
          },
          "name": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "fileKey": {
            "type": "string"
          },
          "thumbPath": {
            "type": "string"
          },
          "mediaType": {
            "type": "string"
          },
          "suffix": {
            "type": "string"
          },
          "width": {
            "type": "integer",
            "format": "int32"
          },
          "height": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "string"
          },
          "type": {
            "type": "integer",
            "format": "int32"
          },
          "createTime": {
            "type": "string"
          },
          "updateTime": {
            "type": "string"
          },
          "deleteTime": {
            "type": "string"
          }
        },
        "description": "附件"
      },
      "Category": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "uint32"
          },
          "parentId": {
            "type": "integer",
            "format": "uint32"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "thumbnail": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "fullPath": {
            "type": "string"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "createTime": {
            "type": "string"
          },
          "updateTime": {
            "type": "string"
          },
          "postCount": {
            "type": "integer",
            "format": "uint32"
          }
        },
        "description": "类别"
      },
      "Comment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "uint32"
          },
          "author": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "ipAddress": {
            "type": "string"
          },
          "authorUrl": {
            "type": "string"
          },
          "gravatarMd5": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "status": {
            "type": "integer",
            "format": "uint32"
          },
          "userAgent": {
            "type": "string"
          },
          "parentId": {
            "type": "integer",
            "format": "uint32"
          },
          "isAdmin": {
            "type": "boolean"
          },
          "allowNotification": {
            "type": "boolean"
          },
          "avatar": {
            "type": "string"
          },
          "createTime": {
            "type": "string"
          },
          "updateTime": {
            "type": "string"
          }
        },
        "description": "评论"
      },
      "CreateAttachmentRequest": {
        "type": "object",
        "properties": {
          "attachment": {
            "$ref": "#/components/schemas/Attachment"
          },
          "operatorId": {
            "type": "integer",
            "format": "uint32"
          }
        },
        "description": "创建附件 - 请求"
      },
      "CreateCategoryRequest": {
        "type": "object",
        "properties": {
          "category": {
            "$ref": "#/components/schemas/Category"
          },
          "operatorId": {
            "type": "integer",
            "format": "uint32"
          }
        },
        "description": "请求 - 创建类别"
      },
      "CreateCommentRequest": {
        "type": "object",
        "properties": {
          "comment": {
            "$ref": "#/components/schemas/Comment"
          },
          "operatorId": {
            "type": "integer",
            "format": "uint32"
          }
        },
        "description": "请求 - 创建评论"
      },
      "CreateLinkRequest": {
        "type": "object",
        "properties": {
          "link": {
            "$ref": "#/components/schemas/Link"
          },
          "operatorId": {
            "type": "integer",
            "format": "uint32"
          }
        },
        "description": "请求 - 创建链接"
      },
      "CreateMenuRequest": {
        "type": "object",
        "properties": {
          "menu": {
            "$ref": "#/components/schemas/Menu"
          },
          "operatorId": {
            "type": "integer",
            "format": "uint32"
          }
        },
        "description": "请求 - 创建菜单"
      },
      "CreatePhotoRequest": {
        "type": "object",
        "properties": {
          "photo": {
            "$ref": "#/components/schemas/Photo"
          },
          "operatorId": {
            "type": "integer",
            "format": "uint32"
          }
        },
        "description": "请求 - 创建照片"
      },
      "CreatePostRequest": {
        "type": "object",
        "properties": {
          "post": {
            "$ref": "#/components/schemas/Post"
          },
          "operatorId": {
            "type": "integer",
            "format": "uint32"
          }
        },
        "description": "请求 - 创建帖子"
      },
      "CreateSystemRequest": {
        "type": "object",
        "properties": {
          "system": {
            "$ref": "#/components/schemas/System"
          },
          "operatorId": {
            "type": "string"
          }
        },
        "description": "请求 - 创建系统设置"
      },
      "CreateTagRequest": {
        "type": "object",
        "properties": {
          "tag": {
            "$ref": "#/components/schemas/Tag"
          },
          "operatorId": {
            "type": "integer",
            "format": "uint32"
          }
        },
        "description": "请求 - 创建标签"
      },
      "Expression": {
        "type": "object",
        "properties": {
          "additionalProperties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NamedAny"
            }
          }
        }
      },
      "ExternalDocs": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "specificationExtension": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NamedAny"
            }
          }
        },
        "description": "Allows referencing an external resource for extended documentation."
      },
      "GoogleProtobufAny": {
        "type": "object",
        "properties": {
          "@type": {
            "type": "string",
            "description": "The type of the serialized message."
          }
        },
        "additionalProperties": true,
        "description": "Contains an arbitrary serialized message along with a @type that describes the type of the serialized message."
      },
      "KratosStatus": {
        "type": "object",
        "properties": {
          "code": {
            "type": "number",
            "description": "错误码",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "错误消息"
          },
          "reason": {
            "type": "string",
            "description": "错误原因"
          },
          "metadata": {
            "type": "object",
            "description": "元数据"
          }
        },
        "description": "Kratos错误返回"
      },
      "Link": {
        "type": "object",
        "properties": {
          "operationRef": {
            "type": "string"
          },
          "operationId": {
            "type": "string"
          },
          "parameters": {
            "$ref": "#/components/schemas/AnyOrExpression"
          },
          "requestBody": {
            "$ref": "#/components/schemas/AnyOrExpression"
          },
          "description": {
            "type": "string"
          },
          "server": {
            "$ref": "#/components/schemas/Server"
          },
          "specificationExtension": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NamedAny"
            }
          }
        },
        "description": "The `Link object` represents a possible design-time link for a response. The presence of a link does not guarantee the caller's ability to successfully invoke it, rather it provides a known relationship and traversal mechanism between responses and other operations.  Unlike _dynamic_ links (i.e. links provided **in** the response payload), the OAS linking mechanism does not require link information in the runtime response.  For computing links, and providing instructions to execute them, a runtime expression is used for accessing values in an operation and using them as parameters while invoking the linked operation."
      },
      "ListAttachmentResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Attachment"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "description": "附件列表 - 回应"
      },
      "ListCategoryResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Category"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "description": "回应 - 类别列表"
      },
      "ListCommentResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Comment"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "description": "回应 - 评论列表"
      },
      "ListLinkResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "description": "回应 - 链接列表"
      },
      "ListMenuResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Menu"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "description": "回应 - 菜单列表"
      },
      "ListPhotoResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Photo"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "description": "回应 - 照片列表"
      },
      "ListPostResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Post"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "description": "回应 - 帖子列表"
      },
      "ListSystemResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/System"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "description": "回应 - 系统设置列表"
      },
      "ListTagResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "description": "回应 - 标签列表"
      },
      "ListUserResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            }
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "description": "获取用户列表 - 答复"
      },
      "LoginRequest": {
        "required": [
          "username",
          "password",
          "grant_type"
        ],
        "type": "object",
        "properties": {
          "username": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "grant_type": {
            "type": "string",
            "default": "password",
            "description": "授权类型，此处的值固定为\"password\"，必选项。"
          },
          "scope": {
            "type": "string"
          },
          "client_id": {
            "type": "string",
            "description": "应用程序的识别ID"
          },
          "client_secret": {
            "type": "string",
            "description": "应用程序的密码"
          }
        },
        "description": "用户后台登陆 - 请求"
      },
      "LoginResponse": {
        "required": [
          "access_token",
          "refresh_token"
        ],
        "type": "object",
        "properties": {
          "access_token": {
            "type": "string",
            "description": "访问令牌，必选项。授权服务器颁发的访问令牌字符串。"
          },
          "refresh_token": {
            "type": "string",
            "description": "更新令牌，用来获取下一次的访问令牌，可选项。如果访问令牌将过期，则返回刷新令牌很有用，应用程序可以使用该刷新令牌来获取另一个访问令牌。但是，通过隐式授予颁发的令牌不能颁发刷新令牌。"
          },
          "token_type": {
            "type": "string",
            "default": "Bearer",
            "description": "令牌的类型，该值大小写不敏感，必选项，可以是bearer类型或mac类型，通常只是字符串“Bearer”。"
          },
          "expires_in": {
            "type": "string",
            "description": "令牌有效时间，单位为秒。如果访问令牌过期，服务器应回复授予访问令牌的持续时间。如果省略该参数，必须其他方式设置过期时间。"
          },
          "scope": {
            "type": "string",
            "description": "以空格分隔的用户授予范围列表。如果未提供，scope则授权任何范围，默认为空列表。"
          }
        },
        "description": "用户后台登陆 - 回应"
      },
      "LogoutRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "uint32"
          }
        },
        "description": "用户后台登出 - 请求"
      },
      "Menu": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "uint32"
          },
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "target": {
            "type": "string"
          },
          "icon": {
            "type": "string"
          },
          "parentId": {
            "type": "integer",
            "format": "uint32"
          },
          "team": {
            "type": "string"
          },
          "createTime": {
            "type": "string"
          },
          "updateTime": {
            "type": "string"
          }
        },
        "description": "菜单"
      },
      "NamedAny": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Map key"
          },
          "value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Any"
              }
            ],
            "description": "Mapped value"
          }
        },
        "description": "Automatically-generated message used to represent maps of Any as ordered (name,value) pairs."
      },
      "NamedServerVariable": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Map key"
          },
          "value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ServerVariable"
              }
            ],
            "description": "Mapped value"
          }
        },
        "description": "Automatically-generated message used to represent maps of ServerVariable as ordered (name,value) pairs."
      },
      "Photo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "uint32"
          },
          "name": {
            "type": "string"
          },
          "thumbnail": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "team": {
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "likes": {
            "type": "integer",
            "format": "int32"
          },
          "takeTime": {
            "type": "string"
          },
          "createTime": {
            "type": "string"
          }
        },
        "description": "照片"
      },
      "Post": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "uint32"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "integer",
            "format": "int32"
          },
          "slug": {
            "type": "string"
          },
          "editorType": {
            "type": "integer",
            "format": "int32"
          },
          "metaKeywords": {
            "type": "string"
          },
          "metaDescription": {
            "type": "string"
          },
          "fullPath": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "thumbnail": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "template": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "originalContent": {
            "type": "string"
          },
          "visits": {
            "type": "integer",
            "format": "int32"
          },
          "topPriority": {
            "type": "integer",
            "format": "int32"
          },
          "likes": {
            "type": "integer",
            "format": "int32"
          },
          "wordCount": {
            "type": "integer",
            "format": "int32"
          },
          "commentCount": {
            "type": "integer",
            "format": "int32"
          },
          "disallowComment": {
            "type": "boolean"
          },
          "inProgress": {
            "type": "boolean"
          },
          "createTime": {
            "type": "string"
          },
          "updateTime": {
            "type": "string"
          },
          "editTime": {
            "type": "string"
          }
        },
        "description": "帖子"
      },
      "Server": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "variables": {
            "$ref": "#/components/schemas/ServerVariables"
          },
          "specificationExtension": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NamedAny"
            }
          }
        },
        "description": "An object representing a Server."
      },
      "ServerVariable": {
        "type": "object",
        "properties": {
          "enum": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "default": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "specificationExtension": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NamedAny"
            }
          }
        },
        "description": "An object representing a Server Variable for server URL template substitution."
      },
      "ServerVariables": {
        "type": "object",
        "properties": {
          "additionalProperties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NamedServerVariable"
            }
          }
        }
      },
      "System": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "theme": {
            "type": "integer",
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "keywords": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "recordNumber": {
            "type": "string"
          }
        }
      },
      "Tag": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "externalDocs": {
            "$ref": "#/components/schemas/ExternalDocs"
          },
          "specificationExtension": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NamedAny"
            }
          }
        },
        "description": "Adds metadata to a single tag that is used by the Operation Object. It is not mandatory to have a Tag Object per tag defined in the Operation Object instances."
      },
      "User": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "uint32"
          },
          "userName": {
            "type": "string"
          },
          "nickName": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "avatar": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "createTime": {
            "type": "string"
          },
          "updateTime": {
            "type": "string"
          },
          "status": {
            "enum": [
              "ON",
              "OFF"
            ],
            "type": "string",
            "default": "ON",
            "description": "用户状态"
          },
          "roleId": {
            "type": "integer",
            "description": "角色ID",
            "format": "uint32"
          },
          "creatorId": {
            "type": "integer",
            "description": "创建者ID",
            "format": "uint32"
          },
          "authority": {
            "enum": [
              "SYS_ADMIN",
              "CUSTOMER_USER",
              "GUEST_USER"
            ],
            "type": "string",
            "default": "CUSTOMER_USER",
            "description": "权限",
            "format": "enum"
          }
        },
        "description": "用户"
      }
    },
    "responses": {
      "default": {
        "description": "default kratos response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/KratosStatus"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "OAuth2PasswordBearer": {
        "type": "oauth2",
        "flows": {
          "password": {
            "tokenUrl": "/admin/v1/login",
            "refreshUrl": "/admin/v1/refresh_token",
            "scopes": {}
          }
        }
      }
    }
  },
  "security": [
    {
      "OAuth2PasswordBearer": []
    }
  ],
  "tags": [
    {
      "name": "AttachmentService",
      "description": "附件服务"
    },
    {
      "name": "AuthenticationService",
      "description": "用户后台登陆认证服务"
    },
    {
      "name": "CategoryService",
      "description": "类别服务"
    },
    {
      "name": "CommentService",
      "description": "评论服务"
    },
    {
      "name": "LinkService",
      "description": "链接服务"
    },
    {
      "name": "MenuService",
      "description": "菜单服务"
    },
    {
      "name": "PhotoService",
      "description": "照片服务"
    },
    {
      "name": "PostService",
      "description": "帖子服务"
    },
    {
      "name": "SystemService",
      "description": "系统配置服务"
    },
    {
      "name": "TagService",
      "description": "标签服务"
    },
    {
      "name": "UserService",
      "description": "用户管理服务"
    }
  ]
}