Skip to main content

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.