Schema
Este JSON define metadados, modelo de dados das propriedades e metadados de UI do formulário, permitindo gerar páginas de listagem/edição a partir de configuração declarativa.
Metadados
- title: nome legível do recurso exibido em cabeçalhos, menus e listagens.
- icon: identificador do ícone (ex.: mdi-alpha-r-circle) usado em navegação/headers.
- description: rótulo descritivo do recurso, usado como título/subtítulo na UI.
- type: tipo do schema na raiz, normalmente "object", indicando que o recurso é um objeto com propriedades.
- module: categorização por módulo ou domínios funcionais (ex.: “IIOT,Produção”).
- group: agrupamento lógico para organizar o recurso em menus ou seções.
- principal: indica se este recurso é principal/destaque dentro do módulo/grupo.
- descriptor: nome da propriedade que representa o “display name” do registro (ex.: "description").
- searchFields: lista de campos usados em buscas textuais na listagem (ex.: "description,code").
- multi_company: quando true, habilita comportamento multiempresa, geralmente exigindo filtro por empresa/site.
properties (modelo de dados)
- Estrutura: mapa que define os campos do recurso, seus tipos de dados e restrições de validação. Cada chave (ex.: "code", "description") representa uma propriedade da entidade. Os nomes são dinâmicos e podem variar em outros schemas.
- Propriedades comuns:
- type: define o tipo do campo no schema (ex.: string, number, object).
- autoInc: se true, o valor é gerado automaticamente (sequencial ou via algoritmo).
- unique: se true, o campo não pode se repetir entre diferentes registros.
- relationSchema: indica relacionamento com outra entidade, referenciando o schema de destino.
- max: valor máximo permitido para números.
code: {
type: "string"
autoInc: true
unique: true
}
form (metadados de UI do formulário)
- Estrutura: define como os campos serão exibidos e validados no formulário de criação/edição. Não altera o tipo/dados, apenas a apresentação na interface. Os nomes das chaves (ex.: code, description) também são dinâmicos e variam dependendo do schema.
- Metadados comuns por campo:
- label: define o texto exibido como rótulo no formulário, visível ao usuário.
- order: número que define a posição do campo no formulário (menores aparecem primeiro).
- required: se true, torna o campo obrigatório na UI.
code: {
label: "Código"
order: 0
required: true
}
Como interpretar as seções
- Metadados: controlam identificação, categorização, busca e comportamento multiempresa.
- properties: definem os campos de dados da entidade, incluindo regras de validação e relacionamentos.
- form.properties: especifica como os campos serão apresentados e validados na interface de usuário.