package task

import "github.com/tidbcloud/tidb-management-service/tidb-x-migration/internal/storage"

// TaskStatus task status
type TaskStatus storage.TaskStatus

// Task status constants
const (
	StatusPending  TaskStatus = TaskStatus(storage.StatusPending)
	StatusRunning  TaskStatus = TaskStatus(storage.StatusRunning)
	StatusSuccess  TaskStatus = TaskStatus(storage.StatusSuccess)
	StatusFailed   TaskStatus = TaskStatus(storage.StatusFailed)
	StatusRetrying TaskStatus = TaskStatus(storage.StatusRetrying)
)

// CreateTaskRequest create task request
type CreateTaskRequest struct {
	TaskId               string `json:"taskId"`
	TaskConnectionOrigin string `json:"taskConnectionOrigin" binding:"required"`
	TaskConnectionTarget string `json:"taskConnectionTarget" binding:"required"`
}

// TaskResponse task response
type TaskResponse struct {
	ID               string `json:"id"`
	Status           string `json:"status"`
	ConnectionOrigin string `json:"connectionOrigin"`
	ConnectionTarget string `json:"connectionTarget"`
	CreatedAt        string `json:"createdAt"`
	UpdatedAt        string `json:"updatedAt"`
	Error            string `json:"error,omitempty"`
	RetryCount       int    `json:"retryCount"`
	Duration         int64  `json:"duration,omitempty"` // Total duration (milliseconds)
}
