package collector

import (
	"context"
	"gitlink.org.cn/JointCloud/pcm-coordinator/internal/types"
	"time"
)

type HPCCollector interface {
	GetTask(ctx context.Context, taskId string, clusterId string) (*Task, error)
	SubmitTask(ctx context.Context, req types.SubmitHpcTaskReq) (*types.CommitHpcTaskResp, error)
	CancelTask(ctx context.Context, jobId string, clusterId string) error
	GetTaskLogs(ctx context.Context, jobId string, clusterId string) (interface{}, error)
}

type JobInfo struct {
	ID         string    // 作业ID
	Name       string    // 作业名称
	Status     int       // 作业状态
	SubmitTime time.Time // 提交时间
	StartTime  time.Time // 开始时间（可选）
	EndTime    time.Time // 结束时间（可选）
	StatusText string
	WorkDir    string // 作业工作目录
}

type HpcJobDetailResp struct {
	Code    int     `json:"code"`
	Msg     string  `json:"msg"`
	Data    JobInfo `json:"data"`
	TraceId string  `json:"trace_id"`
}
