package export

import (
	"context"

	"github.com/tidbcloud/tidb-management-service/nextgen-global-service/domain/resourcepoolpolicy"
	servicecommon "github.com/tidbcloud/tidb-management-service/nextgen-global-service/domain/service/common"
	"github.com/tidbcloud/tidb-management-service/utilities/bizerr"
)

func (s *serviceImpl) checkResourcePoolLifecycle(
	ctx context.Context,
	clusterID uint64,
	forUpdate bool,
) bizerr.BizError {
	cluster, berr := s.clusterRepo.Get(ctx, clusterID, false)
	if berr != nil {
		return berr
	}
	if forUpdate {
		return servicecommon.LockClusterResourcePoolLifecycle(
			ctx,
			s.resourcePoolRepo,
			cluster,
			resourcepoolpolicy.OperationImportExport,
		)
	}
	return servicecommon.CheckClusterResourcePoolLifecycle(
		ctx,
		s.resourcePoolRepo,
		cluster,
		resourcepoolpolicy.OperationImportExport,
	)
}
