package api import ( admincore "veza-backend-api/internal/core/admin" "veza-backend-api/internal/services" "github.com/gin-gonic/gin" ) // setupAdminPlatformRoutes registers admin platform management routes (v0.11.3 F421-F435) func (r *APIRouter) setupAdminPlatformRoutes(router *gin.RouterGroup) { platformService := services.NewAdminPlatformService(r.db.GormDB, r.logger) platformHandler := admincore.NewPlatformAdminHandler(platformService, r.logger) admin := router.Group("/admin/platform") { if r.config.AuthMiddleware != nil { admin.Use(r.config.AuthMiddleware.RequireAuth()) admin.Use(r.config.AuthMiddleware.RequireAdmin()) admin.Use(r.config.AuthMiddleware.RequireMFA()) // SFIX-001: MFA obligatoire pour admin } // F421: Platform metrics admin.GET("/metrics", platformHandler.GetPlatformMetrics) // F422: User management admin.GET("/users", platformHandler.SearchUsers) admin.GET("/users/:userId", platformHandler.GetUserDetail) admin.PUT("/users/:userId/role", platformHandler.UpdateUserRole) admin.POST("/users/:userId/suspend", platformHandler.SuspendUser) admin.POST("/users/:userId/unsuspend", platformHandler.UnsuspendUser) // F423: Content management admin.GET("/content", platformHandler.SearchContent) admin.POST("/content/:id/hide", platformHandler.HideContent) admin.POST("/content/:id/restore", platformHandler.RestoreContent) // F424: Payment management admin.GET("/payments", platformHandler.GetPaymentOverview) admin.POST("/orders/:id/refund", platformHandler.RefundOrder) } }