package repo

import (
	"context"

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

type TiDBClusterListFilter struct {
	Ids           []string
	TenantIds     []string
	SharedPoolIds []string
	Deleted       bool
}

type TiDBClusterRepo interface {
	Save(ctx context.Context, cluster *entity.TiDBCluster) error
	Load(ctx context.Context, id string, deleted bool) (*entity.TiDBCluster, error)
	List(ctx context.Context, filter *TiDBClusterListFilter) ([]*entity.TiDBCluster, error)
	Delete(ctx context.Context, id string) error
}
