package utils

import (
	"github.com/tidbcloud/aws-shared-provider/pkg/tidbworker/job"
	"github.com/tidbcloud/aws-shared-provider/pkg/tidbworker/resourcemanager/scheduler/nodemanager"
	"github.com/tidbcloud/aws-shared-provider/pkg/utils/tidb"
)

func MakeTTLRequest(keyspaceName string, taskID string) *nodemanager.Request {
	activateReq := tidb.ActivateRequest{
		KeyspaceName:     keyspaceName,
		SkipGCWorker:     true,
		EnableRunTTLTask: true,
		WorkerRole:       string(job.TypeTTL),
	}
	req := &nodemanager.Request{
		TaskID:          taskID,
		ActivateRequest: activateReq,
	}

	return req
}

func MakeGCRequest(keyspaceName string, taskID string) *nodemanager.Request {
	return &nodemanager.Request{
		TaskID: taskID,
		ActivateRequest: tidb.ActivateRequest{
			KeyspaceName: keyspaceName,
			WorkerRole:   string(job.TypeGC),
		},
	}
}

func MakeGCV2Request(keyspaceName string, taskID string) *nodemanager.Request {
	return &nodemanager.Request{
		TaskID: taskID,
		ActivateRequest: tidb.ActivateRequest{
			KeyspaceName:      keyspaceName,
			WorkerRole:        string(job.TypeGCV2),
			EnableGCFastStart: true,
		},
	}
}

// TODO: To implement the make function for other job types.
