package repo

import (
	"context"

	"github.com/tidbcloud/dataflow-service/app/repo/entity"
	"github.com/tidbcloud/pkgv2/bizerr"
)

type (
	TiDBClusterGCSwitchFilterOp func(qs entity.TiDBClusterGCSwitchQuerySet) entity.TiDBClusterGCSwitchQuerySet
)

type TiDBClusterGCSwitchRepo interface {
	Load(ctx context.Context, id uint64) (*entity.TiDBClusterGCSwitch, bizerr.BizError)
	Save(ctx context.Context, record *entity.TiDBClusterGCSwitch) bizerr.BizError
	List(ctx context.Context, ops ...TiDBClusterGCSwitchFilterOp) ([]entity.TiDBClusterGCSwitch, bizerr.BizError)
	Get(ctx context.Context, ops ...TiDBClusterGCSwitchFilterOp) (*entity.TiDBClusterGCSwitch, bizerr.BizError)
}
