package modules import ( "github.com/gin-gonic/gin" "github.com/lineup/app-server/internal" "github.com/lineup/app-server/internal/wkapi" "github.com/spf13/viper" ) // SetupRoutes 注册所有模块路由 func SetupRoutes(r *gin.Engine, vp *viper.Viper) { // 共享依赖 hub := internal.NewHub() wk := wkapi.New(vp.GetString("wukongim.apiURL")) // 自动创建 Agent 频道 agentChannelID := vp.GetString("agent.channelID") agentUID := vp.GetString("agent.uid") agentChannelType := uint8(vp.GetInt("agent.channelType")) if agentChannelType == 0 { agentChannelType = 2 } if agentChannelID != "" && agentUID != "" { if err := wk.UpsertChannel(agentChannelID, agentChannelType, []string{agentUID}); err != nil { // ignore upsert error, channel may already exist _ = err } } // 健康检查 r.GET("/healthz", func(c *gin.Context) { c.JSON(200, gin.H{"status": "ok"}) }) // 用户模块 userModule := &UserModule{vp: vp, wk: wk} userModule.RegisterRoutes(r) // Channel 模块 channelModule := NewChannelModule(wk) channelModule.RegisterRoutes(r) // Message 模块 messageModule := NewMessageModule(wk) messageModule.RegisterRoutes(r) // Agent 控制面:外部 Hermes Adapter 的存活与消费游标。 agentModule := NewAgentModule(vp) agentModule.RegisterRoutes(r) // Webhook 模块 webhookModule := NewWebhookModule(hub) webhookModule.RegisterRoutes(r) // Client WebSocket 模块 clientModule := NewClientModule(hub, wk) clientModule.RegisterRoutes(r) }