turash/bugulma/backend/internal/routes/subscription.go

36 lines
1.3 KiB
Go

package routes
import (
"bugulma/backend/internal/handler"
"bugulma/backend/internal/middleware"
"bugulma/backend/internal/service"
"github.com/gin-gonic/gin"
)
// RegisterSubscriptionRoutes registers all subscription routes
func RegisterSubscriptionRoutes(
protected *gin.RouterGroup,
subscriptionHandler *handler.SubscriptionHandler,
authService *service.AuthService,
) {
// All subscription routes require authentication
subscription := protected.Group("/subscription")
subscription.Use(middleware.AuthMiddleware(authService))
{
subscription.GET("", subscriptionHandler.GetSubscription)
subscription.POST("", subscriptionHandler.CreateSubscription)
subscription.GET("/plans", subscriptionHandler.GetPlans)
subscription.POST("/upgrade", subscriptionHandler.UpgradeSubscription)
subscription.POST("/cancel", subscriptionHandler.CancelSubscription)
subscription.GET("/invoices", subscriptionHandler.GetInvoices)
subscription.GET("/payment-methods", subscriptionHandler.GetPaymentMethods)
subscription.POST("/payment-methods", subscriptionHandler.AddPaymentMethod)
subscription.POST("/webhook", subscriptionHandler.Webhook)
subscription.GET("/usage", subscriptionHandler.GetUsageStats)
subscription.GET("/check-feature", subscriptionHandler.CheckFeature)
subscription.GET("/check-limits", subscriptionHandler.CheckLimits)
}
}