<?php

/**
 * Conexão PostgreSQL para o ambiente de desenvolvimento e homologação (F1.8).
 *
 *     cp config/autoload/local.postgres.php.dist config/autoload/local.php
 *
 * Guarde antes o local.php que estiver valendo: é ele que aponta para o MySQL,
 * e durante a transição você vai querer voltar.
 *
 * O QUE MUDA EM RELAÇÃO AO MYSQL, e por quê:
 *
 * - `driverClass`. O padrão em doctrine.global.php é o driver MySQL. Aqui ele é
 *   trocado, e é a única troca que importa — o resto do sistema não sabe qual
 *   banco está do outro lado.
 *
 * - `charset` em vez de `PDO::MYSQL_ATTR_INIT_COMMAND`. A constante do PDO só
 *   existe quando a extensão MySQL está carregada; usá-la aqui quebraria o
 *   arquivo antes de qualquer conexão.
 *
 * - Porta 5432.
 *
 * O QUE NÃO ESTÁ AQUI, e não deveria: a declaração do inquilino. Ela é feita
 * pelo ouvinte ISBase\Doctrine\DeclararInquilino, registrado em
 * doctrine.global.php, logo depois de cada conexão. Sem ela o RLS devolve zero
 * linhas em tudo, sem erro nenhum — o tipo de falha que se procura no lugar
 * errado.
 */

use Doctrine\DBAL\Driver\PDOPgSql\Driver;

return [
    // Ambiente de DESENVOLVIMENTO: a pagina de erro mostra o rastro.
    //
    // Isto vivia em `module/ISBase/config/module.config.php` ate 30/08/2026,
    // que carrega em todo ambiente -- inclusive producao (D16). Aqui e o
    // lugar certo: este arquivo e por maquina.
    'view_manager' => [
        'display_exceptions' => true,
        'display_not_found_reason' => true,
    ],

    'doctrine' => [
        'connection' => [
            'orm_default' => [
                'driverClass' => Driver::class,
                'params' => [
                    'host' => 'postgres',
                    'port' => '5432',
                    'dbname' => 'franquiabv_dev',
                    // bvip_app, e NAO o dono do banco. O dono e superusuario,
                    // e superusuario ignora Row-Level Security mesmo com FORCE
                    // -- com ele as 75 politicas de isolamento nao valem nada.
                    // Ver postgres/papeis.sql.modelo e D48.
                    'user' => 'bvip_app',
                    // Mesma convencao do docker-compose.yml: variavel de
                    // ambiente com padrao de desenvolvimento. Senha em arquivo
                    // versionado e senha vazada, e este projeto ja tem seis
                    // credenciais em claro esperando remediacao (D1).
                    // Em homologacao e producao, defina PG_APP_PASSWORD com o
                    // mesmo valor passado a scripts/criar-papeis.sh.
                    'password' => getenv('PG_APP_PASSWORD') ?: 'dev',
                    'charset' => 'utf8',
                ],
            ],
        ],
    ],

    // Todo e-mail continua sendo capturado pelo Mailpit. Nada sai para caixas
    // de entrada reais.
    'mail' => [
        'name' => 'localhost',
        'host' => 'mailpit',
        'port' => '1025',
        'connection_class' => 'smtp',
        'connection_config' => [
            'username' => 'dev',
            'password' => 'dev',
        ],
    ],

    // A integracao de faturamento da Yungas (D89).
    //
    // Ate 03/09/2026 estes tres valores estavam ESCRITOS dentro do
    // `CronJobService`, e portanto no repositorio e no historico do git. Sem
    // eles preenchidos aqui, a rotina `yungasFaturamentoAtualizar` nao roda --
    // e diz no log que nao rodou, em vez de calar.
    'yungas' => [
        'apikey' => '',
        'email' => '',
        'password' => '',
    ],

    // O Asaas e o token das rotinas (SEGREDOS, D3 e D4), VAZIOS DE PROPOSITO.
    //
    // Ate 03/10/2026 os dois estavam escritos no codigo, e por isso esta
    // maquina falava com a conta de PRODUCAO do Asaas. Vazios, as rotinas de
    // faturas lancam antes de chegar ao Asaas, e as rotinas por URL recusam
    // todo pedido. A chave de producao NUNCA entra aqui; o token, se um ensaio
    // precisar, e um valor sorteado so para este ambiente -- o CI sorteia o
    // dele e o grava no `local.php` do job.
    'asaas' => [
        'url' => '',
        'api_key' => '',
    ],

    // O WHATSAPP CENTRAL DA FRANQUEADORA (o D59; as respostas 147 e 169 do dono),
    // VAZIO DE PROPOSITO, como no `local.php.dist`: o codigo de entrada do aplicativo
    // novo (o login V4) sai por ele. Vazio, o login V4 nao manda codigo a ninguem. O
    // numero e um NOVO, da franqueadora, so para os codigos, numa instancia nova no
    // provedor (a 169, a opcao (a)). No corte (o passo 7 de
    // `docs/procedimento-de-corte.md`), os tres valores vem do
    // `local.mysql.php.guardado`, se ja estiverem la; senao, da instancia nova. A chave
    // nunca entra no repositorio.
    'whatsapp' => [
        'central' => [
            'provedor' => 'evolution',
            'instancia' => '',
            'api_key' => '',
        ],
    ],

    'cron' => [
        'token' => '',
    ],
];
