framework:
    messenger:
        # reset services after consuming messages
        reset_on_message: true

        # Uncomment this (and the failed transport below) to send failed messages to this transport for later handling.
        failure_transport: failed
        transports:
            # those transports are added by chill-bundles recipes
            sync: sync://
            async:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%/async'
                options:
                    exchange:
                        name: async
                        type: fanout
                    queues:
                        async: ~
                    auto_setup: true

            priority:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%/priority'

            # end of transports added by chill-bundles recipes
            # https://symfony.com/doc/current/messenger.html#transport-configuration
            failed: 'doctrine://default?queue_name=failed'
            to_sign_worker:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%/to_python_sign'
                serializer: Chill\DocStoreBundle\Service\Signature\Driver\BaseSigner\RequestPdfSignMessageSerializer
                options:
                    exchange:
                        name: to_python_sign
                        type: direct
                    queues:
                        to_python_sign: ~
            signed_docs:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%/signed_docs'
                serializer: Chill\DocStoreBundle\Service\Signature\Driver\BaseSigner\PdfSignedMessageSerializer
                options:
                    exchange:
                        name: signed_docs
                        type: direct
                    queues:
                        signed_docs:
                            binding_keys: [signed_doc]

                    auto_setup: false

        routing:
            # routes added by chill-bundles recipes
            'Chill\CalendarBundle\Messenger\Message\CalendarRangeMessage': async
            'Chill\CalendarBundle\Messenger\Message\CalendarRangeRemovedMessage': async
            'Chill\CalendarBundle\Messenger\Message\CalendarRemovedMessage': async
            'Chill\CalendarBundle\Messenger\Message\CalendarMessage': async
            'Chill\CalendarBundle\Messenger\Message\InviteUpdateMessage': async
            'Chill\CalendarBundle\Messenger\Message\MSGraphChangeNotificationMessage': async
            'Chill\MainBundle\Service\ShortMessage\ShortMessage': async
            'Chill\DocGeneratorBundle\Service\Messenger\RequestGenerationMessage': priority
            'Chill\PersonBundle\AccompanyingPeriod\Lifecycle\AccompanyingPeriodStepChangeRequestMessage': async
            'Chill\DocStoreBundle\Service\Signature\Driver\BaseSigner\RequestPdfSignMessage': to_sign_worker
            'Chill\DocStoreBundle\Service\StoredObjectCleaner\RemoveOldVersionMessage': async
            'Chill\MainBundle\Workflow\Messenger\PostSignatureStateChangeMessage': priority
            'Chill\MainBundle\Workflow\Messenger\PostPublicViewMessage': async
            'Chill\MainBundle\Service\Workflow\CancelStaleWorkflowMessage': async
            'Chill\MainBundle\Notification\Email\NotificationEmailMessages\SendImmediateNotificationEmailMessage': async
            'Chill\MainBundle\Export\Messenger\ExportRequestGenerationMessage': priority
            'Chill\MainBundle\Export\Messenger\RemoveExportGenerationMessage': async
            'Chill\MainBundle\Notification\Email\NotificationEmailMessages\ScheduleDailyNotificationDigestMessage': async
            # end of routes added by chill-bundles recipes
            # Route your messages to the transports
            # 'App\Message\YourMessage': async
            # 'Symfony\Component\Mailer\Messenger\SendEmailMessage': async

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