framework:
    messenger:
        failure_transport: failed

        transports:
            sync: 'sync://'

            async:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
                options:
                    queue_name: default
                retry_strategy:
                    max_retries: 3
                    delay: 1000
                    multiplier: 2
                    max_delay: 0

            failed: 'doctrine://default?queue_name=failed&auto_setup=0'

        routing:
            # Sync à la demande (bouton « rafraîchir ») : exécutée pendant la requête HTTP
            # pour que le re-fetch du front voie immédiatement les nouveaux mails, sans worker
            # messenger:consume à maintenir. La sync de fond reste assurée par le cron OS
            # (app:mail:sync, synchrone, indépendant du bus). Repasser à `async` + worker si
            # la boîte grossit au point que la sync à la demande approche le timeout PHP.
            'App\Module\Mail\Application\Message\MailSyncRequested': sync

when@test:
    framework:
        messenger:
            transports:
                async: 'in-memory://'
                failed: 'in-memory://'
