Form Schema & Validações
O Form Schema permite definir a estrutura do seu formulário no formato JSON. Isso habilita o sistema a:
1. Validar os dados recebidos (ex: verificar se um campo obrigatório foi preenchido).
2. Gerar automaticamente o HTML de embed do formulário.
Formato do JSON
O campo "Form Schema" no painel de administração aceita um array de objetos JSON. Cada objeto representa um campo do formulário.
Exemplo Básico:
[
{
"name": "nome",
"type": "text",
"label": "Nome Completo",
"required": true
},
{
"name": "email",
"type": "email",
"label": "Seu E-mail",
"required": true
},
{
"name": "mensagem",
"type": "textarea",
"label": "Como podemos ajudar?",
"required": false
}
]
Propriedades Suportadas (Atualmente)
-
name (string, obrigatório): O nome do campo (atributo name no HTML). Deve ser único, sem espaços ou caracteres especiais (use _ se necessário).-
type (string, obrigatório): O tipo do campo. Valores suportados: text, email, tel, number, textarea, file, select, radio, checkbox.-
label (string, opcional): O texto descritivo do campo que aparecerá para o usuário.-
required (boolean, opcional): Define se o campo é obrigatório. Padrão: false.-
options (array de strings, opcional): Usado apenas para type = select, radio, ou checkbox para definir as opções disponíveis.Planejado para o Futuro (Backlog)
As seguintes propriedades e funcionalidades estão sendo desenvolvidas e farão parte do Form Schema no futuro:
- Máscaras de Input (
mask): Permitir definir máscaras (ex: (99) 99999-9999 para telefone, 999.999.999-99 para CPF) diretamente no schema para validação no client-side e no servidor.- Validações Específicas (
validation): Regras complexas de validação (ex: tamanho mínimo/máximo, regex, validação de formato de CPF/CNPJ).- Toggle de Validação/Scripts: Opções no painel para ativar/desativar a inclusão de scripts de máscara e validação no HTML gerado, ou decidir se o bloqueio de envio ocorrerá no frontend (via script) ou apenas no servidor.
- Tabelas Físicas por Form: O registro do Form Schema será integrado com a geração de tabelas físicas reais no banco de dados para cada formulário, em vez de armazenar tudo em JSON, facilitando consultas e relatórios.