<?php 
/** 
 * Copyright Blackbit digital Commerce GmbH <info@blackbit.de> 
 * 
 * This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. 
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 
 * 
 * You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 
 */ 
 
namespace Blackbit\DataDirectorBundle\DependencyInjection; 
 
use Symfony\Component\Config\Definition\Builder\TreeBuilder; 
use Symfony\Component\Config\Definition\ConfigurationInterface; 
use Symfony\Component\HttpKernel\Kernel; 
 
/** 
 * This is the class that validates and merges configuration from your app/config files. 
 * 
 * To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/configuration.html} 
 */ 
class Configuration implements ConfigurationInterface 
{ 
    /** 
     * {@inheritdoc} 
     */ 
    public function getConfigTreeBuilder() 
    { 
        if (Kernel::MAJOR_VERSION >= 5) { 
            $treeBuilder = new TreeBuilder('blackbit_data_director'); 
            $rootNode = $treeBuilder->getRootNode(); 
        } else { 
            $treeBuilder = new TreeBuilder(); 
            $rootNode = $treeBuilder->root('blackbit_data_director'); 
        } 
 
        $rootNode 
            ->children() 
                ->arrayNode('queue_processing') 
                    ->children() 
                        ->booleanNode('automatic_start') 
                            ->info('Automatically start queue processing when a new job gets added to the queue') 
                        ->end() 
                    ->end() 
                ->end() 
                ->arrayNode('text_generation') 
                    ->children() 
                        ->scalarNode('openai_api_key') 
                            ->info('API key to use for automatic text generation with OpenAI API') 
                        ->end() 
                    ->end() 
                ->end() 
                ->arrayNode('translation') 
                    ->children() 
                        ->arrayNode('languages') 
                            ->info('Define which target language shall be used for certain Pimcore languages, e.g. en: en-gb') 
                            ->useAttributeAsKey('language') 
                            ->prototype('scalar') 
                        ->end() 
                    ->end() 
                ->end() 
            ->end(); 
 
        return $treeBuilder; 
    } 
}