package repo

import (
	"context"

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

type ClassicRestoreRepo interface {
	// simple crud
	Create(ctx context.Context, restore *entity.ClassicRestore) error
	Save(ctx context.Context, restore *entity.ClassicRestore) error
	Load(ctx context.Context, id string, includeDeleted bool) (*entity.ClassicRestore, error)
	Delete(ctx context.Context, id string) error

	// for special cases
	SetStatus(ctx context.Context, restoreID string, status string) error
	SetStatusWithFailure(ctx context.Context, restoreID string, status string, failure *entity.RestoreFailure) error
	AddExecutedAction(ctx context.Context, restoreID string, action string) (added bool, err error)
}
