// Package network define struct of network operation package network import ( "time" "github.com/gofrs/uuid" ) // AsyncTaskCreateRequest defines the request structure for creating an asynchronous task type AsyncTaskCreateRequest struct { // required: true // enum: TOPOLOGY_ANALYSIS, PERFORMANCE_ANALYSIS, EVENT_ANALYSIS, BATCH_IMPORT TaskType string `json:"task_type" example:"TOPOLOGY_ANALYSIS" description:"异步任务类型"` // required: true Params map[string]interface{} `json:"params" swaggertype:"object" description:"任务参数,根据任务类型不同而不同"` } // AsyncTaskCreateResponse defines the response structure for creating an asynchronous task type AsyncTaskCreateResponse struct { TaskID uuid.UUID `json:"task_id" example:"123e4567-e89b-12d3-a456-426614174000" description:"任务唯一标识符"` } // AsyncTaskResultQueryRequest defines the request structure for querying task results type AsyncTaskResultQueryRequest struct { // required: true TaskIDs []uuid.UUID `json:"task_ids" swaggertype:"array,string" example:"[\"123e4567-e89b-12d3-a456-426614174000\",\"223e4567-e89b-12d3-a456-426614174001\"]" description:"任务ID列表"` } // AsyncTaskResult defines the structure for a single task result type AsyncTaskResult struct { TaskID uuid.UUID `json:"task_id" example:"123e4567-e89b-12d3-a456-426614174000" description:"任务唯一标识符"` TaskType string `json:"task_type" example:"TOPOLOGY_ANALYSIS" description:"任务类型"` Status string `json:"status" example:"COMPLETED" description:"任务状态:SUBMITTED, RUNNING, COMPLETED, FAILED"` Progress *int `json:"progress,omitempty" example:"65" description:"任务进度(0-100),仅当状态为RUNNING时返回"` CreatedAt int64 `json:"created_at" example:"1741846200" description:"任务创建时间戳"` FinishedAt *int64 `json:"finished_at,omitempty" example:"1741846205" description:"任务完成时间戳,仅当状态为COMPLETED或FAILED时返回"` Result map[string]interface{} `json:"result,omitempty" swaggertype:"object" description:"任务结果,仅当状态为COMPLETED时返回"` ErrorCode *int `json:"error_code,omitempty" example:"400102" description:"错误码,仅当状态为FAILED时返回"` ErrorMessage *string `json:"error_message,omitempty" example:"Component UUID not found" description:"错误信息,仅当状态为FAILED时返回"` ErrorDetail map[string]interface{} `json:"error_detail,omitempty" swaggertype:"object" description:"错误详情,仅当状态为FAILED时返回"` } // AsyncTaskResultQueryResponse defines the response structure for querying task results type AsyncTaskResultQueryResponse struct { Total int `json:"total" example:"3" description:"查询的任务总数"` Tasks []AsyncTaskResult `json:"tasks" description:"任务结果列表"` } // AsyncTaskProgressUpdate defines the structure for task progress update type AsyncTaskProgressUpdate struct { TaskID uuid.UUID `json:"task_id" example:"123e4567-e89b-12d3-a456-426614174000" description:"任务唯一标识符"` Progress int `json:"progress" example:"50" description:"任务进度(0-100)"` } // AsyncTaskStatusUpdate defines the structure for task status update type AsyncTaskStatusUpdate struct { TaskID uuid.UUID `json:"task_id" example:"123e4567-e89b-12d3-a456-426614174000" description:"任务唯一标识符"` Status string `json:"status" example:"RUNNING" description:"任务状态:SUBMITTED, RUNNING, COMPLETED, FAILED"` Timestamp int64 `json:"timestamp" example:"1741846205" description:"状态更新时间戳"` } // TopologyAnalysisParams defines the parameters for topology analysis task type TopologyAnalysisParams struct { StartUUID string `json:"start_uuid" example:"comp-001" description:"起始元件UUID"` EndUUID string `json:"end_uuid" example:"comp-999" description:"目标元件UUID"` } // PerformanceAnalysisParams defines the parameters for performance analysis task type PerformanceAnalysisParams struct { ComponentIDs []string `json:"component_ids" example:"[\"comp-001\",\"comp-002\"]" description:"需要分析的元件ID列表"` TimeRange struct { Start time.Time `json:"start" example:"2026-03-01T00:00:00Z" description:"分析开始时间"` End time.Time `json:"end" example:"2026-03-02T00:00:00Z" description:"分析结束时间"` } `json:"time_range" description:"分析时间范围"` } // EventAnalysisParams defines the parameters for event analysis task type EventAnalysisParams struct { EventType string `json:"event_type" example:"MOTOR_START" description:"事件类型"` StartTime time.Time `json:"start_time" example:"2026-03-01T00:00:00Z" description:"事件开始时间"` EndTime time.Time `json:"end_time" example:"2026-03-02T00:00:00Z" description:"事件结束时间"` Components []string `json:"components,omitempty" example:"[\"comp-001\",\"comp-002\"]" description:"关联的元件列表"` } // BatchImportParams defines the parameters for batch import task type BatchImportParams struct { FilePath string `json:"file_path" example:"/data/import/model.csv" description:"导入文件路径"` FileType string `json:"file_type" example:"CSV" description:"文件类型:CSV, JSON, XML"` Options struct { Overwrite bool `json:"overwrite" example:"false" description:"是否覆盖现有数据"` Validate bool `json:"validate" example:"true" description:"是否进行数据验证"` NotifyUser bool `json:"notify_user" example:"true" description:"是否通知用户"` } `json:"options" description:"导入选项"` }