diff --git a/veza-backend-api/cmd/api/main.go b/veza-backend-api/cmd/api/main.go index 77f5134ea..f343c11ed 100644 --- a/veza-backend-api/cmd/api/main.go +++ b/veza-backend-api/cmd/api/main.go @@ -18,7 +18,9 @@ import ( "veza-backend-api/internal/api" "veza-backend-api/internal/config" + "veza-backend-api/internal/core/marketplace" "veza-backend-api/internal/metrics" + "veza-backend-api/internal/services" "veza-backend-api/internal/shutdown" _ "veza-backend-api/docs" // Import docs for swagger @@ -148,6 +150,26 @@ func main() { logger.Warn("⚠️ Job Worker non initialisé") } + // v0.701: Start Transfer Retry Worker + if cfg.TransferRetryEnabled && cfg.StripeConnectEnabled && cfg.StripeConnectSecretKey != "" { + stripeConnectSvc := services.NewStripeConnectService(db.GormDB, cfg.StripeConnectSecretKey, logger) + retryWorker := marketplace.NewTransferRetryWorker( + db.GormDB, stripeConnectSvc, logger, cfg.TransferRetryInterval, cfg.TransferRetryMaxAttempts, + ) + retryCtx, retryCancel := context.WithCancel(context.Background()) + go retryWorker.Start(retryCtx) + logger.Info("Transfer Retry Worker started", + zap.Duration("interval", cfg.TransferRetryInterval), + zap.Int("max_retries", cfg.TransferRetryMaxAttempts)) + + shutdownManager.Register(shutdown.NewShutdownFunc("transfer_retry_worker", func(ctx context.Context) error { + retryCancel() + return nil + })) + } else if cfg.TransferRetryEnabled { + logger.Info("Transfer Retry Worker skipped — Stripe Connect not enabled") + } + // Configuration du mode Gin // Correction: Utilisation directe de la variable d'env car non exposée dans Config appEnv := os.Getenv("APP_ENV")