doctrine:
    dbal:
        default_connection: default
        connections:
            default:
                url: '%env(resolve:DATABASE_URL)%'
                profiling_collect_backtrace: '%kernel.debug%'
                use_savepoints: true
            search:
                url: '%env(resolve:SEARCH_DATABASE_URL)%'
                driver: 'pdo_pgsql'
                profiling_collect_backtrace: '%kernel.debug%'
                use_savepoints: true
        types:
            encrypted_string: App\Doctrine\Type\EncryptedStringType
            encrypted_text: App\Doctrine\Type\EncryptedTextType

    orm:
        auto_generate_proxy_classes: true
        enable_lazy_ghost_objects: true
        default_entity_manager: default
        entity_managers:
            # IMPORTANT: "search" doit être AVANT "default" car App\Entity\Search
            # est un sous-ensemble de App\Entity. Doctrine utilise le premier match.
            search:
                connection: search
                naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
                mappings:
                    Search:
                        type: attribute
                        is_bundle: false
                        dir: '%kernel.project_dir%/src/Entity/Search'
                        prefix: 'App\Entity\Search'
                        alias: Search
            default:
                connection: default
                naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
                mappings:
                    App:
                        type: attribute
                        is_bundle: false
                        dir: '%kernel.project_dir%/src/Entity'
                        prefix: 'App\Entity'
                        alias: App

when@test:
    doctrine:
        dbal:
            # "TEST_TOKEN" is typically set by ParaTest
            dbname_suffix: '_test%env(default::TEST_TOKEN)%'

when@prod:
    doctrine:
        orm:
            auto_generate_proxy_classes: false
            proxy_dir: '%kernel.build_dir%/doctrine/orm/Proxies'
            query_cache_driver:
                type: pool
                pool: doctrine.system_cache_pool
            result_cache_driver:
                type: pool
                pool: doctrine.result_cache_pool

    framework:
        cache:
            pools:
                doctrine.result_cache_pool:
                    adapter: cache.app
                doctrine.system_cache_pool:
                    adapter: cache.system
