package asyncappbox

import (
	"github.com/tidbcloud/infra-provider/pkg/consts"
	"github.com/tidbcloud/infra-provider/pkg/deploy"
	"github.com/tidbcloud/infra-provider/regional-server/pkg/controllers/appbox/task"
	asynccommon "github.com/tidbcloud/infra-provider/regional-server/pkg/controllers/asyncappbox/task/common"
	asyncgketask "github.com/tidbcloud/infra-provider/regional-server/pkg/controllers/asyncappbox/task/gke"
)

func GetAsyncAPPBoxTasks(r *AsyncAPPBoxReconciler, c *task.Context) (tasks []deploy.Task) {
	switch c.Config.Provider {
	case consts.ProviderTypeGKE:
		return GetAsyncGKEAPPBoxTasks(r, c)
	}
	return nil
}

func GetAsyncGKEAPPBoxTasks(r *AsyncAPPBoxReconciler, c *task.Context) (tasks []deploy.Task) {
	tasks = []deploy.Task{
		asynccommon.NewGuardian(c),
		asyncgketask.NewManagedMonitoring(c, r.GCPCli),
	}
	return tasks
}
