package routes import ( s "synlotto-website/internal/handlers/lottery/syndicate" "synlotto-website/internal/http/middleware" "synlotto-website/internal/platform/bootstrap" "github.com/gin-gonic/gin" ) // RegisterSyndicateRoutes mounts all /syndicate routes. // Protection is enforced at the group level via AuthMiddleware + RequireAuth. func RegisterSyndicateRoutes(app *bootstrap.App) { r := app.Router syn := r.Group("/syndicate") syn.Use(middleware.AuthMiddleware(), middleware.RequireAuth()) // Use Any to preserve old ServeMux behavior (accepts both GET/POST where applicable). // You can refine methods later (e.g., GET for views, POST for mutate actions). syn.Any("", gin.WrapH(s.ListSyndicatesHandler(app))) syn.Any("/create", gin.WrapH(s.CreateSyndicateHandler(app))) syn.Any("/view", gin.WrapH(s.ViewSyndicateHandler(app))) syn.Any("/tickets", gin.WrapH(s.SyndicateTicketsHandler(app))) syn.Any("/tickets/new", gin.WrapH(s.SyndicateLogTicketHandler(app))) syn.Any("/invites", gin.WrapH(s.ViewInvitesHandler(app))) syn.Any("/invites/accept", gin.WrapH(s.AcceptInviteHandler(app))) syn.Any("/invites/decline", gin.WrapH(s.DeclineInviteHandler(app))) syn.Any("/invite/token", gin.WrapH(s.GenerateInviteLinkHandler(app))) syn.Any("/invite/tokens", gin.WrapH(s.ManageInviteTokensHandler(app))) syn.Any("/join", gin.WrapH(s.JoinSyndicateWithTokenHandler(app))) }