diff --git a/internal/router/router.go b/internal/router/router.go index 30ee904..4c52818 100644 --- a/internal/router/router.go +++ b/internal/router/router.go @@ -140,7 +140,7 @@ func SetupRouter(deps *Dependencies) *gin.Engine { setupPublicAuthRoutes(api, authHandler) // Public data routes (no auth required) - setupPublicDataRoutes(api, residenceHandler, taskHandler, contractorHandler, staticDataHandler) + setupPublicDataRoutes(api, residenceHandler, taskHandler, contractorHandler, staticDataHandler, subscriptionHandler) // Protected routes (auth required) protected := api.Group("") @@ -220,7 +220,7 @@ func setupProtectedAuthRoutes(api *gin.RouterGroup, authHandler *handlers.AuthHa } // setupPublicDataRoutes configures public data routes (lookups, static data) -func setupPublicDataRoutes(api *gin.RouterGroup, residenceHandler *handlers.ResidenceHandler, taskHandler *handlers.TaskHandler, contractorHandler *handlers.ContractorHandler, staticDataHandler *handlers.StaticDataHandler) { +func setupPublicDataRoutes(api *gin.RouterGroup, residenceHandler *handlers.ResidenceHandler, taskHandler *handlers.TaskHandler, contractorHandler *handlers.ContractorHandler, staticDataHandler *handlers.StaticDataHandler, subscriptionHandler *handlers.SubscriptionHandler) { // Static data routes (public, cached) staticData := api.Group("/static_data") { @@ -228,6 +228,12 @@ func setupPublicDataRoutes(api *gin.RouterGroup, residenceHandler *handlers.Resi staticData.POST("/refresh/", staticDataHandler.RefreshStaticData) } + // Public subscription routes (upgrade triggers needed at app start before login) + subscriptionPublic := api.Group("/subscription") + { + subscriptionPublic.GET("/upgrade-triggers/", subscriptionHandler.GetAllUpgradeTriggers) + } + // Lookup routes (public) api.GET("/residences/types/", residenceHandler.GetResidenceTypes) api.GET("/tasks/categories/", taskHandler.GetCategories) @@ -342,13 +348,13 @@ func setupNotificationRoutes(api *gin.RouterGroup, notificationHandler *handlers } } -// setupSubscriptionRoutes configures subscription routes +// setupSubscriptionRoutes configures subscription routes (authenticated) +// Note: /upgrade-triggers/ is in setupPublicDataRoutes (public, no auth required) func setupSubscriptionRoutes(api *gin.RouterGroup, subscriptionHandler *handlers.SubscriptionHandler) { subscription := api.Group("/subscription") { subscription.GET("/", subscriptionHandler.GetSubscription) subscription.GET("/status/", subscriptionHandler.GetSubscriptionStatus) - subscription.GET("/upgrade-triggers/", subscriptionHandler.GetAllUpgradeTriggers) subscription.GET("/upgrade-trigger/:key/", subscriptionHandler.GetUpgradeTrigger) subscription.GET("/features/", subscriptionHandler.GetFeatureBenefits) subscription.GET("/promotions/", subscriptionHandler.GetPromotions)