# Evidencias de validacao local — 24/09/2026 Resultado: 40 testes passaram (39 da aplicacao + 1 de ciclo de esquema), com 3.242 verificacoes no total. Ambiente isolado: PHP 8.5.11, PostgreSQL 17.11, PostGIS 3.6.2, porta local 55439. A base configurada da aplicacao nao foi utilizada. | Verificacao | Resultado | |---|---| | migrate:fresh --seed | Passou | | Segunda execucao de migrate e seeds de referencia | Passou | | Rollback das 15 novas migrations preservando legado | Passou | | migrate:rollback do ultimo lote e reaplicacao | Passou | | Preservacao de postgis/pgcrypto | Passou | | 59 tabelas, 684 campos, tipos, defaults, nulabilidade e indices | Correspondem ao catalogo | | 69 FKs e respectivas accoes | Correspondem ao dicionario | | Restricoes monetarias, espaciais, auditoria e eventos | Passaram | | PHPUnit dedicado | 1 teste, 3.106 verificacoes | | PHPUnit da aplicacao | 39 testes, 136 verificacoes | | PHP lint | 22 ficheiros passaram | | Pint dos ficheiros alterados | Passou | | PHPStan dos modelos/factories/seeders alterados | Passou, zero erros | | Consistencia estatica e reproducao do gerador | Passaram | A base tem 61 tabelas fisicas: 59 da aplicacao, migrations gerida pelo Laravel e spatial_ref_sys gerida pelo PostGIS. Os dois objectos de infraestrutura nao sao criados pelas migrations aplicacionais. Os hashes dos artefactos testados estao em validation-results.json. A validacao corresponde a esses ficheiros; qualquer alteracao posterior exige nova verificacao. Comandos usados com variaveis de ambiente apontadas exclusivamente para a instancia temporaria: php vendor/bin/phpunit --configuration=phpunit.investmoz.xml --do-not-cache-result php vendor/bin/phpunit --configuration=phpunit.xml --do-not-cache-result php vendor/bin/pint --test [ficheiros PHP alterados] php vendor/bin/phpstan analyse [modelos/factories/seeders alterados] --no-progress python tools/investmoz/validate.py python tools/investmoz/generate.py --source CAMINHO_DOCX --check O teste dedicado invoca os comandos Artisan reais dentro da aplicacao. Exige INVESTMOZ_SCHEMA_TESTS=1, APP_ENV=testing, driver pgsql, base *_test e ausencia de config em cache antes de migrate:fresh. O teste de plano confirma utilizacao possivel do indice GiST; nao prova um SLO de latencia. Nao se validaram producao, importacao real MySQL, RLS nem capacidades funcionais pendentes. Compatibilidade local: o PHP 8.1 do Laragon nao satisfaz o composer.lock instalado (PHP >=8.4.1). Durante a analise, a configuracao local indicou a ligacao inexistente postgre; usar DB_CONNECTION=pgsql quando configurar a execucao local. Nao foram alteradas credenciais nem o ficheiro .env. Foram corrigidas duas falhas detectadas no ensaio: duplicacao do utilizador pelo seeder antigo e sobrevivencia das funcoes PostgreSQL entre execucoes de migrate:fresh. O seeder passou a firstOrCreate; apenas as funcoes proprias investmoz_* usam CREATE OR REPLACE.