package repo

import (
	"context"

	"github.com/tidbcloud/cluster-service-ng/domain/entity"
)

type DMClusterListFilter struct {
	Ids           []string
	SharedPoolIds []string
	Deleted       bool
}

type DMClusterRepo interface {
	Save(ctx context.Context, cluster *entity.DMCluster) error
	Load(ctx context.Context, id string, deleted bool) (*entity.DMCluster, error)
	List(ctx context.Context, filter *DMClusterListFilter) ([]*entity.DMCluster, error)
	GetBackend(ctx context.Context, id string, deleted bool) (string, error)
	Delete(ctx context.Context, id string) error
}
