package api

import (
	"net/http"

	"github.com/tidbcloud/AgentTeam/desktop/internal/api/mcp"
	"github.com/tidbcloud/AgentTeam/desktop/internal/api/session"
	"github.com/tidbcloud/AgentTeam/desktop/internal/streamregistry"
	"github.com/tidbcloud/AgentTeam/desktop/internal/types"
	"github.com/tidbcloud/AgentTeam/desktop/internal/uisession"
)

func newTestRouterWithUISessions(ch types.ServerConnectionAccessor, sessions session.SessionStore, trajectories session.TrajectoryStore, ui *uisession.Store, message *mcp.MessageService) http.Handler {
	return newTestRouterWithRegistry(ch, sessions, trajectories, ui, streamregistry.New(), message)
}

func newTestRouterWithRegistry(ch types.ServerConnectionAccessor, sessions session.SessionStore, trajectories session.TrajectoryStore, ui *uisession.Store, registry gatewayOperationRegistry, message *mcp.MessageService) http.Handler {
	h, err := NewRouterWithOptions(ch, sessions, trajectories, ui, registry, RouterOptions{MessageService: message})
	if err != nil {
		panic(err)
	}
	return h
}

func newTestRouterWithUISessionsAndRegistry(ch types.ServerConnectionAccessor, sessions session.SessionStore, trajectories session.TrajectoryStore, ui *uisession.Store, registry gatewayOperationRegistry, message *mcp.MessageService) http.Handler {
	return newTestRouterWithRegistry(ch, sessions, trajectories, ui, registry, message)
}
