重构 #4
| @@ -3,6 +3,7 @@ package plan | |||||||
| import ( | import ( | ||||||
| 	"git.huangwc.com/pig/pig-farm-controller/internal/app/controller" | 	"git.huangwc.com/pig/pig-farm-controller/internal/app/controller" | ||||||
| 	"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs" | 	"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs" | ||||||
|  | 	"git.huangwc.com/pig/pig-farm-controller/internal/infra/models" | ||||||
| 	"git.huangwc.com/pig/pig-farm-controller/internal/infra/repository" | 	"git.huangwc.com/pig/pig-farm-controller/internal/infra/repository" | ||||||
| 	"github.com/gin-gonic/gin" | 	"github.com/gin-gonic/gin" | ||||||
| ) | ) | ||||||
| @@ -13,8 +14,11 @@ import ( | |||||||
| type CreatePlanRequest struct { | type CreatePlanRequest struct { | ||||||
| 	Name           string                   `json:"name" binding:"required" example:"猪舍温度控制计划"` | 	Name           string                   `json:"name" binding:"required" example:"猪舍温度控制计划"` | ||||||
| 	Description    string                   `json:"description" example:"根据温度自动调节风扇和加热器"` | 	Description    string                   `json:"description" example:"根据温度自动调节风扇和加热器"` | ||||||
| 	// 更多计划基本信息字段 | 	ExecutionType  models.PlanExecutionType `json:"execution_type" binding:"required" example:"automatic"` | ||||||
| 	// SubPlans 或 Tasks 可以在这里嵌套定义,以支持一次性创建 | 	CronExpression string                   `json:"cron_expression" example:"0 0 6 * * *"` | ||||||
|  | 	ContentType    models.PlanContentType   `json:"content_type" binding:"required" example:"tasks"` | ||||||
|  | 	SubPlanIDs     []uint                   `json:"sub_plan_ids,omitempty"` | ||||||
|  | 	Tasks          []TaskRequest            `json:"tasks,omitempty"` | ||||||
| } | } | ||||||
|  |  | ||||||
| // PlanResponse 定义计划详情响应的结构体 | // PlanResponse 定义计划详情响应的结构体 | ||||||
| @@ -22,8 +26,11 @@ type PlanResponse struct { | |||||||
| 	ID             uint                     `json:"id" example:"1"` | 	ID             uint                     `json:"id" example:"1"` | ||||||
| 	Name           string                   `json:"name" example:"猪舍温度控制计划"` | 	Name           string                   `json:"name" example:"猪舍温度控制计划"` | ||||||
| 	Description    string                   `json:"description" example:"根据温度自动调节风扇和加热器"` | 	Description    string                   `json:"description" example:"根据温度自动调节风扇和加热器"` | ||||||
| 	// 更多计划基本信息字段 | 	ExecutionType  models.PlanExecutionType `json:"execution_type" example:"automatic"` | ||||||
| 	// SubPlans 或 Tasks 也可以在这里返回 | 	CronExpression string                   `json:"cron_expression" example:"0 0 6 * * *"` | ||||||
|  | 	ContentType    models.PlanContentType   `json:"content_type" example:"tasks"` | ||||||
|  | 	SubPlans       []SubPlanResponse        `json:"sub_plans,omitempty"` | ||||||
|  | 	Tasks          []TaskResponse           `json:"tasks,omitempty"` | ||||||
| } | } | ||||||
|  |  | ||||||
| // ListPlansResponse 定义获取计划列表响应的结构体 | // ListPlansResponse 定义获取计划列表响应的结构体 | ||||||
| @@ -36,7 +43,40 @@ type ListPlansResponse struct { | |||||||
| type UpdatePlanRequest struct { | type UpdatePlanRequest struct { | ||||||
| 	Name           string                   `json:"name" example:"猪舍温度控制计划V2"` | 	Name           string                   `json:"name" example:"猪舍温度控制计划V2"` | ||||||
| 	Description    string                   `json:"description" example:"更新后的描述"` | 	Description    string                   `json:"description" example:"更新后的描述"` | ||||||
| 	// 更多可更新字段 | 	ExecutionType  models.PlanExecutionType `json:"execution_type" example:"automatic"` | ||||||
|  | 	CronExpression string                   `json:"cron_expression" example:"0 0 6 * * *"` | ||||||
|  | 	ContentType    models.PlanContentType   `json:"content_type" example:"tasks"` | ||||||
|  | 	SubPlanIDs     []uint                   `json:"sub_plan_ids,omitempty"` | ||||||
|  | 	Tasks          []TaskRequest            `json:"tasks,omitempty"` | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // SubPlanResponse 定义子计划响应结构体 | ||||||
|  | type SubPlanResponse struct { | ||||||
|  | 	ID             uint          `json:"id" example:"1"` | ||||||
|  | 	ParentPlanID   uint          `json:"parent_plan_id" example:"1"` | ||||||
|  | 	ChildPlanID    uint          `json:"child_plan_id" example:"2"` | ||||||
|  | 	ExecutionOrder int           `json:"execution_order" example:"1"` | ||||||
|  | 	ChildPlan      *PlanResponse `json:"child_plan,omitempty"` | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // TaskRequest 定义任务请求结构体 | ||||||
|  | type TaskRequest struct { | ||||||
|  | 	Name           string                `json:"name" example:"打开风扇"` | ||||||
|  | 	Description    string                `json:"description" example:"打开1号风扇"` | ||||||
|  | 	ExecutionOrder int                   `json:"execution_order" example:"1"` | ||||||
|  | 	Type           models.TaskType       `json:"type" example:"waiting"` | ||||||
|  | 	Parameters     controller.Properties `json:"parameters,omitempty"` | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // TaskResponse 定义任务响应结构体 | ||||||
|  | type TaskResponse struct { | ||||||
|  | 	ID             uint                  `json:"id" example:"1"` | ||||||
|  | 	PlanID         uint                  `json:"plan_id" example:"1"` | ||||||
|  | 	Name           string                `json:"name" example:"打开风扇"` | ||||||
|  | 	Description    string                `json:"description" example:"打开1号风扇"` | ||||||
|  | 	ExecutionOrder int                   `json:"execution_order" example:"1"` | ||||||
|  | 	Type           models.TaskType       `json:"type" example:"waiting"` | ||||||
|  | 	Parameters     controller.Properties `json:"parameters,omitempty"` | ||||||
| } | } | ||||||
|  |  | ||||||
| // --- Controller 定义 --- | // --- Controller 定义 --- | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user