package dto import "git.huangwc.com/pig/pig-farm-controller/internal/infra/models" // CreatePlanRequest 定义创建计划请求的结构体 type CreatePlanRequest struct { Name string `json:"name" binding:"required" example:"猪舍温度控制计划"` Description string `json:"description" example:"根据温度自动调节风扇和加热器"` ExecutionType models.PlanExecutionType `json:"execution_type" binding:"required" example:"自动"` ExecuteNum uint `json:"execute_num,omitempty" example:"10"` CronExpression string `json:"cron_expression" example:"0 0 6 * * *"` SubPlanIDs []uint `json:"sub_plan_ids,omitempty"` Tasks []TaskRequest `json:"tasks,omitempty"` } // PlanResponse 定义计划详情响应的结构体 type PlanResponse struct { ID uint `json:"id" example:"1"` Name string `json:"name" example:"猪舍温度控制计划"` Description string `json:"description" example:"根据温度自动调节风扇和加热器"` ExecutionType models.PlanExecutionType `json:"execution_type" example:"自动"` Status models.PlanStatus `json:"status" example:"已启用"` ExecuteNum uint `json:"execute_num" example:"10"` ExecuteCount uint `json:"execute_count" example:"0"` CronExpression string `json:"cron_expression" example:"0 0 6 * * *"` ContentType models.PlanContentType `json:"content_type" example:"任务"` SubPlans []SubPlanResponse `json:"sub_plans,omitempty"` Tasks []TaskResponse `json:"tasks,omitempty"` } // ListPlansResponse 定义获取计划列表响应的结构体 type ListPlansResponse struct { Plans []PlanResponse `json:"plans"` Total int `json:"total" example:"100"` } // UpdatePlanRequest 定义更新计划请求的结构体 type UpdatePlanRequest struct { Name string `json:"name" example:"猪舍温度控制计划V2"` Description string `json:"description" example:"更新后的描述"` ExecutionType models.PlanExecutionType `json:"execution_type" binding:"required" example:"自动"` ExecuteNum uint `json:"execute_num,omitempty" example:"10"` CronExpression string `json:"cron_expression" example:"0 0 6 * * *"` 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:"等待"` Parameters map[string]interface{} `json:"parameters,omitempty"` } // TaskResponse 定义任务响应结构体 type TaskResponse struct { ID int `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:"等待"` Parameters map[string]interface{} `json:"parameters,omitempty"` }