package restore

import (
	"context"

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

type RestoreRepo interface {
	Load(ctx context.Context, id uint64) (*entity.Restore, bizerr.BizError)
	Save(ctx context.Context, rep *entity.Restore) bizerr.BizError

	Get(ctx context.Context, ops ...RestoreFilterOp) (*entity.Restore, bizerr.BizError)
	Count(ctx context.Context, ops ...RestoreFilterOp) (int64, bizerr.BizError)
	List(ctx context.Context, ops ...RestoreFilterOp) ([]entity.Restore, bizerr.BizError)
}

// RestoreFilterOp is optional
type RestoreFilterOp func(qs entity.RestoreQuerySet) entity.RestoreQuerySet
