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.