package api import ( "github.com/gin-gonic/gin" "veza-backend-api/internal/core/analytics" "veza-backend-api/internal/services" ) // setupAnalyticsRoutes configure les routes pour les analytics func (r *APIRouter) setupAnalyticsRoutes(router *gin.RouterGroup) { if r.db == nil || r.db.GormDB == nil { return } analyticsService := services.NewAnalyticsService(r.db.GormDB, r.logger) analyticsHandler := analytics.NewHandler(analyticsService, r.logger) if r.config != nil && r.config.JobWorker != nil { analyticsHandler.SetJobWorker(r.config.JobWorker) } analytics := router.Group("/analytics") if r.config != nil && r.config.AuthMiddleware != nil { analytics.Use(r.config.AuthMiddleware.RequireAuth()) r.applyCSRFProtection(analytics) } { analytics.GET("/creator/stats", analyticsHandler.GetCreatorStats) analytics.GET("/creator/charts", analyticsHandler.GetCreatorCharts) analytics.GET("/creator/export", analyticsHandler.GetCreatorExport) analytics.GET("", analyticsHandler.GetAnalytics) analytics.POST("/events", analyticsHandler.RecordEvent) analytics.GET("/tracks/:id", analyticsHandler.GetTrackAnalyticsDashboard) analytics.GET("/traffic-sources", analyticsHandler.GetTrafficSources) analytics.GET("/device-breakdown", analyticsHandler.GetDeviceBreakdown) } }