96 lines
5.6 KiB
Go
96 lines
5.6 KiB
Go
|
|
// 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:"导入选项"`
|
|||
|
|
}
|