package resourcepool

import (
	"context"
	"time"

	"github.com/tidbcloud/tidb-management-service/nextgen-global-service/domain/entity"
	"github.com/tidbcloud/tidb-management-service/utilities/bizerr"
)

//go:generate go run go.uber.org/mock/mockgen@latest -source=$GOFILE -package=mock_$GOPACKAGE -destination=./mock_$GOPACKAGE/mock_$GOFILE
type PauseOperationRepo interface {
	Create(ctx context.Context, operation *entity.ResourcePoolPauseOperation) bizerr.BizError
	Save(ctx context.Context, operation *entity.ResourcePoolPauseOperation) bizerr.BizError
	Get(ctx context.Context, resourcePoolID uint64, operationID string) (*entity.ResourcePoolPauseOperation, bizerr.BizError)
	GetRunning(ctx context.Context, resourcePoolID uint64) (*entity.ResourcePoolPauseOperation, bizerr.BizError)
	ListExpiredAdmissions(ctx context.Context, deadline time.Time) ([]*entity.ResourcePoolPauseOperation, bizerr.BizError)
}
