doctrine:
    dbal:
        url: '%env(resolve:DATABASE_URL)%'
        # Charset override (for older MySQL compatibility)
        # charset: utf8mb4
        # IMPORTANT: You MUST configure your server version
        # either here or in the DATABASE_URL env var (see .env file)
        #server_version: '8.0'
        types:
            json_array: Doctrine\DBAL\Types\JsonType

    orm:
        auto_generate_proxy_classes: true
        naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
        auto_mapping: true
        mappings:
            App:
                is_bundle: false
                dir: '%kernel.project_dir%/src/Entity'
                prefix: 'App\Entity'
                alias: App
            # Legacy bundle entities — keep until full migration is complete
            PotagerBundle:
                is_bundle: true
                type: annotation
                prefix: PotagerBundle\Entity
            # ApplicationSonataUserBundle: DISABLED — App\Entity\User replaces this
            # is_bundle: true
            # type: xml
            # prefix: Application\Sonata\UserBundle\Entity
            ApplicationSonataMediaBundle:
                is_bundle: true
                type: xml
                prefix: Application\Sonata\MediaBundle\Entity
            SonataUserBundle: ~
            SonataMediaBundle: ~
            # Gedmo translatable entities
            gedmo_translatable:
                type: attribute
                is_bundle: false
                prefix: Gedmo\Translatable\Entity
                dir: '%kernel.project_dir%/vendor/gedmo/doctrine-extensions/src/Translatable/Entity'
                alias: GedmoTranslatable

        dql:
            string_functions:
                cos: DoctrineExtensions\Query\Mysql\Cos
                acos: DoctrineExtensions\Query\Mysql\Acos
                radians: DoctrineExtensions\Query\Mysql\Radians
                sin: DoctrineExtensions\Query\Mysql\Sin
                round: DoctrineExtensions\Query\Mysql\Round

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
            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
