package invocation

import (
	"context"

	invocationlang "github.com/tidbcloud/AgentTeam/internal/workflow/invocation"
	"github.com/tidbcloud/AgentTeam/internal/workflow/invocationmanage"
)

type fakeService struct {
	accept AcceptResult
	record Record
	page   Page
	err    error

	manualInput     *ManualInput
	listInput       *ListInput
	getWorkspaceID  string
	getInvocationID string
}

func (fake *fakeService) InvokeManual(_ context.Context, input invocationmanage.ManualInput) (invocationlang.AcceptResult, error) {
	fake.manualInput = &input
	return fake.accept, fake.err
}

func (fake *fakeService) Get(_ context.Context, workspaceID string, invocationID string) (invocationmanage.Record, error) {
	fake.getWorkspaceID, fake.getInvocationID = workspaceID, invocationID
	return fake.record, fake.err
}

func (fake *fakeService) List(_ context.Context, input invocationmanage.ListInput) (invocationmanage.Page, error) {
	fake.listInput = &input
	return fake.page, fake.err
}
