package router import ( "github.com/Tencent/WeKnora/internal/handler" "github.com/gin-gonic/gin" ) // RegisterDigitalHumanRoutes must be called on the authenticated /api/v1 group. // Service/repository additionally enforce the real user's tenant and ownership. func RegisterDigitalHumanRoutes(r *gin.RouterGroup, h *handler.DigitalHumanHandler, g *rbacGuards) { if h == nil { return } group := g.apiKeyGroup(r.Group("/digital-humans"), apiKeyFullAccess()) group.GET("", g.Viewer(), h.List) group.POST("", g.Contributor(), h.Create) group.GET("/:id", g.Viewer(), h.Get) group.PUT("/:id", g.Contributor(), h.Update) group.DELETE("/:id", g.Contributor(), h.Delete) group.POST("/:id/review", g.Contributor(), h.Review) group.POST("/:id/bindings", g.Contributor(), h.Bind) group.DELETE("/:id/bindings/:agent_id", g.Contributor(), h.Unbind) group.POST("/:id/distill", g.Contributor(), h.Distill) group.POST("/:id/trial", g.Contributor(), h.Trial) group.GET("/:id/jobs/:job_id", g.Viewer(), h.Job) group.GET("/:id/wechat/channels", g.Contributor(), h.WeChatChannels) group.POST("/:id/wechat/qrcode", g.Contributor(), h.WeChatQRCode) group.POST("/:id/wechat/qrcode/status", g.Contributor(), h.WeChatPoll) group.PUT("/:id/wechat/channels/:channel_id", g.Contributor(), h.SetWeChatChannelEnabled) group.DELETE("/:id/wechat/channels/:channel_id", g.Contributor(), h.DeleteWeChatChannel) }