package crd

import (
	"time"

	cloudv1 "github.com/tidbcloud/operationlet/api/v1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

const (
	Infra      = "infra"
	Admin      = "admin"
	TiDBPrefix = "tidb"
)

func RestartInstance2Crd(instance *RestartInstance, email string) *cloudv1.OperationCommandJob {
	crd := &cloudv1.OperationCommandJob{
		ObjectMeta: v1.ObjectMeta{
			Namespace:         Infra,
			Annotations:       map[string]string{},
			Labels:            map[string]string{},
			Name:              instance.OpName,
			CreationTimestamp: metav1.NewTime(time.Now()),
		},
		Spec: cloudv1.OperationCommandJobSpec{
			Email:     email,
			JobType:   cloudv1.RestartPod,
			Instance:  instance.Instance,
			ClusterID: string(instance.ClusterID),
			TenantID:  string(instance.TenantID),
			Reason:    instance.Reason,
		},
		Status: cloudv1.OperationCommandJobStatus{
			Phase: cloudv1.JobPhaseWaiting,
		},
	}
	return crd
}
