<commit_before><?php
date_default_timezone_set('America/Sao_Paulo');

if(!isset($asset_dir)){
    $asset_dir = 'assets/';
}


// creating base url
$prot_part = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] ? 'https://' : 'http://';
//added @ for HTTP_HOST undefined in Tests
$host_part = @$_SERVER['HTTP_HOST'] . dirname($_SERVER['SCRIPT_NAME']);
if(substr($host_part,-1) !== '/') $host_part .= '/';
$base_url = $prot_part . $host_part;

$num_folders = count(explode('/',BASE_PATH . 'public'));

return array(
    // theme namespaces
    'namespaces' => array(
        'MapasCulturais\Themes' => THEMES_PATH
    ),

    // sempre colocar a barra no final da url
    'base.url' => $base_url,
    'base.assetUrl' => $base_url . $asset_dir,

    'vectorLayersPath' => 'geojson',

    // development, staging, production
    'app.mode' => 'production',
    'app.lcode' => 'pt-br',

    'app.dbUpdatesDisabled' => false,
    'app.defaultApiOutput' => 'json',

    'app.siteName' => 'Mapas Culturais',
    'app.siteDescription' => 'O Mapas Culturais é uma plataforma livre para mapeamento cultural.',

    'api.accessControlAllowOrigin' => '*',

    'app.enableProjectRegistration' => true,

    'app.offline' => false,
    'app.offlineUrl' => '/offline',
    'app.offlineBypassFunction' => null,

    'themes.active' => 'MapasCulturais\Themes\BaseV1',
    'themes.assetManager' => new \MapasCulturais\AssetManagers\FileSystem(array(
        'publishPath' => BASE_PATH . $asset_dir,

        'mergeScripts' => false,
        'mergeStyles' => false,

        'process.js' => 'cp {IN} {OUT}', //'uglifyjs {IN} -o {OUT} --source-map {OUT}.map --source-map-include-sources --source-map-url /pub/{FILENAME}.map -b -p 7 && gzip -9 -c {OUT} > {OUT}.gz',
        'process.css' => 'cp {IN} {OUT}', //'uglifycss {IN} > {OUT} && gzip -9 -c {OUT} > {OUT}.gz',
        'publishFolderCommand' => 'cp -R {IN} {PUBLISH_PATH}{FILENAME}'
    )),

//    'maps.center' => array(-23.54894, -46.63882), // são paulo
    'maps.center' => array(-14.2400732, -53.1805018), // brasil
    'maps.maxClusterRadius' => 60,
    'maps.spiderfyDistanceMultiplier' => 1.3,
    'maps.maxClusterElements' => 6,

    'maps.zoom.default' => 5,
    'maps.zoom.approximate' => 14,
    'maps.zoom.precise' => 16,
    'maps.zoom.max' => 18,
    'maps.zoom.min' => 5,
    'maps.includeGoogleLayers' => false,

    'app.geoDivisionsHierarchy' => array(
        'país',
        'região',
        'estado',
        'mesorregião',
        'microrregião',
        'município',
        'zona',
        'subprefeitura',
        'distrito'
    ),

    'registration.agentRelationsOptions' => array(
        'dontUse' => 'Não utilizar',
        'required' => 'Obrigatório',
        'optional' => 'Opcional'
    ),
    'registration.propertiesToExport' => array(
        'id',
        'name',
        'nomeCompleto',
        'documento',
        'dataDeNascimento',
        'genero',
        'raca',
        'location',
        'endereco',
        'geoZona',
        'geoSubprefeitura',
        'geoDistrito',
        'telefone1',
        'telefone2',
        'telefonePublico',
        'emailPrivado',
        'emailPublico',
        'site',
        'googleplus',
        'facebook',
        'twitter'
    ),
    'registration.ownerDefinition' => array(
        'required' => true,
        'label' => 'Agente Responsável',
        'agentRelationGroupName' => 'owner',
        'description' => 'Agente individual com os campos CPF, Raça/Cor, Data de Nascimento/Fundação, Gênero, Email Privado e Telefone 1 obrigatoriamente preenchidos',
        'type' => 1,
        'requiredProperties' => array('documento', 'raca', 'dataDeNascimento', 'genero', 'emailPrivado', 'telefone1')
    ),
    'registration.agentRelations' => array(
        array(
            'required' => false,
            'label' => 'Instituição responsável',
            'agentRelationGroupName' => 'instituicao',
            'description' => 'Agente coletivo com os campos CNPJ, Data de Nascimento/Fundação, Email Privado e Telefone 1 obrigatoriamente preenchidos',
            'type' => 2,
            'requiredProperties' => array('documento', 'dataDeNascimento', 'emailPrivado', 'telefone1')
        ),
        array(
            'required' => false,
            'label' => 'Coletivo',
            'agentRelationGroupName' => 'coletivo',
            'description' => 'Agente coletivo sem CNPJ, com os campos Data de Nascimento/Fundação e Email Privado obrigatoriamente preenchidos',
            'type' => 2,
            'requiredProperties' => array('dataDeNascimento', 'emailPrivado')
        )
    ),

    /* ============ ENTITY PROPERTIES LABELS ============= */
    'app.entityPropertiesLabels' => array(
        '@default' => array(
            'id' => 'Id',
            'name' => 'Nome',
            'createTimestamp' => 'Data de Criação',
            'shortDescription' => 'Descrição Curta',
            'longDescription' => 'Descrição Longa',
            'status' => 'Status',
            'location' => 'Coordenada Geográfica',
            '_type' => 'Tipo'
        ),

//        'MapasCulturais\Entities\Agent' => array()
    ),


    // 'app.projectRegistrationAgentRelationGroupName' => "Inscrições",


    /* ==================== LOG ================== */
    // write log messages to a custom output (the class must implement the method "public write(mixed $message, int $level)")
    //'slim.log.writer' => new \Custom\Log\Writer(),

    'slim.log.level' => \Slim\Log::NOTICE,
    'slim.log.enabled' => true,

    'app.log.path' => realpath(BASE_PATH . '..') . '/logs/',

    'app.queryLogger' => new MapasCulturais\Loggers\DoctrineSQL\SlimLog(),
    'app.log.query' => false,

    'app.log.hook' => false,
    'app.log.requestData' => false,
    'app.log.translations' => false,
    'app.log.apiCache' => false,
    'app.log.apiDql' => false,
    'app.log.assets' => false,

    /* ==================== CACHE ================== */
    'app.cache' => new \Doctrine\Common\Cache\ApcCache(),
    'app.cache.namespace' => BASE_PATH,

    'app.useRegisteredAutoloadCache' => true,
    'app.registeredAutoloadCache.lifetime' => 0,

    'app.useAssetsUrlCache' => true,
    'app.assetsUrlCache.lifetime' => 0,

    'app.useFileUrlCache' => true,
    'app.fileUrlCache.lifetime' => 604800,

    'app.useEventsCache' => true,
    'app.eventsCache.lifetime' => 600,

    'app.useApiCache' => true,
    'app.apiCache.lifetime' => 120,

    'app.useUsersWithControlCache' => true,<commit_msg>Changes base config app.cache.namespace from base path to base url<commit_after><?php
date_default_timezone_set('America/Sao_Paulo');

if(!isset($asset_dir)){
    $asset_dir = 'assets/';
}


// creating base url
$prot_part = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] ? 'https://' : 'http://';
//added @ for HTTP_HOST undefined in Tests
$host_part = @$_SERVER['HTTP_HOST'] . dirname($_SERVER['SCRIPT_NAME']);
if(substr($host_part,-1) !== '/') $host_part .= '/';
$base_url = $prot_part . $host_part;

$num_folders = count(explode('/',BASE_PATH . 'public'));

return array(
    // theme namespaces
    'namespaces' => array(
        'MapasCulturais\Themes' => THEMES_PATH
    ),

    // sempre colocar a barra no final da url
    'base.url' => $base_url,
    'base.assetUrl' => $base_url . $asset_dir,

    'vectorLayersPath' => 'geojson',

    // development, staging, production
    'app.mode' => 'production',
    'app.lcode' => 'pt-br',

    'app.dbUpdatesDisabled' => false,
    'app.defaultApiOutput' => 'json',

    'app.siteName' => 'Mapas Culturais',
    'app.siteDescription' => 'O Mapas Culturais é uma plataforma livre para mapeamento cultural.',

    'api.accessControlAllowOrigin' => '*',

    'app.enableProjectRegistration' => true,

    'app.offline' => false,
    'app.offlineUrl' => '/offline',
    'app.offlineBypassFunction' => null,

    'themes.active' => 'MapasCulturais\Themes\BaseV1',
    'themes.assetManager' => new \MapasCulturais\AssetManagers\FileSystem(array(
        'publishPath' => BASE_PATH . $asset_dir,

        'mergeScripts' => false,
        'mergeStyles' => false,

        'process.js' => 'cp {IN} {OUT}', //'uglifyjs {IN} -o {OUT} --source-map {OUT}.map --source-map-include-sources --source-map-url /pub/{FILENAME}.map -b -p 7 && gzip -9 -c {OUT} > {OUT}.gz',
        'process.css' => 'cp {IN} {OUT}', //'uglifycss {IN} > {OUT} && gzip -9 -c {OUT} > {OUT}.gz',
        'publishFolderCommand' => 'cp -R {IN} {PUBLISH_PATH}{FILENAME}'
    )),

//    'maps.center' => array(-23.54894, -46.63882), // são paulo
    'maps.center' => array(-14.2400732, -53.1805018), // brasil
    'maps.maxClusterRadius' => 60,
    'maps.spiderfyDistanceMultiplier' => 1.3,
    'maps.maxClusterElements' => 6,

    'maps.zoom.default' => 5,
    'maps.zoom.approximate' => 14,
    'maps.zoom.precise' => 16,
    'maps.zoom.max' => 18,
    'maps.zoom.min' => 5,
    'maps.includeGoogleLayers' => false,

    'app.geoDivisionsHierarchy' => array(
        'país',
        'região',
        'estado',
        'mesorregião',
        'microrregião',
        'município',
        'zona',
        'subprefeitura',
        'distrito'
    ),

    'registration.agentRelationsOptions' => array(
        'dontUse' => 'Não utilizar',
        'required' => 'Obrigatório',
        'optional' => 'Opcional'
    ),
    'registration.propertiesToExport' => array(
        'id',
        'name',
        'nomeCompleto',
        'documento',
        'dataDeNascimento',
        'genero',
        'raca',
        'location',
        'endereco',
        'geoZona',
        'geoSubprefeitura',
        'geoDistrito',
        'telefone1',
        'telefone2',
        'telefonePublico',
        'emailPrivado',
        'emailPublico',
        'site',
        'googleplus',
        'facebook',
        'twitter'
    ),
    'registration.ownerDefinition' => array(
        'required' => true,
        'label' => 'Agente Responsável',
        'agentRelationGroupName' => 'owner',
        'description' => 'Agente individual com os campos CPF, Raça/Cor, Data de Nascimento/Fundação, Gênero, Email Privado e Telefone 1 obrigatoriamente preenchidos',
        'type' => 1,
        'requiredProperties' => array('documento', 'raca', 'dataDeNascimento', 'genero', 'emailPrivado', 'telefone1')
    ),
    'registration.agentRelations' => array(
        array(
            'required' => false,
            'label' => 'Instituição responsável',
            'agentRelationGroupName' => 'instituicao',
            'description' => 'Agente coletivo com os campos CNPJ, Data de Nascimento/Fundação, Email Privado e Telefone 1 obrigatoriamente preenchidos',
            'type' => 2,
            'requiredProperties' => array('documento', 'dataDeNascimento', 'emailPrivado', 'telefone1')
        ),
        array(
            'required' => false,
            'label' => 'Coletivo',
            'agentRelationGroupName' => 'coletivo',
            'description' => 'Agente coletivo sem CNPJ, com os campos Data de Nascimento/Fundação e Email Privado obrigatoriamente preenchidos',
            'type' => 2,
            'requiredProperties' => array('dataDeNascimento', 'emailPrivado')
        )
    ),

    /* ============ ENTITY PROPERTIES LABELS ============= */
    'app.entityPropertiesLabels' => array(
        '@default' => array(
            'id' => 'Id',
            'name' => 'Nome',
            'createTimestamp' => 'Data de Criação',
            'shortDescription' => 'Descrição Curta',
            'longDescription' => 'Descrição Longa',
            'status' => 'Status',
            'location' => 'Coordenada Geográfica',
            '_type' => 'Tipo'
        ),

//        'MapasCulturais\Entities\Agent' => array()
    ),


    // 'app.projectRegistrationAgentRelationGroupName' => "Inscrições",


    /* ==================== LOG ================== */
    // write log messages to a custom output (the class must implement the method "public write(mixed $message, int $level)")
    //'slim.log.writer' => new \Custom\Log\Writer(),

    'slim.log.level' => \Slim\Log::NOTICE,
    'slim.log.enabled' => true,

    'app.log.path' => realpath(BASE_PATH . '..') . '/logs/',

    'app.queryLogger' => new MapasCulturais\Loggers\DoctrineSQL\SlimLog(),
    'app.log.query' => false,

    'app.log.hook' => false,
    'app.log.requestData' => false,
    'app.log.translations' => false,
    'app.log.apiCache' => false,
    'app.log.apiDql' => false,
    'app.log.assets' => false,

    /* ==================== CACHE ================== */
    'app.cache' => new \Doctrine\Common\Cache\ApcCache(),
    'app.cache.namespace' => $base_url,

    'app.useRegisteredAutoloadCache' => true,
    'app.registeredAutoloadCache.lifetime' => 0,

    'app.useAssetsUrlCache' => true,
    'app.assetsUrlCache.lifetime' => 0,

    'app.useFileUrlCache' => true,
    'app.fileUrlCache.lifetime' => 604800,

    'app.useEventsCache' => true,
    'app.eventsCache.lifetime' => 600,

    'app.useApiCache' => true,
    'app.apiCache.lifetime' => 120,

    'app.useUsersWithControlCache' => true,
{'fraction_non_alphanumeric': 0.18377344048985841, 'fraction_numerical': 0.01117489475698431, 'mean_word_length': 2.6722878021360317, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 205, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3304015', 'n_tokens_mistral': 4542, 'n_tokens_neox': 4373, 'n_words': 832}