{
  "openapi": "3.0.1",
  "info": {
    "title": "默认模块",
    "description": "",
    "version": "1.0.0"
  },
  "tags": [],
  "paths": {
    "/api/v1/milestone/list": {
      "get": {
        "summary": "分页查询里程碑列表",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "pageNum",
            "in": "query",
            "description": "",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "",
            "required": true,
            "example": 10,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponsePageMapObject"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/milestone/{id}": {
      "get": {
        "summary": "根据ID查询里程碑详情",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseProjectMilestone"
                }
              }
            }
          }
        },
        "security": []
      },
      "delete": {
        "summary": "删除里程碑",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseVoid"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/milestone": {
      "post": {
        "summary": "新增里程碑",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectMilestone",
                "description": ""
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseLong"
                }
              }
            }
          }
        },
        "security": []
      },
      "put": {
        "summary": "修改里程碑",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectMilestone",
                "description": ""
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseVoid"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/milestone/{id}/progress": {
      "put": {
        "summary": "更新里程碑进度",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "progress",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseVoid"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/milestone/{id}/status": {
      "put": {
        "summary": "更新里程碑状态",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseVoid"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/milestone/delayed-key": {
      "get": {
        "summary": "查询已延期的关键里程碑",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseListProjectMilestone"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/milestone/upcoming": {
      "get": {
        "summary": "查询即将到期的里程碑",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "days",
            "in": "query",
            "description": "",
            "required": true,
            "example": 7,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseListProjectMilestone"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/milestone/stats/progress": {
      "get": {
        "summary": "查询里程碑完成进度统计",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseMapObject"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/task/list": {
      "get": {
        "summary": "分页查询任务列表",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "pageNum",
            "in": "query",
            "description": "",
            "required": true,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "",
            "required": true,
            "example": 10,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "milestoneId",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "assigneeId",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "priority",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "keyword",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponsePageMapObject"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/task/{id}": {
      "get": {
        "summary": "根据ID查询任务详情",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseTask"
                }
              }
            }
          }
        },
        "security": []
      },
      "delete": {
        "summary": "删除任务",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseVoid"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/task": {
      "post": {
        "summary": "新增任务",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Task",
                "description": ""
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseLong"
                }
              }
            }
          }
        },
        "security": []
      },
      "put": {
        "summary": "修改任务",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Task",
                "description": ""
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseVoid"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/task/my-tasks": {
      "get": {
        "summary": "查询我的待办任务",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseListTask"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/task/{id}/progress": {
      "put": {
        "summary": "更新任务进度",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "progress",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseVoid"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/task/{id}/status": {
      "put": {
        "summary": "更新任务状态",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseVoid"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/task/{id}/dependencies": {
      "get": {
        "summary": "查询任务依赖关系",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseListMapObject"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/v1/task/stats/status": {
      "get": {
        "summary": "统计项目任务状态分布",
        "deprecated": false,
        "description": "",
        "tags": [],
        "parameters": [
          {
            "name": "projectId",
            "in": "query",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "example": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95",
            "schema": {
              "type": "string",
              "default": "Bearer b35c6f5b-bc0b-4652-bef2-eca04a5cdd95"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseResponseListMapObject"
                }
              }
            }
          }
        },
        "security": []
      }
    }
  },
  "components": {
    "schemas": {
      "OrderItem": {
        "type": "object",
        "properties": {
          "column": {
            "type": "string",
            "description": "需要进行排序的字段"
          },
          "asc": {
            "type": "boolean",
            "description": "是否正序排列，默认 true",
            "default": true
          }
        }
      },
      "MapObject": {
        "type": "object",
        "properties": {
          "key": {
            "$ref": "#/components/schemas/key"
          }
        }
      },
      "BaseResponseMapObject": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": ""
          },
          "data": {
            "$ref": "#/components/schemas/MapObject",
            "description": ""
          },
          "message": {
            "type": "string",
            "description": ""
          }
        }
      },
      "PageMapObject": {
        "type": "object",
        "properties": {
          "records": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MapObject"
            },
            "description": "查询数据列表",
            "default": "Collections.emptyList()"
          },
          "total": {
            "type": "integer",
            "description": "总数",
            "format": "int64",
            "default": 0
          },
          "size": {
            "type": "integer",
            "description": "每页显示条数，默认 10",
            "format": "int64",
            "default": 10
          },
          "current": {
            "type": "integer",
            "description": "当前页",
            "format": "int64",
            "default": 1
          },
          "orders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderItem",
              "description": "com.baomidou.mybatisplus.core.metadata.OrderItem"
            },
            "description": "排序字段信息",
            "default": "new ArrayList<>()"
          },
          "optimizeCountSql": {
            "type": "boolean",
            "description": "自动优化 COUNT SQL",
            "default": true
          },
          "searchCount": {
            "type": "boolean",
            "description": "是否进行 count 查询",
            "default": true
          },
          "optimizeJoinOfCountSql": {
            "type": "boolean",
            "description": "{@link #optimizeJoinOfCountSql()}",
            "default": true
          },
          "maxLimit": {
            "type": "integer",
            "description": "单页分页条数限制",
            "format": "int64"
          },
          "countId": {
            "type": "string",
            "description": "countId"
          },
          "pages": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "BaseResponsePageMapObject": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": ""
          },
          "data": {
            "$ref": "#/components/schemas/PageMapObject",
            "description": ""
          },
          "message": {
            "type": "string",
            "description": ""
          }
        }
      },
      "ProjectMilestone": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "",
            "format": "int64"
          },
          "projectId": {
            "type": "integer",
            "description": "项目ID",
            "format": "int64"
          },
          "milestoneName": {
            "type": "string",
            "description": "里程碑名称"
          },
          "description": {
            "type": "string",
            "description": "描述"
          },
          "planDate": {
            "type": "string",
            "description": "计划日期"
          },
          "actualDate": {
            "type": "string",
            "description": "实际日期"
          },
          "status": {
            "type": "string",
            "description": "状态: pending-待开始, in_progress-进行中, completed-已完成, delayed-延期"
          },
          "progress": {
            "type": "integer",
            "description": "完成进度"
          },
          "sortOrder": {
            "type": "integer",
            "description": "排序"
          },
          "isKey": {
            "type": "integer",
            "description": "是否关键里程碑: 1-是, 0-否"
          },
          "deliverables": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "交付物列表"
          },
          "extraData": {
            "type": "object",
            "properties": {},
            "description": "扩展数据"
          },
          "createBy": {
            "type": "integer",
            "description": "创建人",
            "format": "int64"
          },
          "createTime": {
            "type": "string",
            "description": "创建时间"
          },
          "updateBy": {
            "type": "integer",
            "description": "更新人",
            "format": "int64"
          },
          "updateTime": {
            "type": "string",
            "description": "更新时间"
          },
          "deleted": {
            "type": "integer",
            "description": "删除标记"
          }
        }
      },
      "Task": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "",
            "format": "int64"
          },
          "taskCode": {
            "type": "string",
            "description": "任务编号"
          },
          "projectId": {
            "type": "integer",
            "description": "项目ID",
            "format": "int64"
          },
          "milestoneId": {
            "type": "integer",
            "description": "所属里程碑ID",
            "format": "int64"
          },
          "taskName": {
            "type": "string",
            "description": "任务名称"
          },
          "description": {
            "type": "string",
            "description": "任务描述"
          },
          "taskType": {
            "type": "string",
            "description": "任务类型"
          },
          "assigneeId": {
            "type": "integer",
            "description": "执行人ID",
            "format": "int64"
          },
          "planStartDate": {
            "type": "string",
            "description": "计划开始日期"
          },
          "planEndDate": {
            "type": "string",
            "description": "计划结束日期"
          },
          "actualStartDate": {
            "type": "string",
            "description": "实际开始日期"
          },
          "actualEndDate": {
            "type": "string",
            "description": "实际结束日期"
          },
          "planHours": {
            "type": "number",
            "description": "计划工时(小时)"
          },
          "actualHours": {
            "type": "number",
            "description": "实际工时(小时)"
          },
          "progress": {
            "type": "integer",
            "description": "进度百分比"
          },
          "priority": {
            "type": "string",
            "description": "优先级: critical-关键, high-高, medium-中, low-低"
          },
          "status": {
            "type": "string",
            "description": "状态: pending-待开始, in_progress-进行中, completed-已完成, cancelled-已取消"
          },
          "sortOrder": {
            "type": "integer",
            "description": "排序"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "标签"
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {}
            },
            "description": "附件列表"
          },
          "extraData": {
            "type": "object",
            "properties": {},
            "description": "扩展数据"
          },
          "createBy": {
            "type": "integer",
            "description": "创建人",
            "format": "int64"
          },
          "createTime": {
            "type": "string",
            "description": "创建时间"
          },
          "updateBy": {
            "type": "integer",
            "description": "更新人",
            "format": "int64"
          },
          "updateTime": {
            "type": "string",
            "description": "更新时间"
          },
          "deleted": {
            "type": "integer",
            "description": "删除标记"
          }
        }
      },
      "key": {
        "type": "object",
        "properties": {}
      },
      "BaseResponseLong": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": ""
          },
          "data": {
            "type": "integer",
            "description": "",
            "format": "int64"
          },
          "message": {
            "type": "string",
            "description": ""
          }
        }
      },
      "BaseResponseProjectMilestone": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": ""
          },
          "data": {
            "$ref": "#/components/schemas/ProjectMilestone",
            "description": ""
          },
          "message": {
            "type": "string",
            "description": ""
          }
        }
      },
      "BaseResponseTask": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": ""
          },
          "data": {
            "$ref": "#/components/schemas/Task",
            "description": ""
          },
          "message": {
            "type": "string",
            "description": ""
          }
        }
      },
      "BaseResponseVoid": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": ""
          },
          "data": {
            "description": "",
            "type": "null"
          },
          "message": {
            "type": "string",
            "description": ""
          }
        }
      },
      "BaseResponseListProjectMilestone": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": ""
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectMilestone",
              "description": "项目里程碑实体类\n对应数据库表: project_milestone"
            },
            "description": ""
          },
          "message": {
            "type": "string",
            "description": ""
          }
        }
      },
      "BaseResponseListTask": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": ""
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Task",
              "description": "任务实体类\n对应数据库表: task"
            },
            "description": ""
          },
          "message": {
            "type": "string",
            "description": ""
          }
        }
      },
      "BaseResponseListMapObject": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": ""
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MapObject"
            },
            "description": ""
          },
          "message": {
            "type": "string",
            "description": ""
          }
        }
      }
    },
    "responses": {},
    "securitySchemes": {}
  },
  "servers": [],
  "security": []
}
