package interfaces import ( "mengstack/internal/app/middleware" "mengstack/internal/modules/audit/application" auditinfra "mengstack/internal/modules/audit/infrastructure" "github.com/gin-gonic/gin" "go.uber.org/fx" "go.uber.org/zap" "gorm.io/gorm" ) func SetupRoutes(r *gin.Engine, h *Handler, authMW gin.HandlerFunc) { audit := r.Group("/api/v1/audit") audit.Use(authMW, middleware.MultiTenant()) { audit.GET("/logs", h.ListLogs) } } var Module = fx.Module("audit", fx.Provide( auditinfra.NewAuditRepository, application.NewService, NewHandler, ), fx.Invoke(func(db *gorm.DB, log *zap.Logger) { if err := auditinfra.Migrate(db); err != nil { log.Fatal("audit migration failed", zap.Error(err)) } }), )