package message

import (
	"context"

	"github.com/tidbcloud/AgentTeam/internal/coredb"
)

type scriptedExecResult struct {
	tag coredb.Result
	err error
}

type scriptedExecOnly struct {
	queries []string
	args    [][]any
	results []scriptedExecResult
}

func (execer *scriptedExecOnly) Exec(_ context.Context, query string, args ...any) (coredb.Result, error) {
	execer.queries = append(execer.queries, query)
	execer.args = append(execer.args, append([]any(nil), args...))
	if len(execer.results) == 0 {
		return testExecResult{}, nil
	}
	result := execer.results[0]
	execer.results = execer.results[1:]
	return result.tag, result.err
}

type testExecResult struct {
	rowsAffected int64
}

func (result testExecResult) RowsAffected() int64 {
	return result.rowsAffected
}
