{
  "swagger": "2.0",
  "info": {
    "title": "任务服务",
    "version": "1.0.0"
  },
  "basePath": "/",
  "paths": {
    "/admin/task/board": {
      "post": {
        "tags": [
          "任务看板管理"
        ],
        "summary": "创建自定义看板",
        "description": "创建自定义看板，自动添加创建者为看板成员，并创建默认状态列（待办、进行中、已完成）。\n\n**权限**：需管理员登录。",
        "operationId": "createBoardUsingPOST_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "req",
            "description": "创建看板请求",
            "required": false,
            "schema": {
              "$ref": "#/definitions/创建看板请求",
              "originalRef": "创建看板请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«看板信息»",
              "originalRef": "统一响应结果«看板信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«看板信息»",
              "originalRef": "统一响应结果«看板信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/board/ws-doc/info": {
      "get": {
        "tags": [
          "WebSocket 实时推送"
        ],
        "summary": "WebSocket 连接说明",
        "description": "## 连接信息\n\n| 项目 | 值 |\n|------|-------|\n| **连接地址** | `ws://{host}:8092/ws/task` |\n| **协议** | STOMP over WebSocket（SockJS 降级方案） |\n| **跨域** | 允许所有源 (`*`) |\n\n## 订阅频道\n\n| 订阅地址 | 说明 |\n|------------|-------------|\n| `/topic/board/{boardId}` | 订阅指定看板，接收该看板下的实时任务事件 |\n\n## 推送消息格式\n\n```json\n{\n  \"event\": \"TASK_CREATED\",\n  \"data\": { ... },\n  \"timestamp\": 1709539200000\n}\n```\n\n## 事件类型\n\n| 事件 | 说明 | data 内容 |\n|-------|------------|------|\n| TASK_CREATED | 任务创建 | 任务对象 |\n| TASK_UPDATED | 任务更新 | 任务对象 |\n| TASK_DELETED | 任务删除 | 任务ID |\n| TASK_MOVED | 任务移动（状态变更） | 任务对象 |\n| COMMENT_ADDED | 新增评论 | 评论对象 |\n\n## 前端接入示例 (SockJS + STOMP)\n\n```javascript\nimport SockJS from 'sockjs-client'\nimport { Stomp } from '@stomp/stompjs'\n\nconst socket = new SockJS('http://localhost:8092/ws/task')\nconst stompClient = Stomp.over(socket)\n\nstompClient.connect({}, () => {\n  stompClient.subscribe('/topic/board/123', (msg) => {\n    const { event, data, timestamp } = JSON.parse(msg.body)\n    console.log('Event:', event, 'Data:', data)\n  })\n})\n```",
        "operationId": "websocketInfoUsingGET_1",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/board/{boardId}": {
      "get": {
        "tags": [
          "任务看板管理"
        ],
        "summary": "看板详情",
        "description": "返回看板基本信息（名称、描述、创建者），不含任务数据。查看任务请使用「获取看板任务」接口",
        "operationId": "getBoardDetailUsingGET_1",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "boardId",
            "in": "path",
            "description": "看板ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«看板信息»",
              "originalRef": "统一响应结果«看板信息»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«看板信息»",
              "originalRef": "统一响应结果«看板信息»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      },
      "put": {
        "tags": [
          "任务看板管理"
        ],
        "summary": "更新看板",
        "description": "更新看板的名称和描述。仅看板创建者或超级管理员可操作。\n\n**权限**：需管理员登录，且为看板创建者或超级管理员。",
        "operationId": "updateBoardUsingPUT_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "boardId",
            "in": "path",
            "description": "看板ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "更新看板请求",
            "required": false,
            "schema": {
              "$ref": "#/definitions/更新看板请求",
              "originalRef": "更新看板请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«看板信息»",
              "originalRef": "统一响应结果«看板信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«看板信息»",
              "originalRef": "统一响应结果«看板信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "任务看板管理"
        ],
        "summary": "删除看板",
        "description": "删除看板及其下所有状态列和任务（级联删除）。仅看板创建者或超级管理员可操作",
        "operationId": "deleteBoardUsingDELETE_1",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "boardId",
            "in": "path",
            "description": "看板ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/board/{boardId}/member/{targetAdminId}": {
      "delete": {
        "tags": [
          "任务看板管理"
        ],
        "summary": "移除成员",
        "description": "从看板中移除指定成员。仅看板创建者或超级管理员可操作，不能移除创建者自己",
        "operationId": "removeMemberUsingDELETE_1",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "boardId",
            "in": "path",
            "description": "看板ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "targetAdminId",
            "in": "path",
            "description": "目标管理员ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/board/{boardId}/members": {
      "get": {
        "tags": [
          "任务看板管理"
        ],
        "summary": "获取看板成员",
        "description": "返回看板的所有成员列表，包含成员的管理员ID和姓名",
        "operationId": "getMembersUsingGET_1",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "boardId",
            "in": "path",
            "description": "看板ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«看板成员信息»»",
              "originalRef": "统一响应结果«List«看板成员信息»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«看板成员信息»»",
              "originalRef": "统一响应结果«List«看板成员信息»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      },
      "post": {
        "tags": [
          "任务看板管理"
        ],
        "summary": "添加成员",
        "description": "批量添加管理员为看板成员，成为成员后可以查看看板、创建和操作任务。\n\n**权限**：需管理员登录，且为看板创建者或超级管理员。",
        "operationId": "addMembersUsingPOST_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "boardId",
            "in": "path",
            "description": "看板ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "添加成员请求",
            "required": false,
            "schema": {
              "$ref": "#/definitions/添加成员请求",
              "originalRef": "添加成员请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/board/{boardId}/status": {
      "post": {
        "tags": [
          "任务看板管理"
        ],
        "summary": "创建状态列",
        "description": "在看板中创建新的状态列（如测试中、待发布等），自动排到末尾。任务通过拖拽在不同状态列间流转。\n\n**权限**：需管理员登录且为看板成员。",
        "operationId": "createStatusUsingPOST_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "boardId",
            "in": "path",
            "description": "看板ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "创建状态列请求",
            "required": false,
            "schema": {
              "$ref": "#/definitions/创建状态请求",
              "originalRef": "创建状态请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«看板状态信息»",
              "originalRef": "统一响应结果«看板状态信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«看板状态信息»",
              "originalRef": "统一响应结果«看板状态信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/board/{boardId}/status/sort": {
      "put": {
        "tags": [
          "任务看板管理"
        ],
        "summary": "状态列排序",
        "description": "批量更新状态列的排序顺序。传入状态列ID数组，数组下标即为新的排序值。操作完成后通过WebSocket推送STATUS_REORDERED事件",
        "operationId": "sortStatusesUsingPUT_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "boardId",
            "in": "path",
            "description": "看板ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "req",
            "description": "状态列排序请求",
            "required": false,
            "schema": {
              "$ref": "#/definitions/状态排序请求",
              "originalRef": "状态排序请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/board/{boardId}/statuses": {
      "get": {
        "tags": [
          "任务看板管理"
        ],
        "summary": "获取看板状态列",
        "description": "返回看板的所有状态列（如待办、进行中、已完成），按排序字段升序排列。拖拽任务到不同状态列实现状态流转",
        "operationId": "getStatusesUsingGET_1",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "boardId",
            "in": "path",
            "description": "看板ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«看板状态信息»»",
              "originalRef": "统一响应结果«List«看板状态信息»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«看板状态信息»»",
              "originalRef": "统一响应结果«List«看板状态信息»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/board/{boardId}/tasks": {
      "get": {
        "tags": [
          "任务管理"
        ],
        "summary": "获取看板任务(按状态分组)",
        "description": "返回看板下所有任务，按状态列分组。支持按优先级(HIGH/MEDIUM/LOW)和负责人筛选，每组内按排序值升序排列\n\n**关联字典**：\n- task_priority：任务优先级（列表筛选+显示）",
        "operationId": "getBoardTasksUsingGET_1",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "assigneeId",
            "in": "query",
            "description": "负责人ID",
            "required": false,
            "type": "integer",
            "format": "int64",
            "allowEmptyValue": false
          },
          {
            "name": "boardId",
            "in": "path",
            "description": "看板ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "priority",
            "in": "query",
            "description": "优先级",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«看板任务分组信息»»",
              "originalRef": "统一响应结果«List«看板任务分组信息»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«看板任务分组信息»»",
              "originalRef": "统一响应结果«List«看板任务分组信息»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task": {
      "post": {
        "tags": [
          "任务管理"
        ],
        "summary": "创建任务",
        "description": "在指定看板和状态列下创建任务。创建成功后通过WebSocket推送TASK_CREATED事件，并通知被分配的负责人\n\n**关联字典**：\n- task_priority：任务优先级（创建时选择）",
        "operationId": "createTaskUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "req",
            "description": "创建任务请求",
            "required": false,
            "schema": {
              "$ref": "#/definitions/创建任务请求",
              "originalRef": "创建任务请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«任务信息»",
              "originalRef": "统一响应结果«任务信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«任务信息»",
              "originalRef": "统一响应结果«任务信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/boards": {
      "get": {
        "tags": [
          "任务看板管理"
        ],
        "summary": "获取可见看板列表",
        "description": "返回当前管理员可见的看板列表：超级管理员可见所有看板，普通管理员仅可见自己创建的或作为成员的看板",
        "operationId": "getBoardsUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«看板信息»»",
              "originalRef": "统一响应结果«List«看板信息»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«看板信息»»",
              "originalRef": "统一响应结果«List«看板信息»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/comment/{commentId}": {
      "delete": {
        "tags": [
          "任务管理"
        ],
        "summary": "删除评论",
        "description": "仅评论作者本人可删除自己的评论，系统自动生成的活动记录不可删除",
        "operationId": "deleteCommentUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "commentId",
            "in": "path",
            "description": "评论ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/status/{statusId}": {
      "put": {
        "tags": [
          "任务看板管理"
        ],
        "summary": "更新状态列",
        "description": "更新状态列的名称和颜色。\n\n**权限**：需管理员登录且为看板成员。",
        "operationId": "updateStatusUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "req",
            "description": "更新状态列请求",
            "required": false,
            "schema": {
              "$ref": "#/definitions/更新状态请求",
              "originalRef": "更新状态请求"
            }
          },
          {
            "name": "statusId",
            "in": "path",
            "description": "状态列ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«看板状态信息»",
              "originalRef": "统一响应结果«看板状态信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«看板状态信息»",
              "originalRef": "统一响应结果«看板状态信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "任务看板管理"
        ],
        "summary": "删除状态列",
        "description": "删除看板的状态列。如果状态列下有任务则不允许删除，需先移动或删除任务",
        "operationId": "deleteStatusUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "statusId",
            "in": "path",
            "description": "状态列ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/subtask/{subtaskId}": {
      "delete": {
        "tags": [
          "任务管理"
        ],
        "summary": "删除子任务",
        "description": "删除指定子任务。\n\n**权限**：需管理员登录且为看板成员。",
        "operationId": "deleteSubtaskUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "subtaskId",
            "in": "path",
            "description": "子任务ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/subtask/{subtaskId}/toggle": {
      "put": {
        "tags": [
          "任务管理"
        ],
        "summary": "切换子任务完成状态",
        "description": "切换子任务的完成/未完成状态（toggle），完成状态切换会自动记录到任务时间线",
        "operationId": "toggleSubtaskUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "subtaskId",
            "in": "path",
            "description": "子任务ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/{taskId}": {
      "get": {
        "tags": [
          "任务管理"
        ],
        "summary": "任务详情",
        "description": "返回任务完整信息，包含子任务列表、负责人信息、附件列表等\n\n**关联字典**：\n- task_priority：任务优先级（显示）",
        "operationId": "getTaskDetailUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "任务ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«任务信息»",
              "originalRef": "统一响应结果«任务信息»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«任务信息»",
              "originalRef": "统一响应结果«任务信息»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      },
      "put": {
        "tags": [
          "任务管理"
        ],
        "summary": "更新任务",
        "description": "更新任务的标题、描述、优先级、截止日期、负责人等信息。更新后通过WebSocket推送TASK_UPDATED事件，如果修改了负责人则额外通知新负责人。\n\n**权限**：需管理员登录且为看板成员。\n\n**关联字典**：\n- task_priority：任务优先级（编辑时选择）",
        "operationId": "updateTaskUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "req",
            "description": "更新任务请求",
            "required": false,
            "schema": {
              "$ref": "#/definitions/更新任务请求",
              "originalRef": "更新任务请求"
            }
          },
          {
            "name": "taskId",
            "in": "path",
            "description": "任务ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«任务信息»",
              "originalRef": "统一响应结果«任务信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«任务信息»",
              "originalRef": "统一响应结果«任务信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "任务管理"
        ],
        "summary": "删除任务",
        "description": "删除任务及其所有子任务、评论和时间线记录（级联删除）。删除后通过WebSocket推送TASK_DELETED事件。\n\n**权限**：需管理员登录且为看板成员。",
        "operationId": "deleteTaskUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "任务ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/{taskId}/comment": {
      "post": {
        "tags": [
          "任务管理"
        ],
        "summary": "添加评论",
        "description": "在任务时间线中添加评论，添加后自动通知任务负责人",
        "operationId": "addCommentUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "req",
            "description": "创建评论请求",
            "required": false,
            "schema": {
              "$ref": "#/definitions/创建评论请求",
              "originalRef": "创建评论请求"
            }
          },
          {
            "name": "taskId",
            "in": "path",
            "description": "任务ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«时间线条目»",
              "originalRef": "统一响应结果«时间线条目»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«时间线条目»",
              "originalRef": "统一响应结果«时间线条目»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/{taskId}/sort": {
      "put": {
        "tags": [
          "任务管理"
        ],
        "summary": "任务排序",
        "description": "更新任务在同一状态列内的排序位置，用于拖拽排序",
        "operationId": "sortTasksUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "req",
            "description": "任务排序请求",
            "required": false,
            "schema": {
              "$ref": "#/definitions/任务排序请求",
              "originalRef": "任务排序请求"
            }
          },
          {
            "name": "taskId",
            "in": "path",
            "description": "任务ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/{taskId}/status": {
      "put": {
        "tags": [
          "任务管理"
        ],
        "summary": "变更任务状态",
        "description": "将任务移动到指定状态列（拖拽操作），自动记录状态变更到时间线，并通过WebSocket推送TASK_STATUS_CHANGED事件",
        "operationId": "changeStatusUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "req",
            "description": "变更状态请求",
            "required": false,
            "schema": {
              "$ref": "#/definitions/变更任务状态请求",
              "originalRef": "变更任务状态请求"
            }
          },
          {
            "name": "taskId",
            "in": "path",
            "description": "任务ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«Void»",
              "originalRef": "统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/{taskId}/subtask": {
      "post": {
        "tags": [
          "任务管理"
        ],
        "summary": "创建子任务",
        "description": "在指定任务下创建子任务（待办项），用于拆分任务的执行步骤。子任务默认为未完成状态。\n\n**权限**：需管理员登录且为看板成员。",
        "operationId": "createSubtaskUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "req",
            "description": "创建子任务请求",
            "required": false,
            "schema": {
              "$ref": "#/definitions/创建子任务请求",
              "originalRef": "创建子任务请求"
            }
          },
          {
            "name": "taskId",
            "in": "path",
            "description": "任务ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«子任务信息»",
              "originalRef": "统一响应结果«子任务信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«子任务信息»",
              "originalRef": "统一响应结果«子任务信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/task/{taskId}/timeline": {
      "get": {
        "tags": [
          "任务管理"
        ],
        "summary": "获取任务时间线",
        "description": "返回任务的完整操作记录，包含评论和系统自动记录的状态变更、人员分配等活动，按时间正序排列",
        "operationId": "getTimelineUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "taskId",
            "in": "path",
            "description": "任务ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«时间线条目»»",
              "originalRef": "统一响应结果«List«时间线条目»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/统一响应结果«List«时间线条目»»",
              "originalRef": "统一响应结果«List«时间线条目»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "deprecated": false,
        "x-order": "2147483647"
      }
    }
  },
  "definitions": {
    "任务信息": {
      "type": "object",
      "properties": {
        "assignees": {
          "type": "array",
          "description": "负责人列表",
          "items": {
            "$ref": "#/definitions/负责人信息",
            "originalRef": "负责人信息"
          }
        },
        "boardId": {
          "type": "integer",
          "format": "int64",
          "description": "看板ID"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "createdBy": {
          "type": "integer",
          "format": "int64",
          "description": "创建人ID"
        },
        "creatorName": {
          "type": "string",
          "description": "创建人姓名"
        },
        "description": {
          "type": "string",
          "description": "任务描述"
        },
        "dueDate": {
          "type": "string",
          "format": "date",
          "description": "截止日期"
        },
        "overdue": {
          "type": "boolean",
          "description": "是否逾期"
        },
        "parentId": {
          "type": "integer",
          "format": "int64",
          "description": "父任务ID"
        },
        "priority": {
          "type": "string",
          "description": "优先级: LOW/MEDIUM/HIGH/URGENT"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序序号"
        },
        "statusColor": {
          "type": "string",
          "description": "状态颜色"
        },
        "statusId": {
          "type": "integer",
          "format": "int64",
          "description": "状态ID"
        },
        "statusName": {
          "type": "string",
          "description": "状态名称"
        },
        "subtaskCompleted": {
          "type": "integer",
          "format": "int32",
          "description": "已完成子任务数"
        },
        "subtaskTotal": {
          "type": "integer",
          "format": "int32",
          "description": "子任务总数"
        },
        "subtasks": {
          "type": "array",
          "description": "子任务列表",
          "items": {
            "$ref": "#/definitions/子任务信息",
            "originalRef": "子任务信息"
          }
        },
        "taskId": {
          "type": "integer",
          "format": "int64",
          "description": "任务ID"
        },
        "title": {
          "type": "string",
          "description": "任务标题"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "更新时间"
        }
      },
      "title": "任务信息"
    },
    "创建状态请求": {
      "type": "object",
      "required": [
        "statusName"
      ],
      "properties": {
        "statusColor": {
          "type": "string",
          "example": "#409EFF",
          "description": "状态颜色"
        },
        "statusName": {
          "type": "string",
          "example": "进行中",
          "description": "状态名称"
        }
      },
      "title": "创建状态请求"
    },
    "创建看板请求": {
      "type": "object",
      "required": [
        "boardName"
      ],
      "properties": {
        "boardName": {
          "type": "string",
          "example": "产品迭代看板",
          "description": "看板名称"
        },
        "deptId": {
          "type": "integer",
          "format": "int64",
          "example": 1001,
          "description": "部门ID"
        },
        "description": {
          "type": "string",
          "example": "用于跟踪产品迭代任务",
          "description": "看板描述"
        },
        "memberIds": {
          "type": "array",
          "description": "成员ID列表",
          "items": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "title": "创建看板请求"
    },
    "子任务信息": {
      "type": "object",
      "properties": {
        "completed": {
          "type": "boolean",
          "description": "是否已完成"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "createdBy": {
          "type": "integer",
          "format": "int64",
          "description": "创建人ID"
        },
        "creatorName": {
          "type": "string",
          "description": "创建人姓名"
        },
        "taskId": {
          "type": "integer",
          "format": "int64",
          "description": "子任务ID"
        },
        "title": {
          "type": "string",
          "description": "子任务标题"
        }
      },
      "title": "子任务信息"
    },
    "更新看板请求": {
      "type": "object",
      "properties": {
        "boardName": {
          "type": "string",
          "example": "产品迭代看板",
          "description": "看板名称"
        },
        "description": {
          "type": "string",
          "example": "用于跟踪产品迭代任务",
          "description": "看板描述"
        }
      },
      "title": "更新看板请求"
    },
    "添加成员请求": {
      "type": "object",
      "required": [
        "adminIds"
      ],
      "properties": {
        "adminIds": {
          "type": "array",
          "description": "管理员ID列表",
          "items": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "title": "添加成员请求"
    },
    "状态排序请求": {
      "type": "object",
      "required": [
        "statusIds"
      ],
      "properties": {
        "statusIds": {
          "type": "array",
          "description": "状态ID列表(按排序顺序)",
          "items": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "title": "状态排序请求"
    },
    "看板任务分组信息": {
      "type": "object",
      "properties": {
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序序号"
        },
        "statusColor": {
          "type": "string",
          "description": "状态颜色"
        },
        "statusId": {
          "type": "integer",
          "format": "int64",
          "description": "状态ID"
        },
        "statusName": {
          "type": "string",
          "description": "状态名称"
        },
        "tasks": {
          "type": "array",
          "description": "该状态下的任务列表",
          "items": {
            "$ref": "#/definitions/任务信息",
            "originalRef": "任务信息"
          }
        }
      },
      "title": "看板任务分组信息"
    },
    "看板信息": {
      "type": "object",
      "properties": {
        "boardId": {
          "type": "integer",
          "format": "int64",
          "description": "看板ID"
        },
        "boardName": {
          "type": "string",
          "description": "看板名称"
        },
        "boardType": {
          "type": "string",
          "description": "看板类型"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "createdBy": {
          "type": "integer",
          "format": "int64",
          "description": "创建人ID"
        },
        "creatorName": {
          "type": "string",
          "description": "创建人姓名"
        },
        "deptId": {
          "type": "integer",
          "format": "int64",
          "description": "部门ID"
        },
        "deptName": {
          "type": "string",
          "description": "部门名称"
        },
        "description": {
          "type": "string",
          "description": "看板描述"
        },
        "statuses": {
          "type": "array",
          "description": "状态列表",
          "items": {
            "$ref": "#/definitions/看板状态信息",
            "originalRef": "看板状态信息"
          }
        },
        "taskCount": {
          "type": "integer",
          "format": "int32",
          "description": "任务总数"
        }
      },
      "title": "看板信息"
    },
    "看板成员信息": {
      "type": "object",
      "properties": {
        "adminId": {
          "type": "integer",
          "format": "int64",
          "description": "管理员ID"
        },
        "avatarUrl": {
          "type": "string",
          "description": "头像地址"
        },
        "joinedAt": {
          "type": "string",
          "format": "date-time",
          "description": "加入时间"
        },
        "role": {
          "type": "string",
          "description": "角色: OWNER/MEMBER"
        },
        "username": {
          "type": "string",
          "description": "用户名"
        }
      },
      "title": "看板成员信息"
    },
    "看板状态信息": {
      "type": "object",
      "properties": {
        "isPreset": {
          "type": "boolean",
          "description": "是否预设状态"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序序号"
        },
        "statusColor": {
          "type": "string",
          "description": "状态颜色"
        },
        "statusId": {
          "type": "integer",
          "format": "int64",
          "description": "状态ID"
        },
        "statusName": {
          "type": "string",
          "description": "状态名称"
        },
        "taskCount": {
          "type": "integer",
          "format": "int32",
          "description": "该状态下的任务数量"
        }
      },
      "title": "看板状态信息"
    },
    "统一响应结果«List«看板任务分组信息»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "$ref": "#/definitions/看板任务分组信息",
            "originalRef": "看板任务分组信息"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        }
      },
      "title": "统一响应结果«List«看板任务分组信息»»"
    },
    "统一响应结果«List«看板成员信息»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "$ref": "#/definitions/看板成员信息",
            "originalRef": "看板成员信息"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        }
      },
      "title": "统一响应结果«List«看板成员信息»»"
    },
    "统一响应结果«List«看板状态信息»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "$ref": "#/definitions/看板状态信息",
            "originalRef": "看板状态信息"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        }
      },
      "title": "统一响应结果«List«看板状态信息»»"
    },
    "统一响应结果«Void»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        }
      },
      "title": "统一响应结果«Void»"
    },
    "统一响应结果«看板信息»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "$ref": "#/definitions/看板信息",
          "originalRef": "看板信息"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        }
      },
      "title": "统一响应结果«看板信息»"
    },
    "统一响应结果«看板状态信息»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "$ref": "#/definitions/看板状态信息",
          "originalRef": "看板状态信息"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        }
      },
      "title": "统一响应结果«看板状态信息»"
    },
    "负责人信息": {
      "type": "object",
      "properties": {
        "adminId": {
          "type": "integer",
          "format": "int64",
          "description": "管理员ID"
        },
        "avatarUrl": {
          "type": "string",
          "description": "头像地址"
        },
        "username": {
          "type": "string",
          "description": "用户名"
        },
        "wechatName": {
          "type": "string",
          "description": "企微昵称"
        }
      },
      "title": "负责人信息"
    },
    "任务排序请求": {
      "type": "object",
      "required": [
        "statusId",
        "taskIds"
      ],
      "properties": {
        "statusId": {
          "type": "integer",
          "format": "int64",
          "example": 1001,
          "description": "状态ID"
        },
        "taskIds": {
          "type": "array",
          "description": "任务ID列表(按排序顺序)",
          "items": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "title": "任务排序请求"
    },
    "创建任务请求": {
      "type": "object",
      "required": [
        "boardId",
        "title"
      ],
      "properties": {
        "assigneeIds": {
          "type": "array",
          "description": "负责人ID列表",
          "items": {
            "type": "integer",
            "format": "int64"
          }
        },
        "boardId": {
          "type": "integer",
          "format": "int64",
          "example": 1001,
          "description": "看板ID"
        },
        "description": {
          "type": "string",
          "example": "根据产品原型完成首页所有组件的UI设计",
          "description": "任务描述"
        },
        "dueDate": {
          "type": "string",
          "format": "date",
          "example": "2026-03-15",
          "description": "截止日期"
        },
        "priority": {
          "type": "string",
          "example": "HIGH",
          "description": "优先级: LOW/MEDIUM/HIGH/URGENT"
        },
        "statusId": {
          "type": "integer",
          "format": "int64",
          "example": 1001,
          "description": "状态ID"
        },
        "title": {
          "type": "string",
          "example": "完成首页UI设计",
          "description": "任务标题"
        }
      },
      "title": "创建任务请求"
    },
    "创建子任务请求": {
      "type": "object",
      "required": [
        "title"
      ],
      "properties": {
        "title": {
          "type": "string",
          "example": "完成导航栏组件",
          "description": "子任务标题"
        }
      },
      "title": "创建子任务请求"
    },
    "创建评论请求": {
      "type": "object",
      "required": [
        "content"
      ],
      "properties": {
        "content": {
          "type": "string",
          "example": "这个任务需要优先处理",
          "description": "评论内容"
        }
      },
      "title": "创建评论请求"
    },
    "变更任务状态请求": {
      "type": "object",
      "required": [
        "statusId"
      ],
      "properties": {
        "statusId": {
          "type": "integer",
          "format": "int64",
          "example": 1002,
          "description": "目标状态ID"
        }
      },
      "title": "变更任务状态请求"
    },
    "时间线条目": {
      "type": "object",
      "properties": {
        "action": {
          "type": "string",
          "description": "操作类型"
        },
        "adminAvatar": {
          "type": "string",
          "description": "管理员头像"
        },
        "adminId": {
          "type": "integer",
          "format": "int64",
          "description": "管理员ID"
        },
        "adminName": {
          "type": "string",
          "description": "管理员姓名"
        },
        "content": {
          "type": "string",
          "description": "内容"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "条目ID"
        },
        "newValue": {
          "type": "string",
          "description": "新值"
        },
        "oldValue": {
          "type": "string",
          "description": "旧值"
        },
        "type": {
          "type": "string",
          "description": "类型: COMMENT/ACTIVITY"
        }
      },
      "title": "时间线条目"
    },
    "更新任务请求": {
      "type": "object",
      "properties": {
        "assigneeIds": {
          "type": "array",
          "description": "负责人ID列表",
          "items": {
            "type": "integer",
            "format": "int64"
          }
        },
        "description": {
          "type": "string",
          "example": "根据产品原型完成首页所有组件的UI设计",
          "description": "任务描述"
        },
        "dueDate": {
          "type": "string",
          "format": "date",
          "example": "2026-03-15",
          "description": "截止日期"
        },
        "priority": {
          "type": "string",
          "example": "MEDIUM",
          "description": "优先级: LOW/MEDIUM/HIGH/URGENT"
        },
        "title": {
          "type": "string",
          "example": "完成首页UI设计",
          "description": "任务标题"
        }
      },
      "title": "更新任务请求"
    },
    "更新状态请求": {
      "type": "object",
      "properties": {
        "statusColor": {
          "type": "string",
          "example": "#67C23A",
          "description": "状态颜色"
        },
        "statusName": {
          "type": "string",
          "example": "已完成",
          "description": "状态名称"
        }
      },
      "title": "更新状态请求"
    },
    "统一响应结果«List«时间线条目»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "$ref": "#/definitions/时间线条目",
            "originalRef": "时间线条目"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        }
      },
      "title": "统一响应结果«List«时间线条目»»"
    },
    "统一响应结果«List«看板信息»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "$ref": "#/definitions/看板信息",
            "originalRef": "看板信息"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        }
      },
      "title": "统一响应结果«List«看板信息»»"
    },
    "统一响应结果«任务信息»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "$ref": "#/definitions/任务信息",
          "originalRef": "任务信息"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        }
      },
      "title": "统一响应结果«任务信息»"
    },
    "统一响应结果«子任务信息»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "$ref": "#/definitions/子任务信息",
          "originalRef": "子任务信息"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        }
      },
      "title": "统一响应结果«子任务信息»"
    },
    "统一响应结果«时间线条目»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "$ref": "#/definitions/时间线条目",
          "originalRef": "时间线条目"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        }
      },
      "title": "统一响应结果«时间线条目»"
    }
  }
}