1102 lines
		
	
	
		
			37 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
			
		
		
	
	
			1102 lines
		
	
	
		
			37 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
| {
 | ||
|     "swagger": "2.0",
 | ||
|     "info": {
 | ||
|         "contact": {}
 | ||
|     },
 | ||
|     "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",
 | ||
|                 "weight",
 | ||
|                 "feed_valve",
 | ||
|                 "fan",
 | ||
|                 "water_curtain"
 | ||
|             ],
 | ||
|             "x-enum-varnames": [
 | ||
|                 "SubTypeNone",
 | ||
|                 "SubTypeSensorTemp",
 | ||
|                 "SubTypeSensorHumidity",
 | ||
|                 "SubTypeSensorAmmonia",
 | ||
|                 "SubTypeSensorWeight",
 | ||
|                 "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,
 | ||
|                 3
 | ||
|             ],
 | ||
|             "x-enum-comments": {
 | ||
|                 "PlanStatusDisabled": "禁用计划",
 | ||
|                 "PlanStatusEnabled": "启用计划",
 | ||
|                 "PlanStatusFailed": "执行失败",
 | ||
|                 "PlanStatusStopeed": "执行完毕"
 | ||
|             },
 | ||
|             "x-enum-descriptions": [
 | ||
|                 "禁用计划",
 | ||
|                 "启用计划",
 | ||
|                 "执行完毕",
 | ||
|                 "执行失败"
 | ||
|             ],
 | ||
|             "x-enum-varnames": [
 | ||
|                 "PlanStatusDisabled",
 | ||
|                 "PlanStatusEnabled",
 | ||
|                 "PlanStatusStopeed",
 | ||
|                 "PlanStatusFailed"
 | ||
|             ]
 | ||
|         },
 | ||
|         "models.TaskType": {
 | ||
|             "type": "string",
 | ||
|             "enum": [
 | ||
|                 "plan_analysis",
 | ||
|                 "waiting",
 | ||
|                 "release_feed_weight"
 | ||
|             ],
 | ||
|             "x-enum-comments": {
 | ||
|                 "TaskPlanAnalysis": "解析Plan的Task列表并添加到待执行队列的特殊任务",
 | ||
|                 "TaskTypeReleaseFeedWeight": "下料口释放指定重量任务",
 | ||
|                 "TaskTypeWaiting": "等待任务"
 | ||
|             },
 | ||
|             "x-enum-descriptions": [
 | ||
|                 "解析Plan的Task列表并添加到待执行队列的特殊任务",
 | ||
|                 "等待任务",
 | ||
|                 "下料口释放指定重量任务"
 | ||
|             ],
 | ||
|             "x-enum-varnames": [
 | ||
|                 "TaskPlanAnalysis",
 | ||
|                 "TaskTypeWaiting",
 | ||
|                 "TaskTypeReleaseFeedWeight"
 | ||
|             ]
 | ||
|         },
 | ||
|         "plan.CreatePlanRequest": {
 | ||
|             "type": "object",
 | ||
|             "required": [
 | ||
|                 "execution_type",
 | ||
|                 "name"
 | ||
|             ],
 | ||
|             "properties": {
 | ||
|                 "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": {
 | ||
|                 "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"
 | ||
|                 }
 | ||
|             }
 | ||
|         }
 | ||
|     }
 | ||
| } |