package event_bus

import (
	"github.com/tidbcloud/metrics-integration/global/internal/domain/event_bus/consumer"
	"github.com/tidbcloud/metrics-integration/global/internal/domain/event_bus/consumer/integration"
	"github.com/tidbcloud/metrics-integration/global/internal/domain/event_bus/consumer/prometheus"
)

func RegisterHandlers() {
	// fetch event_bus consumer dispatcher
	dispatcher := consumer.GetCMEventHandlerDispatcher()

	// register push-mode pipeline event
	dispatcher.Register(&integration.IntegrationWithClusterScaling{})
	dispatcher.Register(&integration.IntegrationWithClusterDeleting{})
	dispatcher.Register(&integration.IntegrationWithClusterResuming{})
	dispatcher.Register(&integration.IntegrationWithClusterPausing{})

	// register pull-mode(prometheus) pipeline event
	dispatcher.Register(&prometheus.PrometheusWithClusterScaling{})
	dispatcher.Register(&prometheus.PrometheusWithClusterDeleting{})
}
