package cluster

import (
	"github.com/tidbcloud/aws-shared-provider/pkg/metrics"
	infra "github.com/tidbcloud/tidb-management-service/api/serverless_infra"
)

func (r *reconcileContext) pendingDeleteCluster() error {
	return r.updateProgress(infra.ClusterPhaseDeleting, "cluster is being deleted")
}

func (r *reconcileContext) deleteCluster() error {
	if r.O11yAgentEnabled {
		if err := r.deleteO11yCluster(); err != nil {
			return err
		}
	}
	if err := r.deleteServerlessTidbCluster(); err != nil {
		return err
	}
	if err := r.deleteMetrics(); err != nil {
		return err
	}
	if err := r.deleteAuditLog(); err != nil {
		return err
	}
	return nil
}

func (r *reconcileContext) deleteMetrics() error {
	if r.keyspaceToken != "" {
		metrics.Reclaimer.DeleteVec(metrics.AssignTidbHistogramName, r.keyspaceToken)
		metrics.Reclaimer.DeleteVec(metrics.ActivatorHistogramName, r.keyspaceToken)
	}
	metrics.Reclaimer.DeleteVec(metrics.ClusterCreationHistogramName, r.cluster.Name)

	return nil
}
