package router

import (
	"github.com/engigu/taskpool/internal/middleware"
	"github.com/gin-gonic/gin"
)

// initMCPRoutes 初始化 MCP Server 路由
// 使用 OpenAPI Token 进行鉴权
func initMCPRoutes(root *gin.RouterGroup, c *Controllers) {
	// MCP 路由组 (使用 Bearer Token 鉴权，复用 OpenAPI 中间件)
	mcp := root.Group("/mcp")
	mcp.Use(middleware.OpenapiRequired())
	{
		// 所有 MCP 请求都通过同一个 handler 处理
		// StreamableHTTP 协议支持 POST 和 GET
		// 使用 /*action 匹配 /mcp 和 /mcp/ 以及 /mcp/xxx
		mcp.POST("/*action", c.MCP.HandleMCP)
		mcp.GET("/*action", c.MCP.HandleMCP)
	}
	
	// 同时处理 /mcp 根路径（无尾部斜杠）
	mcpRoot := root.Group("/mcp")
	mcpRoot.Use(middleware.OpenapiRequired())
	{
		mcpRoot.POST("", c.MCP.HandleMCP)
		mcpRoot.GET("", c.MCP.HandleMCP)
	}
}
