Files
pig-farm-controller/docs/docs.go

990 lines
32 KiB
Go
Raw Normal View History

2025-09-12 16:58:39 +08:00
// Package docs Code generated by swaggo/swag. DO NOT EDIT
package docs
import "github.com/swaggo/swag"
const docTemplate = `{
"schemes": {{ marshal .Schemes }},
"swagger": "2.0",
"info": {
"description": "{{escape .Description}}",
"title": "{{.Title}}",
2025-09-12 20:32:29 +08:00
"contact": {},
2025-09-12 16:58:39 +08:00
"version": "{{.Version}}"
},
"host": "{{.Host}}",
"basePath": "{{.BasePath}}",
"paths": {
2025-09-19 15:55:56 +08:00
"/api/v1/devices": {
2025-09-12 17:43:42 +08:00
"get": {
"description": "获取系统中所有设备的列表",
"produces": [
"application/json"
],
"tags": [
"设备管理"
],
"summary": "获取设备列表",
"responses": {
"200": {
"description": "业务失败,具体错误码和信息见响应体",
"schema": {
"$ref": "#/definitions/controller.Response"
}
}
}
},
2025-09-12 16:58:39 +08:00
"post": {
2025-09-12 17:43:42 +08:00
"description": "根据提供的信息创建一个新设备",
2025-09-12 16:58:39 +08:00
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
2025-09-12 17:43:42 +08:00
"设备管理"
2025-09-12 16:58:39 +08:00
],
2025-09-12 17:43:42 +08:00
"summary": "创建新设备",
2025-09-12 16:58:39 +08:00
"parameters": [
{
2025-09-12 17:43:42 +08:00
"description": "设备信息",
"name": "device",
2025-09-12 16:58:39 +08:00
"in": "body",
"required": true,
"schema": {
2025-09-12 17:43:42 +08:00
"$ref": "#/definitions/device.CreateDeviceRequest"
2025-09-12 16:58:39 +08:00
}
}
],
"responses": {
"200": {
2025-09-12 17:43:42 +08:00
"description": "业务失败,具体错误码和信息见响应体",
2025-09-12 16:58:39 +08:00
"schema": {
2025-09-12 17:43:42 +08:00
"$ref": "#/definitions/controller.Response"
2025-09-12 16:58:39 +08:00
}
2025-09-12 17:43:42 +08:00
}
}
}
},
2025-09-19 15:55:56 +08:00
"/api/v1/devices/{id}": {
2025-09-12 17:43:42 +08:00
"get": {
"description": "根据设备ID获取单个设备的详细信息",
"produces": [
"application/json"
],
"tags": [
"设备管理"
],
"summary": "获取设备信息",
"parameters": [
{
"type": "string",
"description": "设备ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "业务失败,具体错误码和信息见响应体",
2025-09-12 16:58:39 +08:00
"schema": {
"$ref": "#/definitions/controller.Response"
}
2025-09-12 17:43:42 +08:00
}
}
},
"put": {
"description": "根据设备ID更新一个已存在的设备信息",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"设备管理"
],
"summary": "更新设备信息",
"parameters": [
{
"type": "string",
"description": "设备ID",
"name": "id",
"in": "path",
"required": true
2025-09-12 16:58:39 +08:00
},
2025-09-12 17:43:42 +08:00
{
"description": "要更新的设备信息",
"name": "device",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/device.UpdateDeviceRequest"
}
}
],
"responses": {
"200": {
"description": "业务失败,具体错误码和信息见响应体",
2025-09-12 16:58:39 +08:00
"schema": {
"$ref": "#/definitions/controller.Response"
}
2025-09-12 17:43:42 +08:00
}
}
},
"delete": {
"description": "根据设备ID删除一个设备软删除",
"produces": [
"application/json"
],
"tags": [
"设备管理"
],
"summary": "删除设备",
"parameters": [
{
"type": "string",
"description": "设备ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "业务失败,具体错误码和信息见响应体",
"schema": {
"$ref": "#/definitions/controller.Response"
}
}
}
}
},
2025-09-19 15:55:56 +08:00
"/api/v1/plans": {
2025-09-13 14:09:22 +08:00
"get": {
"description": "获取所有计划的列表",
"produces": [
"application/json"
],
"tags": [
"计划管理"
],
"summary": "获取计划列表",
"responses": {
"200": {
"description": "业务失败具体错误码和信息见响应体例如400, 500",
"schema": {
"$ref": "#/definitions/controller.Response"
}
}
}
},
"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": "业务失败具体错误码和信息见响应体例如400, 500",
"schema": {
"$ref": "#/definitions/controller.Response"
}
}
}
}
},
2025-09-19 15:55:56 +08:00
"/api/v1/plans/{id}": {
2025-09-13 14:09:22 +08:00
"get": {
"description": "根据计划ID获取单个计划的详细信息。",
"produces": [
"application/json"
],
"tags": [
"计划管理"
],
"summary": "获取计划详情",
"parameters": [
{
"type": "integer",
"description": "计划ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "业务失败具体错误码和信息见响应体例如400, 404, 500",
"schema": {
"$ref": "#/definitions/controller.Response"
}
}
}
},
"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": "业务失败具体错误码和信息见响应体例如400, 404, 500",
"schema": {
"$ref": "#/definitions/controller.Response"
}
}
}
},
"delete": {
"description": "根据计划ID删除计划。",
"produces": [
"application/json"
],
"tags": [
"计划管理"
],
"summary": "删除计划",
"parameters": [
{
"type": "integer",
"description": "计划ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "业务失败具体错误码和信息见响应体例如400, 404, 500",
"schema": {
"$ref": "#/definitions/controller.Response"
}
}
}
}
},
2025-09-19 15:55:56 +08:00
"/api/v1/plans/{id}/start": {
2025-09-13 14:09:22 +08:00
"post": {
"description": "根据计划ID启动一个计划的执行。",
"produces": [
"application/json"
],
"tags": [
"计划管理"
],
"summary": "启动计划",
"parameters": [
{
"type": "integer",
"description": "计划ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "业务失败具体错误码和信息见响应体例如400, 404, 500",
"schema": {
"$ref": "#/definitions/controller.Response"
}
}
}
}
},
2025-09-19 15:55:56 +08:00
"/api/v1/plans/{id}/stop": {
2025-09-13 14:09:22 +08:00
"post": {
"description": "根据计划ID停止一个正在执行的计划。",
"produces": [
"application/json"
],
"tags": [
"计划管理"
],
"summary": "停止计划",
"parameters": [
{
"type": "integer",
"description": "计划ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "业务失败具体错误码和信息见响应体例如400, 404, 500",
"schema": {
"$ref": "#/definitions/controller.Response"
}
}
}
}
},
2025-09-19 15:55:56 +08:00
"/api/v1/users": {
2025-09-12 17:43:42 +08:00
"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": "业务失败具体错误码和信息见响应体例如400, 409, 500",
2025-09-12 16:58:39 +08:00
"schema": {
"$ref": "#/definitions/controller.Response"
}
}
}
}
},
2025-09-19 15:55:56 +08:00
"/api/v1/users/login": {
2025-09-12 16:58:39 +08:00
"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": {
2025-09-12 17:43:42 +08:00
"description": "业务失败具体错误码和信息见响应体例如400, 401, 500",
2025-09-12 16:58:39 +08:00
"schema": {
"$ref": "#/definitions/controller.Response"
}
}
}
}
}
},
"definitions": {
2025-09-12 17:43:42 +08:00
"controller.Properties": {
"type": "object"
},
2025-09-12 16:58:39 +08:00
"controller.Response": {
"type": "object",
"properties": {
"code": {
"description": "业务状态码",
"type": "integer"
},
"data": {
"description": "业务数据"
},
"message": {
"description": "提示信息",
"type": "string"
}
}
},
2025-09-12 17:43:42 +08:00
"device.CreateDeviceRequest": {
"type": "object"
},
2025-09-19 13:18:05 +08:00
"device.UpdateDeviceRequest": {
2025-09-12 17:43:42 +08:00
"type": "object",
2025-09-19 13:18:05 +08:00
"required": [
"name",
"type"
],
2025-09-12 17:43:42 +08:00
"properties": {
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"parent_id": {
"type": "integer"
},
"properties": {
"$ref": "#/definitions/controller.Properties"
},
"sub_type": {
"$ref": "#/definitions/models.DeviceSubType"
},
"type": {
"$ref": "#/definitions/models.DeviceType"
}
}
},
2025-09-19 13:18:05 +08:00
"git_huangwc_com_pig_pig-farm-controller_internal_app_controller_device.DeviceResponse": {
2025-09-12 17:43:42 +08:00
"type": "object",
"properties": {
2025-09-19 13:18:05 +08:00
"created_at": {
"type": "string"
},
"id": {
"type": "integer"
},
2025-09-12 17:43:42 +08:00
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"parent_id": {
"type": "integer"
},
"properties": {
"$ref": "#/definitions/controller.Properties"
},
"sub_type": {
"$ref": "#/definitions/models.DeviceSubType"
},
"type": {
"$ref": "#/definitions/models.DeviceType"
2025-09-19 13:18:05 +08:00
},
"updated_at": {
"type": "string"
2025-09-12 17:43:42 +08:00
}
}
},
"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"
]
},
2025-09-14 21:30:20 +08:00
"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"
]
},
2025-09-19 13:18:05 +08:00
"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"
]
},
2025-09-14 21:30:20 +08:00
"models.TaskType": {
"type": "string",
"enum": [
2025-09-19 13:18:05 +08:00
"plan_analysis",
2025-09-14 21:30:20 +08:00
"waiting"
],
"x-enum-comments": {
2025-09-19 13:18:05 +08:00
"TaskPlanAnalysis": "解析Plan的Task列表并添加到待执行队列的特殊任务",
2025-09-14 21:30:20 +08:00
"TaskTypeWaiting": "等待任务"
},
"x-enum-descriptions": [
2025-09-19 13:18:05 +08:00
"解析Plan的Task列表并添加到待执行队列的特殊任务",
2025-09-14 21:30:20 +08:00
"等待任务"
],
"x-enum-varnames": [
2025-09-19 13:18:05 +08:00
"TaskPlanAnalysis",
2025-09-14 21:30:20 +08:00
"TaskTypeWaiting"
]
},
2025-09-13 14:09:22 +08:00
"plan.CreatePlanRequest": {
"type": "object",
"required": [
2025-09-14 21:30:20 +08:00
"content_type",
"execution_type",
2025-09-13 14:09:22 +08:00
"name"
],
"properties": {
2025-09-14 21:30:20 +08:00
"content_type": {
"allOf": [
{
"$ref": "#/definitions/models.PlanContentType"
}
],
"example": "tasks"
},
"cron_expression": {
"type": "string",
"example": "0 0 6 * * *"
},
2025-09-13 14:09:22 +08:00
"description": {
"type": "string",
"example": "根据温度自动调节风扇和加热器"
},
2025-09-19 15:55:56 +08:00
"execute_num": {
"type": "integer",
"example": 10
},
2025-09-14 21:30:20 +08:00
"execution_type": {
"allOf": [
{
"$ref": "#/definitions/models.PlanExecutionType"
}
],
"example": "automatic"
},
2025-09-13 14:09:22 +08:00
"name": {
"type": "string",
"example": "猪舍温度控制计划"
2025-09-14 21:30:20 +08:00
},
"sub_plan_ids": {
"type": "array",
"items": {
"type": "integer"
}
},
"tasks": {
"type": "array",
"items": {
"$ref": "#/definitions/plan.TaskRequest"
}
2025-09-13 14:09:22 +08:00
}
}
},
"plan.ListPlansResponse": {
"type": "object",
"properties": {
"plans": {
"type": "array",
"items": {
"$ref": "#/definitions/plan.PlanResponse"
}
},
"total": {
"type": "integer",
"example": 100
}
}
},
"plan.PlanResponse": {
"type": "object",
"properties": {
2025-09-14 21:30:20 +08:00
"content_type": {
"allOf": [
{
"$ref": "#/definitions/models.PlanContentType"
}
],
"example": "tasks"
},
"cron_expression": {
"type": "string",
"example": "0 0 6 * * *"
},
2025-09-13 14:09:22 +08:00
"description": {
"type": "string",
"example": "根据温度自动调节风扇和加热器"
},
2025-09-19 13:18:05 +08:00
"execute_count": {
"type": "integer",
"example": 0
},
"execute_num": {
"type": "integer",
"example": 10
},
2025-09-14 21:30:20 +08:00
"execution_type": {
"allOf": [
{
"$ref": "#/definitions/models.PlanExecutionType"
}
],
"example": "automatic"
},
2025-09-13 14:09:22 +08:00
"id": {
"type": "integer",
"example": 1
},
"name": {
"type": "string",
"example": "猪舍温度控制计划"
2025-09-14 21:30:20 +08:00
},
2025-09-19 13:18:05 +08:00
"status": {
"allOf": [
{
"$ref": "#/definitions/models.PlanStatus"
}
],
"example": 0
},
2025-09-14 21:30:20 +08:00
"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": {
"$ref": "#/definitions/controller.Properties"
},
"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": {
"$ref": "#/definitions/controller.Properties"
},
"plan_id": {
"type": "integer",
"example": 1
},
"type": {
"allOf": [
{
"$ref": "#/definitions/models.TaskType"
}
],
"example": "waiting"
2025-09-13 14:09:22 +08:00
}
}
},
"plan.UpdatePlanRequest": {
"type": "object",
"properties": {
2025-09-14 21:30:20 +08:00
"content_type": {
"allOf": [
{
"$ref": "#/definitions/models.PlanContentType"
}
],
"example": "tasks"
},
"cron_expression": {
"type": "string",
"example": "0 0 6 * * *"
},
2025-09-13 14:09:22 +08:00
"description": {
"type": "string",
"example": "更新后的描述"
},
2025-09-19 15:55:56 +08:00
"execute_num": {
"type": "integer",
"example": 10
},
2025-09-14 21:30:20 +08:00
"execution_type": {
"allOf": [
{
"$ref": "#/definitions/models.PlanExecutionType"
}
],
"example": "automatic"
},
2025-09-13 14:09:22 +08:00
"name": {
"type": "string",
"example": "猪舍温度控制计划V2"
2025-09-14 21:30:20 +08:00
},
"sub_plan_ids": {
"type": "array",
"items": {
"type": "integer"
}
},
"tasks": {
"type": "array",
"items": {
"$ref": "#/definitions/plan.TaskRequest"
}
2025-09-13 14:09:22 +08:00
}
}
},
2025-09-12 16:58:39 +08:00
"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"
}
}
}
}
}`
// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
2025-09-12 20:32:29 +08:00
Version: "",
Host: "",
BasePath: "",
2025-09-12 16:58:39 +08:00
Schemes: []string{},
2025-09-12 20:32:29 +08:00
Title: "",
Description: "",
2025-09-12 16:58:39 +08:00
InfoInstanceName: "swagger",
SwaggerTemplate: docTemplate,
LeftDelim: "{{",
RightDelim: "}}",
}
func init() {
swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}