package event

import "time"

const (
	ImportTopic   Topic  = Topic("import")
	ImportAppName string = "import"
)

type (
	ImportEventType string
)

const (
	ImportEventTypeUnknown   = ImportEventType("ImportUnknown")
	ImportEventTypePreparing = ImportEventType("ImportPreparing")
	ImportEventTypeImporting = ImportEventType("ImportImporting")
	ImportEventTypeCompleted = ImportEventType("ImportCompleted")
	ImportEventTypeFailed    = ImportEventType("ImportFailed")
	ImportEventTypeCanceling = ImportEventType("ImportCanceling")
	ImportEventTypeCanceled  = ImportEventType("ImportCanceled")
)

type ImportEvent struct {
	EventType  ImportEventType       `json:"event_type"`
	ID         uint64                `json:"id,string"`
	Name       string                `json:"name"`
	ClusterID  uint64                `json:"cluster_id,string"`
	Status     string                `json:"status"`
	Creator    string                `json:"creator"`
	CreatedAt  *time.Time            `json:"created_at,omitempty"`
	StartedAt  *time.Time            `json:"started_at,omitempty"`
	FinishedAt *time.Time            `json:"finished_at,omitempty"`
	ExtraInfo  *ImportEventExtraInfo `json:"extra_info,omitempty"`
}

type ImportEventExtraInfo struct {
	Message string `json:"message"` // error message if the status is failed
}
