87 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			4.6 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 `query:"planType"` // 计划类型
 | |
| 	Page     int                       `query:"page"`     // 页码
 | |
| 	PageSize int                       `query:"pageSize"` // 每页大小
 | |
| }
 | |
| 
 | |
| // CreatePlanRequest 定义创建计划请求的结构体
 | |
| type CreatePlanRequest struct {
 | |
| 	Name           string                   `json:"name" validate:"required" example:"猪舍温度控制计划"`
 | |
| 	Description    string                   `json:"description" example:"根据温度自动调节风扇和加热器"`
 | |
| 	ExecutionType  models.PlanExecutionType `json:"execution_type" validate:"required" example:"自动"`
 | |
| 	ExecuteNum     uint                     `json:"execute_num,omitempty" validate:"omitempty,min=0" example:"10"`
 | |
| 	CronExpression string                   `json:"cron_expression" validate:"omitempty,cron" example:"0 0 6 * * *"`
 | |
| 	SubPlanIDs     []uint                   `json:"sub_plan_ids,omitempty" validate:"omitempty,dive"`
 | |
| 	Tasks          []TaskRequest            `json:"tasks,omitempty" validate:"omitempty,dive"`
 | |
| }
 | |
| 
 | |
| // 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" validate:"required" example:"自动"`
 | |
| 	ExecuteNum     uint                     `json:"execute_num,omitempty" validate:"omitempty,min=0" example:"10"`
 | |
| 	CronExpression string                   `json:"cron_expression" validate:"omitempty,cron" example:"0 0 6 * * *"`
 | |
| 	SubPlanIDs     []uint                   `json:"sub_plan_ids,omitempty" validate:"omitempty,dive"`
 | |
| 	Tasks          []TaskRequest            `json:"tasks,omitempty" validate:"omitempty,dive"`
 | |
| }
 | |
| 
 | |
| // 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"`
 | |
| }
 |