package task

import (
	"context"

	"github.com/tidbcloud/infra-provider/pkg/deploy"
	"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
)

type Guardian struct {
	*baseTask
}

func NewGuardian(ctx *Context) deploy.Task {
	return &Guardian{baseTask: &baseTask{Context: ctx}}
}

func (t *Guardian) Name() string {
	return "Guardian"
}

func (t *Guardian) Create(ctx context.Context) deploy.Result {
	if !controllerutil.ContainsFinalizer(t.SinkEndpoint, Finalizer) {
		controllerutil.AddFinalizer(t.SinkEndpoint, Finalizer)
	}
	return deploy.Done()
}

func (t *Guardian) Delete(ctx context.Context) deploy.Result {
	return deploy.Done()
}
