doctrine:
    dbal:
        url: '%env(resolve:DATABASE_URL)%'

        # IMPORTANT: You MUST configure your server version,
        # either here or in the DATABASE_URL env var (see .env file)
        #server_version: '15'

        profiling_collect_backtrace: '%kernel.debug%'
    orm:
        auto_generate_proxy_classes: true
        enable_lazy_ghost_objects: true
        report_fields_where_declared: true
        validate_xml_mapping: 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
        dql:
             datetime_functions:
                 addtime: DoctrineExtensions\Query\Mysql\AddTime
                 convert_tz: DoctrineExtensions\Query\Mysql\ConvertTz
                 date: DoctrineExtensions\Query\Mysql\Date
                 date_format: DoctrineExtensions\Query\Mysql\DateFormat
                 dateadd: DoctrineExtensions\Query\Mysql\DateAdd
                 datesub: DoctrineExtensions\Query\Mysql\DateSub
                 datediff: DoctrineExtensions\Query\Mysql\DateDiff
                 day: DoctrineExtensions\Query\Mysql\Day
                 dayname: DoctrineExtensions\Query\Mysql\DayName
                 dayofweek: DoctrineExtensions\Query\Mysql\DayOfWeek
                 dayofyear: DoctrineExtensions\Query\Mysql\DayOfYear
                 div: DoctrineExtensions\Query\Mysql\Div
                 from_unixtime: DoctrineExtensions\Query\Mysql\FromUnixtime
                 hour: DoctrineExtensions\Query\Mysql\Hour
                 last_day: DoctrineExtensions\Query\Mysql\LastDay
                 makedate: DoctrineExtensions\Query\Mysql\MakeDate
                 minute: DoctrineExtensions\Query\Mysql\Minute
                 now: DoctrineExtensions\Query\Mysql\Now
                 month: DoctrineExtensions\Query\Mysql\Month
                 monthname: DoctrineExtensions\Query\Mysql\MonthName
                 period_diff: DoctrineExtensions\Query\Mysql\PeriodDiff
                 second: DoctrineExtensions\Query\Mysql\Second
                 sectotime: DoctrineExtensions\Query\Mysql\SecToTime
                 strtodate: DoctrineExtensions\Query\Mysql\StrToDate
                 time: DoctrineExtensions\Query\Mysql\Time
                 timediff: DoctrineExtensions\Query\Mysql\TimeDiff
                 timestampadd: DoctrineExtensions\Query\Mysql\TimestampAdd
                 timestampdiff: DoctrineExtensions\Query\Mysql\TimestampDiff
                 timetosec: DoctrineExtensions\Query\Mysql\TimeToSec
                 truncate: DoctrineExtensions\Query\Mysql\Truncate
                 week: DoctrineExtensions\Query\Mysql\Week
                 weekday: DoctrineExtensions\Query\Mysql\WeekDay
                 weekofyear: DoctrineExtensions\Query\Mysql\WeekOfYear
                 year: DoctrineExtensions\Query\Mysql\Year
                 yearmonth: DoctrineExtensions\Query\Mysql\YearMonth
                 yearweek: DoctrineExtensions\Query\Mysql\YearWeek
                 unix_timestamp: DoctrineExtensions\Query\Mysql\UnixTimestamp
                 utc_timestamp: DoctrineExtensions\Query\Mysql\UtcTimestamp
                 extract: DoctrineExtensions\Query\Mysql\Extract

             numeric_functions:
                 acos: DoctrineExtensions\Query\Mysql\Acos
                 asin: DoctrineExtensions\Query\Mysql\Asin
                 atan2: DoctrineExtensions\Query\Mysql\Atan2
                 atan: DoctrineExtensions\Query\Mysql\Atan
                 bit_count: DoctrineExtensions\Query\Mysql\BitCount
                 bit_xor: DoctrineExtensions\Query\Mysql\BitXor
                 ceil: DoctrineExtensions\Query\Mysql\Ceil
                 cos: DoctrineExtensions\Query\Mysql\Cos
                 cot: DoctrineExtensions\Query\Mysql\Cot
                 degrees: DoctrineExtensions\Query\Mysql\Degrees
                 exp: DoctrineExtensions\Query\Mysql\Exp
                 floor: DoctrineExtensions\Query\Mysql\Floor
                 json_contains: DoctrineExtensions\Query\Mysql\JsonContains
                 json_depth: DoctrineExtensions\Query\Mysql\JsonDepth
                 json_length: DoctrineExtensions\Query\Mysql\JsonLength
                 log: DoctrineExtensions\Query\Mysql\Log
                 log10: DoctrineExtensions\Query\Mysql\Log10
                 log2: DoctrineExtensions\Query\Mysql\Log2
                 pi: DoctrineExtensions\Query\Mysql\Pi
                 power: DoctrineExtensions\Query\Mysql\Power
                 quarter: DoctrineExtensions\Query\Mysql\Quarter
                 radians: DoctrineExtensions\Query\Mysql\Radians
                 rand: DoctrineExtensions\Query\Mysql\Rand
                 round: DoctrineExtensions\Query\Mysql\Round
                 stddev: DoctrineExtensions\Query\Mysql\StdDev
                 sin: DoctrineExtensions\Query\Mysql\Sin
                 std: DoctrineExtensions\Query\Mysql\Std
                 tan: DoctrineExtensions\Query\Mysql\Tan
                 variance: DoctrineExtensions\Query\Mysql\Variance

             string_functions:
                 aes_decrypt: DoctrineExtensions\Query\Mysql\AesDecrypt
                 aes_encrypt: DoctrineExtensions\Query\Mysql\AesEncrypt
                 any_value: DoctrineExtensions\Query\Mysql\AnyValue
                 ascii: DoctrineExtensions\Query\Mysql\Ascii
                 binary: DoctrineExtensions\Query\Mysql\Binary
                 cast: DoctrineExtensions\Query\Mysql\Cast
                 char_length: DoctrineExtensions\Query\Mysql\CharLength
                 collate: DoctrineExtensions\Query\Mysql\Collate
                 concat_ws: DoctrineExtensions\Query\Mysql\ConcatWs
                 countif: DoctrineExtensions\Query\Mysql\CountIf
                 crc32: DoctrineExtensions\Query\Mysql\Crc32
                 degrees: DoctrineExtensions\Query\Mysql\Degrees
                 field: DoctrineExtensions\Query\Mysql\Field
                 find_in_set: DoctrineExtensions\Query\Mysql\FindInSet
                 format: DoctrineExtensions\Query\Mysql\Format
                 from_base64: DoctrineExtensions\Query\Mysql\FromBase64
                 greatest: DoctrineExtensions\Query\Mysql\Greatest
                 group_concat: DoctrineExtensions\Query\Mysql\GroupConcat
                 hex: DoctrineExtensions\Query\Mysql\Hex
                 ifelse: DoctrineExtensions\Query\Mysql\IfElse
                 ifnull: DoctrineExtensions\Query\Mysql\IfNull
                 inet_aton: DoctrineExtensions\Query\Mysql\InetAton
                 inet_ntoa: DoctrineExtensions\Query\Mysql\InetNtoa
                 inet6_aton: DoctrineExtensions\Query\Mysql\Inet6Aton
                 inet6_ntoa: DoctrineExtensions\Query\Mysql\Inet6Ntoa
                 instr: DoctrineExtensions\Query\Mysql\Instr
                 is_ipv4: DoctrineExtensions\Query\Mysql\IsIpv4
                 is_ipv4_compat: DoctrineExtensions\Query\Mysql\IsIpv4Compat
                 is_ipv4_mapped: DoctrineExtensions\Query\Mysql\IsIpv4Mapped
                 is_ipv6: DoctrineExtensions\Query\Mysql\IsIpv6
                 lag: DoctrineExtensions\Query\Mysql\Lag
                 lead: DoctrineExtensions\Query\Mysql\Lead
                 least: DoctrineExtensions\Query\Mysql\Least
                 lpad: DoctrineExtensions\Query\Mysql\Lpad
                 match: DoctrineExtensions\Query\Mysql\MatchAgainst
                 md5: DoctrineExtensions\Query\Mysql\Md5
                 nullif: DoctrineExtensions\Query\Mysql\NullIf
                 over: DoctrineExtensions\Query\Mysql\Over
                 radians: DoctrineExtensions\Query\Mysql\Radians
                 regexp: DoctrineExtensions\Query\Mysql\Regexp
                 replace: DoctrineExtensions\Query\Mysql\Replace
                 rpad: DoctrineExtensions\Query\Mysql\Rpad
                 sha1: DoctrineExtensions\Query\Mysql\Sha1
                 sha2: DoctrineExtensions\Query\Mysql\Sha2
                 soundex: DoctrineExtensions\Query\Mysql\Soundex
                 str_to_date: DoctrineExtensions\Query\Mysql\StrToDate
                 substring_index: DoctrineExtensions\Query\Mysql\SubstringIndex
                 unhex: DoctrineExtensions\Query\Mysql\Unhex
                 uuid_short: DoctrineExtensions\Query\Mysql\UuidShort        

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
