定义plan_controller请求和响应

This commit is contained in:
2025-09-14 14:00:42 +08:00
parent 69bdc50b3e
commit 1dbef11a8c

View File

@@ -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 定义 ---