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: '16'
        types:
            coach_client_status_enum:             MyCoach\Doctrine\DBAL\Type\CoachClientStatusEnumType
            coach_client_access_type_enum:        MyCoach\Doctrine\DBAL\Type\CoachClientAccessTypeEnumType
            coach_client_webhook_status_enum:     MyCoach\Doctrine\DBAL\Type\CoachClientWebhookStatusEnumType
            hook_status_enum:                     MyCoach\Doctrine\DBAL\Type\HookStatusEnumType
            hook_type_enum:                       MyCoach\Doctrine\DBAL\Type\HookTypeEnumType
            coach_client_tool_result_status_enum: MyCoach\Doctrine\DBAL\Type\CoachClientToolResultStatusEnumType
            tool_completion_mode_enum:            MyCoach\Doctrine\DBAL\Type\ToolCompletionModeEnumType
            tool_type_enum:                       MyCoach\Doctrine\DBAL\Type\ToolTypeEnumType

        mapping_types:
            enum: string

        profiling_collect_backtrace: '%kernel.debug%'
        use_savepoints: true
    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:
            MyCoach:
                type: attribute
                is_bundle: false
                dir: '%kernel.project_dir%/src/Entity'
                prefix: 'MyCoach\Entity'
                alias: MyCoach

        dql:
            string_functions:
                # Match agains should have the path to the Sha2 class created in the previous step
                SHA2: MyCoach\Doctrine\Extension\Sha2
            numeric_functions:
                RAND: MyCoach\Doctrine\Extension\Rand

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

# when@qual:
#     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
