# Seed de referências para produção ## O que é carregado `DatabaseSeeder` chama `ProductionReferenceSeeder` em qualquer ambiente. O seeder carrega: - setores e áreas de investimento versionados; - opções de referência dos formulários; - 1.921 referências territoriais com origem e checksum validados: 1 país, 11 províncias, 148 distritos, 437 postos administrativos e 1.324 localidades; - projectos, clusters, corredores e fichas documentais da carteira versionada, mantidos como rascunhos. O import é transaccional e repetível. Não substitui nomes, relações ou códigos quando encontra um registo territorial com o mesmo identificador mas conteúdo diferente; nesse caso aborta a transacção para revisão. Só promove de `internal` para `public` as referências pertencentes ao mesmo conjunto e com conteúdo idêntico, para disponibilizar os dropdowns autorizados. Os ficheiros-fonte versionados são `database/data/territory-locations.json`, `database/data/investment-reference-options.json` e `database/data/investment-portfolio.json`. Os 69 registos territoriais antigos arquivados ficam fora do conjunto activo. O Excel original não é necessário no servidor. ## Aplicação Depois de publicar o código e configurar PostgreSQL/PostGIS no destino, criar primeiro um backup recuperável e executar: ```sh php artisan migrate --force php artisan db:seed --force ``` Em produção, `DatabaseSeeder` termina depois de `ProductionReferenceSeeder`; não cria utilizadores de teste nem o investidor/projecto de exemplo. `SectorSeeder` cria apenas sectores em falta e os importadores da carteira preservam registos editados manualmente. ## Dados que não são seed O conteúdo operacional da base (utilizadores, investidores, submissões, pedidos, sessões, auditoria, cache e outros registos criados pelos utilizadores) não deve ser convertido em PHP/JSON versionado nem copiado por `db:seed`. Deve ser transferido entre ambientes por backup/restauro ou por um plano de migração de dados com mapeamento, validação de privacidade e reconciliação de chaves. As oportunidades de demonstração de `OpportunitySeeder` também não são executadas em produção. O seeder não foi executado contra produção durante a preparação deste pacote. A aplicação acima deve ocorrer no destino depois do backup, com revisão do relatório de colisões caso o conteúdo já existente divirja.