<?php

use TYPO3\CMS\Core\Cache\Backend\NullBackend;
use TYPO3\CMS\Core\Cache\Backend\RedisBackend;
use TYPO3\CMS\Core\Core\Environment;


$GLOBALS['TYPO3_CONF_VARS'] = array_replace_recursive(
    $GLOBALS['TYPO3_CONF_VARS'],
    [
        'DB' => [
            'Connections' => [
                'Default' => [
                    'dbname' => $_ENV['DB_NAME'],
                    'driver' => $_ENV['DB_DRIVER'],
                    'host' => $_ENV['DB_HOST'],
                    'password' => $_ENV['DB_PASSWORD'],
                    'port' => $_ENV['DB_PORT'],
                    'user' => $_ENV['DB_USER'],
                    'charset' => $_ENV['DB_CHARSET'],
                    'tableoptions' => [
                        'charset' => $_ENV['DB_CHARSET'],
                        'collate' => $_ENV['DB_COLLATE'],
                    ],
                ]
            ]
        ],
        'MAIL' => [
            'transport' => $_ENV['MAIL_TRANSPORT_PROTOCOL'],
            'transport_smtp_encrypt' => filter_var($_ENV['MAIL_TRANSPORT_SMTP_ENCRYPT'] ?? false, FILTER_VALIDATE_BOOLEAN),
            'transport_smtp_server' => $_ENV['MAIL_TRANSPORT_SMTP_SERVER'],
            'transport_smtp_username' => $_ENV['MAIL_TRANSPORT_SMTP_USERNAME'],
            'transport_smtp_password' => $_ENV['MAIL_TRANSPORT_SMTP_PASSWORD'],
        ],
        'EXTENSIONS' => [
            'backend' => [
                'backendFavicon' => '',
                'backendLogo' => '',
                'loginBackgroundImage' => '',
                'loginFootnote' => 'Werner Rädlinger Gruppe – Familienunternehmen mit Tradition',
                'loginHighlightColor' => '#e35205',
                'loginLogo' => '',
                'loginLogoAlt' => '',
            ],
        ],
        'SYS' => [
            'displayErrors' => 0,
            'devIPmask' => '37.60.3.105',
        ],
        'FE' => [
            'debug' => false,
        ],
        'BE' => [
            'debug' => false,
        ],

    ]
);

if (Environment::getContext()->isProduction()) {
    $redisHost = '127.0.0.1';
    $redisPort = 6379;
    $cachesForRedis = [
        'pages' => 86400*30,
        'pagesection' => 86400*30,
        'hash' => 86400*30,
        'rootline' => 86400*30,
        'xom' => 86400*30,
    ];
    $redisDatabaseNumber = 2;
    foreach ($cachesForRedis as $cacheName => $lifetime) {
        $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations'][$cacheName]['backend'] = RedisBackend::class;
        $GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations'][$cacheName]['options'] = [
            'database' => $redisDatabaseNumber++,
            'hostname' => $redisHost,
            'port' => $redisPort,
            'defaultLifetime' => $lifetime
        ];
    }
}

if (Environment::getContext()->isDevelopment()) {
    $GLOBALS['TYPO3_CONF_VARS'] = array_replace_recursive(
        $GLOBALS['TYPO3_CONF_VARS'],
        [
            'FE' => [
                'debug' => true,
            ],
            'BE' => [
                'debug' => true,
            ],
            'SYS' => [
                'sitename' => '🚧 Rädlinger [DEV]',
                'displayErrors' => 1,
                'devIPmask' => '*',
                'trustedHostsPattern' => '.*.*',
                'caching' => [
                    'cacheConfigurations' => [
                        'hash' => [
                            'backend' => NullBackend::class,
                        ],
                        'pages' => [
                            'backend' => NullBackend::class,
                        ],
                        'pagesection' => [
                            'backend' => NullBackend::class,
                        ],
                        'rootline' => [
                            'backend' => NullBackend::class,
                        ],
                        'fluidtemplate' => [
                            'backend' => NullBackend::class
                        ],
                        'l10n' => [
                            'backend' => NullBackend::class
                        ]
                    ]
                ]
            ],
        ]
    );
}


if (getenv('IS_DDEV_PROJECT') == 'true') {
    $GLOBALS['TYPO3_CONF_VARS'] = array_replace_recursive(
        $GLOBALS['TYPO3_CONF_VARS'],
        [
            'GFX' => [
                'processor' => 'ImageMagick',
                'processor_path' => '/usr/bin/',
                'processor_path_lzw' => '/usr/bin/',
            ],
            'SYS' => [
                'trustedHostsPattern' => '.*.*',
                'devIPmask' => '*',
                'displayErrors' => 1,
            ],
        ]
    );
}
