87 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package dto
 | 
						|
 | 
						|
import (
 | 
						|
	"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
 | 
						|
	"git.huangwc.com/pig/pig-farm-controller/internal/infra/repository"
 | 
						|
)
 | 
						|
 | 
						|
// ListPlansQuery 定义了获取计划列表时的查询参数
 | 
						|
type ListPlansQuery struct {
 | 
						|
	PlanType repository.PlanTypeFilter `form:"planType,default=自定义任务"` // 计划类型
 | 
						|
	Page     int                       `form:"page,default=1"`         // 页码
 | 
						|
	PageSize int                       `form:"pageSize,default=10"`    // 每页大小
 | 
						|
}
 | 
						|
 | 
						|
// 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:"根据温度自动调节风扇和加热器"`
 | 
						|
	PlanType       models.PlanType          `json:"plan_type" 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 int64          `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"`
 | 
						|
}
 |