1115 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
			
		
		
	
	
			1115 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
| {
 | ||
|   "schemes": [],
 | ||
|   "swagger": "2.0",
 | ||
|   "info": {
 | ||
|     "description": "",
 | ||
|     "title": "",
 | ||
|     "contact": {},
 | ||
|     "version": ""
 | ||
|   },
 | ||
|   "host": "",
 | ||
|   "basePath": "",
 | ||
|   "paths": {
 | ||
|     "/api/v1/devices": {
 | ||
|       "get": {
 | ||
|         "description": "获取系统中所有设备的列表",
 | ||
|         "produces": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "tags": [
 | ||
|           "设备管理"
 | ||
|         ],
 | ||
|         "summary": "获取设备列表",
 | ||
|         "responses": {
 | ||
|           "200": {
 | ||
|             "description": "OK",
 | ||
|             "schema": {
 | ||
|               "allOf": [
 | ||
|                 {
 | ||
|                   "$ref": "#/definitions/controller.Response"
 | ||
|                 },
 | ||
|                 {
 | ||
|                   "type": "object",
 | ||
|                   "properties": {
 | ||
|                     "data": {
 | ||
|                       "type": "array",
 | ||
|                       "items": {
 | ||
|                         "$ref": "#/definitions/git_huangwc_com_pig_pig-farm-controller_internal_app_controller_device.DeviceResponse"
 | ||
|                       }
 | ||
|                     }
 | ||
|                   }
 | ||
|                 }
 | ||
|               ]
 | ||
|             }
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "post": {
 | ||
|         "description": "根据提供的信息创建一个新设备",
 | ||
|         "consumes": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "produces": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "tags": [
 | ||
|           "设备管理"
 | ||
|         ],
 | ||
|         "summary": "创建新设备",
 | ||
|         "parameters": [
 | ||
|           {
 | ||
|             "description": "设备信息",
 | ||
|             "name": "device",
 | ||
|             "in": "body",
 | ||
|             "required": true,
 | ||
|             "schema": {
 | ||
|               "$ref": "#/definitions/device.CreateDeviceRequest"
 | ||
|             }
 | ||
|           }
 | ||
|         ],
 | ||
|         "responses": {
 | ||
|           "200": {
 | ||
|             "description": "OK",
 | ||
|             "schema": {
 | ||
|               "allOf": [
 | ||
|                 {
 | ||
|                   "$ref": "#/definitions/controller.Response"
 | ||
|                 },
 | ||
|                 {
 | ||
|                   "type": "object",
 | ||
|                   "properties": {
 | ||
|                     "data": {
 | ||
|                       "$ref": "#/definitions/git_huangwc_com_pig_pig-farm-controller_internal_app_controller_device.DeviceResponse"
 | ||
|                     }
 | ||
|                   }
 | ||
|                 }
 | ||
|               ]
 | ||
|             }
 | ||
|           }
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "/api/v1/devices/{id}": {
 | ||
|       "get": {
 | ||
|         "description": "根据设备ID获取单个设备的详细信息",
 | ||
|         "produces": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "tags": [
 | ||
|           "设备管理"
 | ||
|         ],
 | ||
|         "summary": "获取设备信息",
 | ||
|         "parameters": [
 | ||
|           {
 | ||
|             "type": "string",
 | ||
|             "description": "设备ID",
 | ||
|             "name": "id",
 | ||
|             "in": "path",
 | ||
|             "required": true
 | ||
|           }
 | ||
|         ],
 | ||
|         "responses": {
 | ||
|           "200": {
 | ||
|             "description": "OK",
 | ||
|             "schema": {
 | ||
|               "allOf": [
 | ||
|                 {
 | ||
|                   "$ref": "#/definitions/controller.Response"
 | ||
|                 },
 | ||
|                 {
 | ||
|                   "type": "object",
 | ||
|                   "properties": {
 | ||
|                     "data": {
 | ||
|                       "$ref": "#/definitions/git_huangwc_com_pig_pig-farm-controller_internal_app_controller_device.DeviceResponse"
 | ||
|                     }
 | ||
|                   }
 | ||
|                 }
 | ||
|               ]
 | ||
|             }
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "put": {
 | ||
|         "description": "根据设备ID更新一个已存在的设备信息",
 | ||
|         "consumes": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "produces": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "tags": [
 | ||
|           "设备管理"
 | ||
|         ],
 | ||
|         "summary": "更新设备信息",
 | ||
|         "parameters": [
 | ||
|           {
 | ||
|             "type": "string",
 | ||
|             "description": "设备ID",
 | ||
|             "name": "id",
 | ||
|             "in": "path",
 | ||
|             "required": true
 | ||
|           },
 | ||
|           {
 | ||
|             "description": "要更新的设备信息",
 | ||
|             "name": "device",
 | ||
|             "in": "body",
 | ||
|             "required": true,
 | ||
|             "schema": {
 | ||
|               "$ref": "#/definitions/device.UpdateDeviceRequest"
 | ||
|             }
 | ||
|           }
 | ||
|         ],
 | ||
|         "responses": {
 | ||
|           "200": {
 | ||
|             "description": "OK",
 | ||
|             "schema": {
 | ||
|               "allOf": [
 | ||
|                 {
 | ||
|                   "$ref": "#/definitions/controller.Response"
 | ||
|                 },
 | ||
|                 {
 | ||
|                   "type": "object",
 | ||
|                   "properties": {
 | ||
|                     "data": {
 | ||
|                       "$ref": "#/definitions/git_huangwc_com_pig_pig-farm-controller_internal_app_controller_device.DeviceResponse"
 | ||
|                     }
 | ||
|                   }
 | ||
|                 }
 | ||
|               ]
 | ||
|             }
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "delete": {
 | ||
|         "description": "根据设备ID删除一个设备(软删除)",
 | ||
|         "produces": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "tags": [
 | ||
|           "设备管理"
 | ||
|         ],
 | ||
|         "summary": "删除设备",
 | ||
|         "parameters": [
 | ||
|           {
 | ||
|             "type": "string",
 | ||
|             "description": "设备ID",
 | ||
|             "name": "id",
 | ||
|             "in": "path",
 | ||
|             "required": true
 | ||
|           }
 | ||
|         ],
 | ||
|         "responses": {
 | ||
|           "200": {
 | ||
|             "description": "OK",
 | ||
|             "schema": {
 | ||
|               "$ref": "#/definitions/controller.Response"
 | ||
|             }
 | ||
|           }
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "/api/v1/plans": {
 | ||
|       "get": {
 | ||
|         "description": "获取所有计划的列表",
 | ||
|         "produces": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "tags": [
 | ||
|           "计划管理"
 | ||
|         ],
 | ||
|         "summary": "获取计划列表",
 | ||
|         "responses": {
 | ||
|           "200": {
 | ||
|             "description": "业务码为200代表成功获取列表",
 | ||
|             "schema": {
 | ||
|               "allOf": [
 | ||
|                 {
 | ||
|                   "$ref": "#/definitions/controller.Response"
 | ||
|                 },
 | ||
|                 {
 | ||
|                   "type": "object",
 | ||
|                   "properties": {
 | ||
|                     "data": {
 | ||
|                       "$ref": "#/definitions/plan.ListPlansResponse"
 | ||
|                     }
 | ||
|                   }
 | ||
|                 }
 | ||
|               ]
 | ||
|             }
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "post": {
 | ||
|         "description": "创建一个新的计划,包括其基本信息和所有关联的子计划/任务。",
 | ||
|         "consumes": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "produces": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "tags": [
 | ||
|           "计划管理"
 | ||
|         ],
 | ||
|         "summary": "创建计划",
 | ||
|         "parameters": [
 | ||
|           {
 | ||
|             "description": "计划信息",
 | ||
|             "name": "plan",
 | ||
|             "in": "body",
 | ||
|             "required": true,
 | ||
|             "schema": {
 | ||
|               "$ref": "#/definitions/plan.CreatePlanRequest"
 | ||
|             }
 | ||
|           }
 | ||
|         ],
 | ||
|         "responses": {
 | ||
|           "200": {
 | ||
|             "description": "业务码为201代表创建成功",
 | ||
|             "schema": {
 | ||
|               "allOf": [
 | ||
|                 {
 | ||
|                   "$ref": "#/definitions/controller.Response"
 | ||
|                 },
 | ||
|                 {
 | ||
|                   "type": "object",
 | ||
|                   "properties": {
 | ||
|                     "data": {
 | ||
|                       "$ref": "#/definitions/plan.PlanResponse"
 | ||
|                     }
 | ||
|                   }
 | ||
|                 }
 | ||
|               ]
 | ||
|             }
 | ||
|           }
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "/api/v1/plans/{id}": {
 | ||
|       "get": {
 | ||
|         "description": "根据计划ID获取单个计划的详细信息。",
 | ||
|         "produces": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "tags": [
 | ||
|           "计划管理"
 | ||
|         ],
 | ||
|         "summary": "获取计划详情",
 | ||
|         "parameters": [
 | ||
|           {
 | ||
|             "type": "integer",
 | ||
|             "description": "计划ID",
 | ||
|             "name": "id",
 | ||
|             "in": "path",
 | ||
|             "required": true
 | ||
|           }
 | ||
|         ],
 | ||
|         "responses": {
 | ||
|           "200": {
 | ||
|             "description": "业务码为200代表成功获取",
 | ||
|             "schema": {
 | ||
|               "allOf": [
 | ||
|                 {
 | ||
|                   "$ref": "#/definitions/controller.Response"
 | ||
|                 },
 | ||
|                 {
 | ||
|                   "type": "object",
 | ||
|                   "properties": {
 | ||
|                     "data": {
 | ||
|                       "$ref": "#/definitions/plan.PlanResponse"
 | ||
|                     }
 | ||
|                   }
 | ||
|                 }
 | ||
|               ]
 | ||
|             }
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "put": {
 | ||
|         "description": "根据计划ID更新计划的详细信息。",
 | ||
|         "consumes": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "produces": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "tags": [
 | ||
|           "计划管理"
 | ||
|         ],
 | ||
|         "summary": "更新计划",
 | ||
|         "parameters": [
 | ||
|           {
 | ||
|             "type": "integer",
 | ||
|             "description": "计划ID",
 | ||
|             "name": "id",
 | ||
|             "in": "path",
 | ||
|             "required": true
 | ||
|           },
 | ||
|           {
 | ||
|             "description": "更新后的计划信息",
 | ||
|             "name": "plan",
 | ||
|             "in": "body",
 | ||
|             "required": true,
 | ||
|             "schema": {
 | ||
|               "$ref": "#/definitions/plan.UpdatePlanRequest"
 | ||
|             }
 | ||
|           }
 | ||
|         ],
 | ||
|         "responses": {
 | ||
|           "200": {
 | ||
|             "description": "业务码为200代表更新成功",
 | ||
|             "schema": {
 | ||
|               "allOf": [
 | ||
|                 {
 | ||
|                   "$ref": "#/definitions/controller.Response"
 | ||
|                 },
 | ||
|                 {
 | ||
|                   "type": "object",
 | ||
|                   "properties": {
 | ||
|                     "data": {
 | ||
|                       "$ref": "#/definitions/plan.PlanResponse"
 | ||
|                     }
 | ||
|                   }
 | ||
|                 }
 | ||
|               ]
 | ||
|             }
 | ||
|           }
 | ||
|         }
 | ||
|       },
 | ||
|       "delete": {
 | ||
|         "description": "根据计划ID删除计划。",
 | ||
|         "produces": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "tags": [
 | ||
|           "计划管理"
 | ||
|         ],
 | ||
|         "summary": "删除计划",
 | ||
|         "parameters": [
 | ||
|           {
 | ||
|             "type": "integer",
 | ||
|             "description": "计划ID",
 | ||
|             "name": "id",
 | ||
|             "in": "path",
 | ||
|             "required": true
 | ||
|           }
 | ||
|         ],
 | ||
|         "responses": {
 | ||
|           "200": {
 | ||
|             "description": "业务码为200代表删除成功",
 | ||
|             "schema": {
 | ||
|               "$ref": "#/definitions/controller.Response"
 | ||
|             }
 | ||
|           }
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "/api/v1/plans/{id}/start": {
 | ||
|       "post": {
 | ||
|         "description": "根据计划ID启动一个计划的执行。",
 | ||
|         "produces": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "tags": [
 | ||
|           "计划管理"
 | ||
|         ],
 | ||
|         "summary": "启动计划",
 | ||
|         "parameters": [
 | ||
|           {
 | ||
|             "type": "integer",
 | ||
|             "description": "计划ID",
 | ||
|             "name": "id",
 | ||
|             "in": "path",
 | ||
|             "required": true
 | ||
|           }
 | ||
|         ],
 | ||
|         "responses": {
 | ||
|           "200": {
 | ||
|             "description": "业务码为200代表成功启动计划",
 | ||
|             "schema": {
 | ||
|               "$ref": "#/definitions/controller.Response"
 | ||
|             }
 | ||
|           }
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "/api/v1/plans/{id}/stop": {
 | ||
|       "post": {
 | ||
|         "description": "根据计划ID停止一个正在执行的计划。",
 | ||
|         "produces": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "tags": [
 | ||
|           "计划管理"
 | ||
|         ],
 | ||
|         "summary": "停止计划",
 | ||
|         "parameters": [
 | ||
|           {
 | ||
|             "type": "integer",
 | ||
|             "description": "计划ID",
 | ||
|             "name": "id",
 | ||
|             "in": "path",
 | ||
|             "required": true
 | ||
|           }
 | ||
|         ],
 | ||
|         "responses": {
 | ||
|           "200": {
 | ||
|             "description": "业务码为200代表成功停止计划",
 | ||
|             "schema": {
 | ||
|               "$ref": "#/definitions/controller.Response"
 | ||
|             }
 | ||
|           }
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "/api/v1/users": {
 | ||
|       "post": {
 | ||
|         "description": "根据用户名和密码创建一个新的系统用户。",
 | ||
|         "consumes": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "produces": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "tags": [
 | ||
|           "用户管理"
 | ||
|         ],
 | ||
|         "summary": "创建新用户",
 | ||
|         "parameters": [
 | ||
|           {
 | ||
|             "description": "用户信息",
 | ||
|             "name": "user",
 | ||
|             "in": "body",
 | ||
|             "required": true,
 | ||
|             "schema": {
 | ||
|               "$ref": "#/definitions/user.CreateUserRequest"
 | ||
|             }
 | ||
|           }
 | ||
|         ],
 | ||
|         "responses": {
 | ||
|           "200": {
 | ||
|             "description": "业务码为201代表创建成功",
 | ||
|             "schema": {
 | ||
|               "allOf": [
 | ||
|                 {
 | ||
|                   "$ref": "#/definitions/controller.Response"
 | ||
|                 },
 | ||
|                 {
 | ||
|                   "type": "object",
 | ||
|                   "properties": {
 | ||
|                     "data": {
 | ||
|                       "$ref": "#/definitions/user.CreateUserResponse"
 | ||
|                     }
 | ||
|                   }
 | ||
|                 }
 | ||
|               ]
 | ||
|             }
 | ||
|           }
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "/api/v1/users/login": {
 | ||
|       "post": {
 | ||
|         "description": "用户使用用户名和密码登录,成功后返回 JWT 令牌。",
 | ||
|         "consumes": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "produces": [
 | ||
|           "application/json"
 | ||
|         ],
 | ||
|         "tags": [
 | ||
|           "用户管理"
 | ||
|         ],
 | ||
|         "summary": "用户登录",
 | ||
|         "parameters": [
 | ||
|           {
 | ||
|             "description": "登录凭证",
 | ||
|             "name": "credentials",
 | ||
|             "in": "body",
 | ||
|             "required": true,
 | ||
|             "schema": {
 | ||
|               "$ref": "#/definitions/user.LoginRequest"
 | ||
|             }
 | ||
|           }
 | ||
|         ],
 | ||
|         "responses": {
 | ||
|           "200": {
 | ||
|             "description": "业务码为200代表登录成功",
 | ||
|             "schema": {
 | ||
|               "allOf": [
 | ||
|                 {
 | ||
|                   "$ref": "#/definitions/controller.Response"
 | ||
|                 },
 | ||
|                 {
 | ||
|                   "type": "object",
 | ||
|                   "properties": {
 | ||
|                     "data": {
 | ||
|                       "$ref": "#/definitions/user.LoginResponse"
 | ||
|                     }
 | ||
|                   }
 | ||
|                 }
 | ||
|               ]
 | ||
|             }
 | ||
|           }
 | ||
|         }
 | ||
|       }
 | ||
|     }
 | ||
|   },
 | ||
|   "definitions": {
 | ||
|     "controller.Response": {
 | ||
|       "type": "object",
 | ||
|       "properties": {
 | ||
|         "code": {
 | ||
|           "description": "业务状态码",
 | ||
|           "type": "integer"
 | ||
|         },
 | ||
|         "data": {
 | ||
|           "description": "业务数据"
 | ||
|         },
 | ||
|         "message": {
 | ||
|           "description": "提示信息",
 | ||
|           "type": "string"
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "device.CreateDeviceRequest": {
 | ||
|       "type": "object",
 | ||
|       "required": [
 | ||
|         "name",
 | ||
|         "type"
 | ||
|       ],
 | ||
|       "properties": {
 | ||
|         "location": {
 | ||
|           "type": "string"
 | ||
|         },
 | ||
|         "name": {
 | ||
|           "type": "string"
 | ||
|         },
 | ||
|         "parent_id": {
 | ||
|           "type": "integer"
 | ||
|         },
 | ||
|         "properties": {
 | ||
|           "type": "object",
 | ||
|           "additionalProperties": true
 | ||
|         },
 | ||
|         "sub_type": {
 | ||
|           "$ref": "#/definitions/models.DeviceSubType"
 | ||
|         },
 | ||
|         "type": {
 | ||
|           "$ref": "#/definitions/models.DeviceType"
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "device.UpdateDeviceRequest": {
 | ||
|       "type": "object",
 | ||
|       "required": [
 | ||
|         "name",
 | ||
|         "type"
 | ||
|       ],
 | ||
|       "properties": {
 | ||
|         "location": {
 | ||
|           "type": "string"
 | ||
|         },
 | ||
|         "name": {
 | ||
|           "type": "string"
 | ||
|         },
 | ||
|         "parent_id": {
 | ||
|           "type": "integer"
 | ||
|         },
 | ||
|         "properties": {
 | ||
|           "type": "object",
 | ||
|           "additionalProperties": true
 | ||
|         },
 | ||
|         "sub_type": {
 | ||
|           "$ref": "#/definitions/models.DeviceSubType"
 | ||
|         },
 | ||
|         "type": {
 | ||
|           "$ref": "#/definitions/models.DeviceType"
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "git_huangwc_com_pig_pig-farm-controller_internal_app_controller_device.DeviceResponse": {
 | ||
|       "type": "object",
 | ||
|       "properties": {
 | ||
|         "created_at": {
 | ||
|           "type": "string"
 | ||
|         },
 | ||
|         "id": {
 | ||
|           "type": "integer"
 | ||
|         },
 | ||
|         "location": {
 | ||
|           "type": "string"
 | ||
|         },
 | ||
|         "name": {
 | ||
|           "type": "string"
 | ||
|         },
 | ||
|         "parent_id": {
 | ||
|           "type": "integer"
 | ||
|         },
 | ||
|         "properties": {
 | ||
|           "type": "object",
 | ||
|           "additionalProperties": true
 | ||
|         },
 | ||
|         "sub_type": {
 | ||
|           "$ref": "#/definitions/models.DeviceSubType"
 | ||
|         },
 | ||
|         "type": {
 | ||
|           "$ref": "#/definitions/models.DeviceType"
 | ||
|         },
 | ||
|         "updated_at": {
 | ||
|           "type": "string"
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "models.DeviceSubType": {
 | ||
|       "type": "string",
 | ||
|       "enum": [
 | ||
|         "",
 | ||
|         "temperature",
 | ||
|         "humidity",
 | ||
|         "ammonia",
 | ||
|         "feed_valve",
 | ||
|         "fan",
 | ||
|         "water_curtain"
 | ||
|       ],
 | ||
|       "x-enum-varnames": [
 | ||
|         "SubTypeNone",
 | ||
|         "SubTypeSensorTemp",
 | ||
|         "SubTypeSensorHumidity",
 | ||
|         "SubTypeSensorAmmonia",
 | ||
|         "SubTypeValveFeed",
 | ||
|         "SubTypeFan",
 | ||
|         "SubTypeWaterCurtain"
 | ||
|       ]
 | ||
|     },
 | ||
|     "models.DeviceType": {
 | ||
|       "type": "string",
 | ||
|       "enum": [
 | ||
|         "area_controller",
 | ||
|         "device"
 | ||
|       ],
 | ||
|       "x-enum-varnames": [
 | ||
|         "DeviceTypeAreaController",
 | ||
|         "DeviceTypeDevice"
 | ||
|       ]
 | ||
|     },
 | ||
|     "models.PlanContentType": {
 | ||
|       "type": "string",
 | ||
|       "enum": [
 | ||
|         "sub_plans",
 | ||
|         "tasks"
 | ||
|       ],
 | ||
|       "x-enum-comments": {
 | ||
|         "PlanContentTypeSubPlans": "计划包含子计划",
 | ||
|         "PlanContentTypeTasks": "计划包含任务"
 | ||
|       },
 | ||
|       "x-enum-descriptions": [
 | ||
|         "计划包含子计划",
 | ||
|         "计划包含任务"
 | ||
|       ],
 | ||
|       "x-enum-varnames": [
 | ||
|         "PlanContentTypeSubPlans",
 | ||
|         "PlanContentTypeTasks"
 | ||
|       ]
 | ||
|     },
 | ||
|     "models.PlanExecutionType": {
 | ||
|       "type": "string",
 | ||
|       "enum": [
 | ||
|         "automatic",
 | ||
|         "manual"
 | ||
|       ],
 | ||
|       "x-enum-comments": {
 | ||
|         "PlanExecutionTypeAutomatic": "自动执行 (包含定时和循环)",
 | ||
|         "PlanExecutionTypeManual": "手动执行"
 | ||
|       },
 | ||
|       "x-enum-descriptions": [
 | ||
|         "自动执行 (包含定时和循环)",
 | ||
|         "手动执行"
 | ||
|       ],
 | ||
|       "x-enum-varnames": [
 | ||
|         "PlanExecutionTypeAutomatic",
 | ||
|         "PlanExecutionTypeManual"
 | ||
|       ]
 | ||
|     },
 | ||
|     "models.PlanStatus": {
 | ||
|       "type": "integer",
 | ||
|       "format": "int32",
 | ||
|       "enum": [
 | ||
|         0,
 | ||
|         1,
 | ||
|         2
 | ||
|       ],
 | ||
|       "x-enum-comments": {
 | ||
|         "PlanStatusDisabled": "禁用计划",
 | ||
|         "PlanStatusEnabled": "启用计划",
 | ||
|         "PlanStatusStopeed": "执行完毕"
 | ||
|       },
 | ||
|       "x-enum-descriptions": [
 | ||
|         "启用计划",
 | ||
|         "禁用计划",
 | ||
|         "执行完毕"
 | ||
|       ],
 | ||
|       "x-enum-varnames": [
 | ||
|         "PlanStatusEnabled",
 | ||
|         "PlanStatusDisabled",
 | ||
|         "PlanStatusStopeed"
 | ||
|       ]
 | ||
|     },
 | ||
|     "models.TaskType": {
 | ||
|       "type": "string",
 | ||
|       "enum": [
 | ||
|         "plan_analysis",
 | ||
|         "waiting"
 | ||
|       ],
 | ||
|       "x-enum-comments": {
 | ||
|         "TaskPlanAnalysis": "解析Plan的Task列表并添加到待执行队列的特殊任务",
 | ||
|         "TaskTypeWaiting": "等待任务"
 | ||
|       },
 | ||
|       "x-enum-descriptions": [
 | ||
|         "解析Plan的Task列表并添加到待执行队列的特殊任务",
 | ||
|         "等待任务"
 | ||
|       ],
 | ||
|       "x-enum-varnames": [
 | ||
|         "TaskPlanAnalysis",
 | ||
|         "TaskTypeWaiting"
 | ||
|       ]
 | ||
|     },
 | ||
|     "plan.CreatePlanRequest": {
 | ||
|       "type": "object",
 | ||
|       "required": [
 | ||
|         "content_type",
 | ||
|         "execution_type",
 | ||
|         "name"
 | ||
|       ],
 | ||
|       "properties": {
 | ||
|         "content_type": {
 | ||
|           "allOf": [
 | ||
|             {
 | ||
|               "$ref": "#/definitions/models.PlanContentType"
 | ||
|             }
 | ||
|           ],
 | ||
|           "example": "tasks"
 | ||
|         },
 | ||
|         "cron_expression": {
 | ||
|           "type": "string",
 | ||
|           "example": "0 0 6 * * *"
 | ||
|         },
 | ||
|         "description": {
 | ||
|           "type": "string",
 | ||
|           "example": "根据温度自动调节风扇和加热器"
 | ||
|         },
 | ||
|         "execute_num": {
 | ||
|           "type": "integer",
 | ||
|           "example": 10
 | ||
|         },
 | ||
|         "execution_type": {
 | ||
|           "allOf": [
 | ||
|             {
 | ||
|               "$ref": "#/definitions/models.PlanExecutionType"
 | ||
|             }
 | ||
|           ],
 | ||
|           "example": "automatic"
 | ||
|         },
 | ||
|         "name": {
 | ||
|           "type": "string",
 | ||
|           "example": "猪舍温度控制计划"
 | ||
|         },
 | ||
|         "sub_plan_ids": {
 | ||
|           "type": "array",
 | ||
|           "items": {
 | ||
|             "type": "integer"
 | ||
|           }
 | ||
|         },
 | ||
|         "tasks": {
 | ||
|           "type": "array",
 | ||
|           "items": {
 | ||
|             "$ref": "#/definitions/plan.TaskRequest"
 | ||
|           }
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "plan.ListPlansResponse": {
 | ||
|       "type": "object",
 | ||
|       "properties": {
 | ||
|         "plans": {
 | ||
|           "type": "array",
 | ||
|           "items": {
 | ||
|             "$ref": "#/definitions/plan.PlanResponse"
 | ||
|           }
 | ||
|         },
 | ||
|         "total": {
 | ||
|           "type": "integer",
 | ||
|           "example": 100
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "plan.PlanResponse": {
 | ||
|       "type": "object",
 | ||
|       "properties": {
 | ||
|         "content_type": {
 | ||
|           "allOf": [
 | ||
|             {
 | ||
|               "$ref": "#/definitions/models.PlanContentType"
 | ||
|             }
 | ||
|           ],
 | ||
|           "example": "tasks"
 | ||
|         },
 | ||
|         "cron_expression": {
 | ||
|           "type": "string",
 | ||
|           "example": "0 0 6 * * *"
 | ||
|         },
 | ||
|         "description": {
 | ||
|           "type": "string",
 | ||
|           "example": "根据温度自动调节风扇和加热器"
 | ||
|         },
 | ||
|         "execute_count": {
 | ||
|           "type": "integer",
 | ||
|           "example": 0
 | ||
|         },
 | ||
|         "execute_num": {
 | ||
|           "type": "integer",
 | ||
|           "example": 10
 | ||
|         },
 | ||
|         "execution_type": {
 | ||
|           "allOf": [
 | ||
|             {
 | ||
|               "$ref": "#/definitions/models.PlanExecutionType"
 | ||
|             }
 | ||
|           ],
 | ||
|           "example": "automatic"
 | ||
|         },
 | ||
|         "id": {
 | ||
|           "type": "integer",
 | ||
|           "example": 1
 | ||
|         },
 | ||
|         "name": {
 | ||
|           "type": "string",
 | ||
|           "example": "猪舍温度控制计划"
 | ||
|         },
 | ||
|         "status": {
 | ||
|           "allOf": [
 | ||
|             {
 | ||
|               "$ref": "#/definitions/models.PlanStatus"
 | ||
|             }
 | ||
|           ],
 | ||
|           "example": 0
 | ||
|         },
 | ||
|         "sub_plans": {
 | ||
|           "type": "array",
 | ||
|           "items": {
 | ||
|             "$ref": "#/definitions/plan.SubPlanResponse"
 | ||
|           }
 | ||
|         },
 | ||
|         "tasks": {
 | ||
|           "type": "array",
 | ||
|           "items": {
 | ||
|             "$ref": "#/definitions/plan.TaskResponse"
 | ||
|           }
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "plan.SubPlanResponse": {
 | ||
|       "type": "object",
 | ||
|       "properties": {
 | ||
|         "child_plan": {
 | ||
|           "$ref": "#/definitions/plan.PlanResponse"
 | ||
|         },
 | ||
|         "child_plan_id": {
 | ||
|           "type": "integer",
 | ||
|           "example": 2
 | ||
|         },
 | ||
|         "execution_order": {
 | ||
|           "type": "integer",
 | ||
|           "example": 1
 | ||
|         },
 | ||
|         "id": {
 | ||
|           "type": "integer",
 | ||
|           "example": 1
 | ||
|         },
 | ||
|         "parent_plan_id": {
 | ||
|           "type": "integer",
 | ||
|           "example": 1
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "plan.TaskRequest": {
 | ||
|       "type": "object",
 | ||
|       "properties": {
 | ||
|         "description": {
 | ||
|           "type": "string",
 | ||
|           "example": "打开1号风扇"
 | ||
|         },
 | ||
|         "execution_order": {
 | ||
|           "type": "integer",
 | ||
|           "example": 1
 | ||
|         },
 | ||
|         "name": {
 | ||
|           "type": "string",
 | ||
|           "example": "打开风扇"
 | ||
|         },
 | ||
|         "parameters": {
 | ||
|           "type": "object",
 | ||
|           "additionalProperties": true
 | ||
|         },
 | ||
|         "type": {
 | ||
|           "allOf": [
 | ||
|             {
 | ||
|               "$ref": "#/definitions/models.TaskType"
 | ||
|             }
 | ||
|           ],
 | ||
|           "example": "waiting"
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "plan.TaskResponse": {
 | ||
|       "type": "object",
 | ||
|       "properties": {
 | ||
|         "description": {
 | ||
|           "type": "string",
 | ||
|           "example": "打开1号风扇"
 | ||
|         },
 | ||
|         "execution_order": {
 | ||
|           "type": "integer",
 | ||
|           "example": 1
 | ||
|         },
 | ||
|         "id": {
 | ||
|           "type": "integer",
 | ||
|           "example": 1
 | ||
|         },
 | ||
|         "name": {
 | ||
|           "type": "string",
 | ||
|           "example": "打开风扇"
 | ||
|         },
 | ||
|         "parameters": {
 | ||
|           "type": "object",
 | ||
|           "additionalProperties": true
 | ||
|         },
 | ||
|         "plan_id": {
 | ||
|           "type": "integer",
 | ||
|           "example": 1
 | ||
|         },
 | ||
|         "type": {
 | ||
|           "allOf": [
 | ||
|             {
 | ||
|               "$ref": "#/definitions/models.TaskType"
 | ||
|             }
 | ||
|           ],
 | ||
|           "example": "waiting"
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "plan.UpdatePlanRequest": {
 | ||
|       "type": "object",
 | ||
|       "properties": {
 | ||
|         "content_type": {
 | ||
|           "allOf": [
 | ||
|             {
 | ||
|               "$ref": "#/definitions/models.PlanContentType"
 | ||
|             }
 | ||
|           ],
 | ||
|           "example": "tasks"
 | ||
|         },
 | ||
|         "cron_expression": {
 | ||
|           "type": "string",
 | ||
|           "example": "0 0 6 * * *"
 | ||
|         },
 | ||
|         "description": {
 | ||
|           "type": "string",
 | ||
|           "example": "更新后的描述"
 | ||
|         },
 | ||
|         "execute_num": {
 | ||
|           "type": "integer",
 | ||
|           "example": 10
 | ||
|         },
 | ||
|         "execution_type": {
 | ||
|           "allOf": [
 | ||
|             {
 | ||
|               "$ref": "#/definitions/models.PlanExecutionType"
 | ||
|             }
 | ||
|           ],
 | ||
|           "example": "automatic"
 | ||
|         },
 | ||
|         "name": {
 | ||
|           "type": "string",
 | ||
|           "example": "猪舍温度控制计划V2"
 | ||
|         },
 | ||
|         "sub_plan_ids": {
 | ||
|           "type": "array",
 | ||
|           "items": {
 | ||
|             "type": "integer"
 | ||
|           }
 | ||
|         },
 | ||
|         "tasks": {
 | ||
|           "type": "array",
 | ||
|           "items": {
 | ||
|             "$ref": "#/definitions/plan.TaskRequest"
 | ||
|           }
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "user.CreateUserRequest": {
 | ||
|       "type": "object",
 | ||
|       "required": [
 | ||
|         "password",
 | ||
|         "username"
 | ||
|       ],
 | ||
|       "properties": {
 | ||
|         "password": {
 | ||
|           "type": "string",
 | ||
|           "minLength": 6,
 | ||
|           "example": "password123"
 | ||
|         },
 | ||
|         "username": {
 | ||
|           "type": "string",
 | ||
|           "example": "newuser"
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "user.CreateUserResponse": {
 | ||
|       "type": "object",
 | ||
|       "properties": {
 | ||
|         "id": {
 | ||
|           "type": "integer",
 | ||
|           "example": 1
 | ||
|         },
 | ||
|         "username": {
 | ||
|           "type": "string",
 | ||
|           "example": "newuser"
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "user.LoginRequest": {
 | ||
|       "type": "object",
 | ||
|       "required": [
 | ||
|         "password",
 | ||
|         "username"
 | ||
|       ],
 | ||
|       "properties": {
 | ||
|         "password": {
 | ||
|           "type": "string",
 | ||
|           "example": "password123"
 | ||
|         },
 | ||
|         "username": {
 | ||
|           "type": "string",
 | ||
|           "example": "testuser"
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
|     "user.LoginResponse": {
 | ||
|       "type": "object",
 | ||
|       "properties": {
 | ||
|         "id": {
 | ||
|           "type": "integer",
 | ||
|           "example": 1
 | ||
|         },
 | ||
|         "token": {
 | ||
|           "type": "string",
 | ||
|           "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
 | ||
|         },
 | ||
|         "username": {
 | ||
|           "type": "string",
 | ||
|           "example": "testuser"
 | ||
|         }
 | ||
|       }
 | ||
|     }
 | ||
|   }
 | ||
| } |