package cluster

import (
	"context"

	"github.com/tidbcloud/metrics-server/central/db/dbutil"
	"github.com/tidbcloud/metrics-server/central/db/entity"
)

type ClusterDaoFacade interface {
	GetCluster(clusterID entity.ID) (entity.Cluster, error)
	FindClusters(filter dbutil.ClusterFilter) (clusters []entity.Cluster, err error)
	CreateClusterConnection(clusterID entity.ID, connectionType entity.ClusterConnectionType, location string) (*entity.Connection, error)
	DeleteClusterConnection(connection *entity.Connection) error
	GetClusterRegion(ctx context.Context, cluster entity.Cluster) (*entity.Region, error)
	UpdateCluster(cluster entity.Cluster, schemas []entity.ClusterDBSchemaField, forceSync bool) error
}
