package impl

import (
	"github.com/tidbcloud/dataflow-service/app/internal/status_matrix"
	statusMatrixImpl "github.com/tidbcloud/dataflow-service/app/internal/status_matrix/impl"
	"github.com/tidbcloud/dataflow-service/app/repo/entity"
)

var statusMatrix = map[string]map[string]string{
	string(entity.RestoreStatusRUNNING): {
		string(entity.RestoreActionTypeDelete): string(entity.RestoreStatusDeleting),
	},
	string(entity.RestoreStatusFinished): {
		string(entity.RestoreActionTypeDelete): string(entity.RestoreStatusDeleting),
	},
	string(entity.RestoreStatusDeleting): {},
	string(entity.RestoreStatusDeleted):  {},
}

var steadyStateMatrix = map[string]string{
	string(entity.RestoreStatusRUNNING):  string(entity.RestoreStatusFinished),
	string(entity.RestoreStatusDeleting): string(entity.RestoreStatusDeleted),
	string(entity.RestoreStatusPENDING):  string(entity.RestoreStatusFinished),
}

func NewRestoreStatusMatrix() status_matrix.StatusMatrix {
	return statusMatrixImpl.NewStatusMatrix(statusMatrix, nil, steadyStateMatrix)
}
