Origem: Engenheiro Chefe Humano, 2026-10-01.
Lotes Vinculados: BATCH-211 (Core: Migração de sementes sem idioma para a raiz de resources/, suporte a language_agnostic no compilador e limpeza de duplicatas).
Status: complete (2026-10-01; homologação técnica concluída pelo Executor)
Repositório: [REDACTED]
1. Contexto & Diagnóstico
Na REQ-202 (BATCH-210), todas as 8 tabelas centrais foram migradas para autoria em gestor/resources/. No entanto, foram criadas réplicas dentro de gestor/resources/pt-br/ e gestor/resources/en/ para todas as tabelas indiscriminadamente.
Diagnóstico de Domínio:
-
Recursos Multilíngues (com coluna
languagee textos traduzíveis):-
layouts(layouts.json) -
pages(pages.json) -
components(components.json) -
templates(templates.json) -
variables(variables.json) -
modulos(modules.json) -
modulos_grupos(module_groups.json) -
modulos_operacoes(module_operations.json) -
usuarios_perfis(user_profiles.json) Devem permanecer obrigatoriamente dentro degestor/resources/{lang}/.
-
-
Recursos Globais / Agnósticos de Idioma (sem coluna
languageno schema):-
usuarios(users.json) — Contas de usuários são globais e não têm idioma na tabelausuarios. -
usuarios_perfis_modulos(user_profiles_modules.json) — Vínculos N:N entre perfis e módulos; puramente estruturais. -
usuarios_perfis_modulos_operacoes(user_profiles_modules_operations.json) — Vínculos N:N entre perfis e operações; puramente estruturais. -
categorias(categories.json) — Categorias estruturais sem colunalanguage. Devem residir diretamente na raiz degestor/resources/, sem duplicação em pastas de idiomas.
-
2. Objetivos Arquiteturais
-
Mover Sementes Globais para a Raiz de
resources/:-
gestor/resources/users.json -
gestor/resources/user_profiles_modules.json -
gestor/resources/user_profiles_modules_operations.json -
gestor/resources/categories.json -
Remover as cópias redundantes de
gestor/resources/pt-br/egestor/resources/en/.
-
-
Atualização do Contrato em
tables_config.json:-
Configurar
language_agnostic: true(ouscope: "global") nas 4 tabelas agnósticas. -
Ajustar o caminho do
metadata_filepara apontar diretamente na raiz deresources/(sem prefixo de idioma).
-
-
Adaptação do Compilador (
atualizacao-dados-recursos.php):-
Atualizar a função
lerMetadadosDinamicos()e o coletor dinâmico para carregar arquivos agnósticos de idioma uma única vez a partir da raiz deresources/, sem iterar sobre$languages. -
Garantir que a compilação gere os
Data.jsoncorrespondentes com 100% de integridade e sem duplicações de registros.
-
-
Atualização de
resources.map.php:-
Manter em
resources.map.phpapenas os recursos efetivamente multilíngues (layouts,pages,components,templates,variables,modules,module_groups,module_operations,user_profiles).
-
3. Especificação das Tabelas em gestor/resources/tables_config.json
{
"usuarios": {
"nome": "usuarios",
"id": "id",
"id_numerico": "id_usuarios",
"config": {
"strategy": "natural_key",
"natural_key_columns": ["id"],
"preserve_on_user_modified": ["senha", "email", "nome", "usuario", "status"],
"insert_only": true,
"sync_resources": true,
"language_agnostic": true,
"metadata_file": "users.json"
},
"deletar": []
},
"usuarios_perfis_modulos": {
"nome": "usuarios_perfis_modulos",
"id": "id",
"id_numerico": "id_usuarios_perfis_modulos",
"config": {
"strategy": "natural_key",
"natural_key_columns": ["perfil", "modulo"],
"preserve_on_user_modified": [],
"insert_only": false,
"sync_resources": true,
"language_agnostic": true,
"metadata_file": "user_profiles_modules.json"
},
"deletar": []
},
"usuarios_perfis_modulos_operacoes": {
"nome": "usuarios_perfis_modulos_operacoes",
"id": "id",
"id_numerico": "id_usuarios_perfis_modulos_operacoes",
"config": {
"strategy": "natural_key",
"natural_key_columns": ["perfil", "operacao"],
"preserve_on_user_modified": [],
"insert_only": false,
"sync_resources": true,
"language_agnostic": true,
"metadata_file": "user_profiles_modules_operations.json"
},
"deletar": []
},
"categorias": {
"nome": "categorias",
"id": "id",
"id_numerico": "id_categorias",
"config": {
"strategy": "natural_key",
"natural_key_columns": ["id"],
"preserve_on_user_modified": [],
"insert_only": false,
"sync_resources": true,
"language_agnostic": true,
"metadata_file": "categories.json"
},
"deletar": []
}
}4. Critérios de Aceite & Checklist de Validação
-
[ ] Arquivos
users.json,user_profiles_modules.json,user_profiles_modules_operations.jsonecategories.jsonlocalizados exclusivamente na raiz degestor/resources/. -
[ ] Subpastas
gestor/resources/pt-br/egestor/resources/en/limpas (sem os 4 arquivos agnósticos). -
[ ]
tables_config.jsondeclaralanguage_agnostic: truepara as 4 tabelas. -
[ ] Compilador
atualizacao-dados-recursos.phplê os arquivos globais na raiz sem iterar por idioma. -
[ ]
php cli/c2f.php resources:synccompila perfeitamente todos osData.jsonsem duplicação de dados. -
[ ] Suíte de testes PHPUnit focada (incluindo testes de compilação seletiva e agnóstica de idioma) passa com 100% de sucesso.
-
[ ]
git diff --checklimpo.