package cluster

import (
	"context"

	globaldedicatedv1 "github.com/tidbcloud/tidb-management-service/api/spec/global/dedicated/v1"
	"github.com/tidbcloud/tidb-management-service/dedicated-global-service/domain/entity"
	"github.com/tidbcloud/tidb-management-service/utilities/bizerr"
)

type OperationRepo interface {
	LoadUnfinishedOperations(
		ctx context.Context,
		clusterID uint64,
	) (map[globaldedicatedv1.ClusterOperationType]*entity.ClusterOperation, bizerr.BizError)
	LoadRecentScaleOperations(
		ctx context.Context,
		clusterID uint64,
		componentIds []uint64,
	) (map[globaldedicatedv1.ComponentType][]*entity.ClusterOperation, bizerr.BizError)
	Save(ctx context.Context, operation *entity.ClusterOperation) bizerr.BizError
	Delete(ctx context.Context, clusterID uint64) bizerr.BizError
}
