🗄️ Membros

Tabela principal de membros do sistema OndeVou.

📋 22 colunas 🔗 1 relacionamentos 🎮 9 controles 👁️ view_membros 🔑 PRIMARY KEY 🎮 1 ações externas

📋 Estrutura da Tabela

A tabela membros possui 22 colunas.

🔑 Id PRIMARY KEY
🔑 PRIMARY KEY🔒 Somente leitura💾 Grava📋 Auditoria
Campo Tabela id
Campo VIEW / Exibido id_membro 🔹 Alias na VIEW: id_membro
Tipo number (readonly - PRIMARY KEY)
Data Table membros,auditor_membros 📋 Grava em auditoria
Descrição

Campo id

🔑 PRIMARY KEY

Campo na tabela: id

Alias na VIEW: id_membro

Readonly: ✅ Gerado automaticamente pelo sistema

Grava em auditoria: ✅ Sim

Formsearch: ✅ Permite busca avançada

👥 link: Membros participantes Coleta
📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
  • Autocomplete off
📊 Dados
  • Campo OndeVou id
  • Alias OndeVou id_membro
  • Tabela OndeVou membros,auditor_membros
🔍 Formsearch
  • {
      "required": ""
    }
🎮 Controls Acao
  • {
      "link": {
        "acao": "getMembrosParticipantes",
        "messagem": "Vínculos"
      }
    }
  • Alias: id_membro
  • Tabelas: membros, auditor_membros ✅
  • ControlsAcao: ✓
  • FormSearch: ✓
  • 🔑 PRIMARY KEY
  • VIEW: id_membro
  • 📋 Auditoria
  • 📋 FormSearch
📋 E-mail
✅ Obrigatório🔒 Somente leitura💾 Grava
Campo Tabela email
Campo VIEW / Exibido email_membro
Tipo text
Data Table membros
Descrição

Campo e-mail

📋 Todos os Atributos
Eventos
  • Tecla solta setInputFormatEmail(this) 📌 setInputFormatEmail
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Obrigatório ✅ Sim
  • Somente leitura 🔒 Sim
  • Autocomplete username
📊 Dados
  • Campo OndeVou email
  • Alias OndeVou email_membro
  • Tabela OndeVou membros
🔍 Formsearch
  • {
      "required": ""
    }
  • Alias: email_membro
  • Tabelas: membros ✅
  • Eventos: keyup
  • FormSearch: ✓
📋 Nome
✅ Obrigatório💾 Grava
Campo Tabela nome
Campo VIEW / Exibido nome_membro
Tipo text
Data Table membros
Descrição

Campo nome

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou nome
  • Alias OndeVou nome_membro
  • Tabela OndeVou membros
🔍 Formsearch
  • {
      "required": ""
    }
  • Alias: nome_membro
  • Tabelas: membros ✅
  • FormSearch: ✓
📋 CPF
✅ Obrigatório💾 Grava
Campo Tabela cpf
Campo VIEW / Exibido cpf_membro
Tipo text
Data Table membros
Descrição

Campo cpf

📋 Todos os Atributos
Eventos
  • Tecla solta setInputFormatCpf(this) 📌 setInputFormatCpf
  • Tecla pressionada/solta return SomenteNumero(event) 📌 return
🎨 Formatacao
  • Tipo de dados text
  • Máximo de caracteres 14
  • Mínimo de caracteres 14
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou cpf
  • Alias OndeVou cpf_membro
  • Tabela OndeVou membros
  • Alias: cpf_membro
  • Tabelas: membros ✅
  • Eventos: keyup
📋 Nova senha
👁️ Oculto💾 Grava
Campo Tabela nova_senha
Campo VIEW / Exibido nova_senha
Tipo text
Data Table membros
Descrição

Campo nova senha

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
  • Tipo de input password
Validacao
  • Autocomplete new-password
📊 Dados
  • Campo OndeVou nova_senha
  • Tabela OndeVou membros
  • Tabelas: membros ✅
  • Hidden: ✓ (dados ocultos)
📋 Confirme a senha
👁️ Oculto💾 Grava
Campo Tabela confirme_senha
Campo VIEW / Exibido confirme_senha
Tipo text
Data Table membros
Descrição

Campo confirme a senha

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
  • Tipo de input password
Validacao
  • Autocomplete new-password
📊 Dados
  • Campo OndeVou confirme_senha
  • Tabela OndeVou membros
  • Tabelas: membros ✅
  • Hidden: ✓ (dados ocultos)
📋 Cep
✅ Obrigatório💾 Grava🔗 getdata
Campo Tabela id_cep
Campo VIEW / Exibido cep (ID: id_cep)
Tipo number (getdata)
Data Table membros
Descrição

Campo cep

Getdata🔗 ruas
📋 Todos os Atributos
Eventos
  • Tecla solta setInputFormatApenasNumeros(this) 📌 setInputFormatApenasNumeros
  • Tecla pressionada/solta return SomenteNumero(event) 📌 return
  • Colar setInputFormatApenasNumeros(this) 📌 setInputFormatApenasNumeros
🎨 Formatacao
  • Tipo de dados number
  • Máximo de caracteres 8
  • Mínimo de caracteres 8
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou cep
  • ID OndeVou id_cep
  • Tabela OndeVou membros
🔗 Getdata
  • {
      "view": "view_ruas",
      "data": "view_ruas",
      "campo-data-id": "id_cep",
      "campo-data-value-input": "cep",
      "campo-data-input-select-view": "cep,nome_rua,nome_bairro,nome_cidade,sigla_uf",
      "query": {
        "select": "* from view_ruas",
        "where": {
          "and": {
            "texto_digitado": {
              "left": "(unaccent(LOWER(cep)) ilike `",
              "right": "%`)"
            }
          }
        }
      }
    }
  • ID: id_cep
  • Tabelas: membros ✅
  • Eventos: keyup, paste
  • Getmodal: ✓
📋 Rua
🔒 Somente leitura💾 Grava
Campo Tabela id_rua
Campo VIEW / Exibido nome_rua (ID: id_rua)
Tipo number
Data Table membros
Descrição

Campo rua

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_rua
  • Campo ErpLinux endereco
  • ID OndeVou id_rua
  • Tabela OndeVou membros
  • ID: id_rua
  • Tabelas: membros ✅
📋 Número
✅ Obrigatório💾 Grava
Campo Tabela numero
Campo VIEW / Exibido numero_membro
Tipo text
Data Table membros
Descrição

Campo número

📋 Todos os Atributos
Eventos
  • Tecla pressionada/solta return SomenteNumero(event) 📌 return
🎨 Formatacao
  • Tipo de dados text
Validacao
  • Obrigatório ✅ Sim
📊 Dados
  • Campo OndeVou numero
  • Alias OndeVou numero_membro
  • Campo ErpLinux numero
  • Tabela OndeVou membros
  • Alias: numero_membro
  • Tabelas: membros ✅
📋 Complemento
💾 Grava
Campo Tabela complemento
Campo VIEW / Exibido complemento_membro
Tipo text
Data Table membros
Descrição

Campo complemento

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
📊 Dados
  • Campo OndeVou complemento
  • Alias OndeVou complemento_membro
  • Campo ErpLinux compl_e1
  • Tabela OndeVou membros
  • Alias: complemento_membro
  • Tabelas: membros ✅
📋 Bairro
🔒 Somente leitura📋 Somente view
Campo Tabela id_bairro
Campo VIEW / Exibido nome_bairro ⚠️ (somente view)
Tipo number
Data Table view_membros
Descrição

Campo bairro

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_bairro
  • Campo ErpLinux bairro
  • ID OndeVou id_bairro
  • Tabela OndeVou view_membros
  • ID: id_bairro
  • Tabelas: view_membros (só view)
📋 Cidade
🔒 Somente leitura📋 Somente view
Campo Tabela id_cidade
Campo VIEW / Exibido nome_cidade ⚠️ (somente view)
Tipo number
Data Table view_membros
Descrição

Campo cidade

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou nome_cidade
  • Campo ErpLinux cidade
  • ID OndeVou id_cidade
  • Tabela OndeVou view_membros
  • ID: id_cidade
  • Tabelas: view_membros (só view)
📋 UF
🔒 Somente leitura📋 Somente view
Campo Tabela id_uf
Campo VIEW / Exibido sigla_uf ⚠️ (somente view)
Tipo number
Data Table view_membros
Descrição

Campo uf

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou sigla_uf
  • Campo ErpLinux estado
  • ID OndeVou id_uf
  • Tabela OndeVou view_membros
  • ID: id_uf
  • Tabelas: view_membros (só view)
📋 Telefone
💾 Grava
Campo Tabela telefone
Campo VIEW / Exibido telefone_membro
Tipo text
Data Table membros
Descrição

Campo telefone

📋 Todos os Atributos
Eventos
  • Tecla solta setInputFormatTelefone(this) 📌 setInputFormatTelefone
  • Tecla pressionada/solta return SomenteNumero(event) 📌 return
🎨 Formatacao
  • Tipo de dados text
📊 Dados
  • Campo OndeVou telefone
  • Alias OndeVou telefone_membro
  • Tabela OndeVou membros
  • Alias: telefone_membro
  • Tabelas: membros ✅
  • Eventos: keyup
📋 Whatsapp
💾 Grava
Campo Tabela whatsapp
Campo VIEW / Exibido whatsapp_membro
Tipo text
Data Table membros
Descrição

Campo whatsapp

📋 Todos os Atributos
Eventos
  • Tecla solta setInputFormatTelefone(this) 📌 setInputFormatTelefone
  • Tecla pressionada/solta return SomenteNumero(event) 📌 return
🎨 Formatacao
  • Tipo de dados text
📊 Dados
  • Campo OndeVou whatsapp
  • Alias OndeVou whatsapp_membro
  • Tabela OndeVou membros
  • Alias: whatsapp_membro
  • Tabelas: membros ✅
  • Eventos: keyup
📋 Facebook
💾 Grava
Campo Tabela facebook
Campo VIEW / Exibido facebook_membro
Tipo text
Data Table membros
Descrição

Campo facebook

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
📊 Dados
  • Campo OndeVou facebook
  • Alias OndeVou facebook_membro
  • Tabela OndeVou membros
  • Alias: facebook_membro
  • Tabelas: membros ✅
📋 Twitter
💾 Grava
Campo Tabela twitter
Campo VIEW / Exibido twitter_membro
Tipo text
Data Table membros
Descrição

Campo twitter

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
📊 Dados
  • Campo OndeVou twitter
  • Alias OndeVou twitter_membro
  • Tabela OndeVou membros
  • Alias: twitter_membro
  • Tabelas: membros ✅
📋 Instagram
💾 Grava
Campo Tabela instagram
Campo VIEW / Exibido instagram_membro
Tipo text
Data Table membros
Descrição

Campo instagram

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
📊 Dados
  • Campo OndeVou instagram
  • Alias OndeVou instagram_membro
  • Tabela OndeVou membros
  • Alias: instagram_membro
  • Tabelas: membros ✅
📋 Youtube
💾 Grava
Campo Tabela youtube
Campo VIEW / Exibido youtube_membro
Tipo text
Data Table membros
Descrição

Campo youtube

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
📊 Dados
  • Campo OndeVou youtube
  • Alias OndeVou youtube_membro
  • Tabela OndeVou membros
  • Alias: youtube_membro
  • Tabelas: membros ✅
📋 Site
💾 Grava
Campo Tabela site
Campo VIEW / Exibido site_membro
Tipo text
Data Table membros
Descrição

Campo site

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
📊 Dados
  • Campo OndeVou site
  • Alias OndeVou site_membro
  • Tabela OndeVou membros
  • Alias: site_membro
  • Tabelas: membros ✅
📋 Confirmado
👁️ Oculto💾 Grava
Campo Tabela email_confirmado
Campo VIEW / Exibido email_confirmado
Tipo text
Data Table membros
Descrição

Campo confirmado

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados text
📊 Dados
  • Campo OndeVou email_confirmado
  • Tabela OndeVou membros
  • Tabelas: membros ✅
  • Hidden: ✓ (dados ocultos)
📋 Membro movimentado
🔒 Somente leitura👁️ Oculto📋 Somente view
Campo Tabela id_membro_movimentado
Campo VIEW / Exibido id_membro ⚠️ (somente view)
Tipo number
Data Table membros_membros,auditor_membros
Descrição

Campo membro movimentado

📋 Todos os Atributos
🎨 Formatacao
  • Tipo de dados number
Validacao
  • Somente leitura 🔒 Sim
📊 Dados
  • Campo OndeVou id_membro_movimentado
  • Alias OndeVou id_membro
  • Tabela OndeVou membros_membros,auditor_membros
  • Alias: id_membro
  • Tabelas: membros_membros, auditor_membros (só view)
  • Hidden: ✓ (dados ocultos)
📌 Legenda: 🔑 PRIMARY KEY ✅ Obrigatório 🔒 Somente leitura 👁️ Oculto 💾 Grava 📋 Somente view 🔗 getdata 📝 putdata 🔢 AutoInc 📱 QR Code 📋 Auditoria 📱 GetCollector

🔗 Relacionamentos

Tabelas relacionadas via getdata.

ruas · Principal: Cep 📄

🔍 Filtros (formsearch)

Campos disponíveis para filtragem na busca.

Nenhum filtro disponível.

🎮 Controles Disponíveis

Ações que o usuário pode realizar na tabela.

📂 Controle
🔘 Add add 🔘 Copy copy 🔘 Edit edit 💾 Salvar save 🔘 Key key 🔘 Login login 🔘 Link link 🔘 Delete delete 🔘 Remove remove

👁️ View Associada

Nome: view_membros

🔑 PRIMARY KEY - Campo Id

O campo Id é a chave primária da tabela membros.

Configuração

'Id': {
    'input': {
        'readonly': 'readonly',
        'data-type-ondevou': 'number',
        'data-field-ondevou': 'id',
        "data-field-alias-ondevou": "id_membro",
        'data-table-ondevou': 'membros,auditor_membros'
    }
}

Comportamento

  • 🔒 Readonly: Campo não editável
  • 📊 Tipo: number
  • 🔹 Alias na VIEW: id_membro
  • 📋 Auditoria: Grava em membros,auditor_membros

🎮 Controls-Ação

📂 Coleta
link: Membros participantes getMembrosParticipantes

💾 JSON da Tabela

Estrutura completa em JSON para integração com APIs e IAs.

code Clique para ver o JSON completo 25 KB
{
  "table-id": "membros",
  "data-table-ondevou": "membros",
  "data-table-auditor": "auditor_membros",
  "data-table-getdata": "sim",
  "table-class": "highlight",
  "putdata": {
    "trigger": "setTableFromPutData()"
  },
  "controls": [
    "add",
    "copy",
    "edit",
    "save",
    "key",
    "login",
    "link",
    "delete",
    "remove"
  ],
  "html": {
    "div": {
      "before": "",
      "after": ""
    }
  },
  "routines": {
    "view": "165",
    "add": "56",
    "edit": "81"
  },
  "headers": {
    "Id": {
      "width": "7%"
    },
    "E-mail": {
      "width": "25%"
    },
    "Nome": {
      "width": "25%"
    },
    "CPF": {
      "width": "10%"
    },
    "Nova senha": {
      "type": "hidden",
      "width": "20%"
    },
    "Confirme a senha": {
      "type": "hidden",
      "width": "20%"
    },
    "Cep": {
      "width": "80px"
    },
    "Rua": {
      "width": "250px"
    },
    "Número": {
      "width": "70px"
    },
    "Complemento": {
      "width": "120px"
    },
    "Bairro": {
      "width": "150px"
    },
    "Cidade": {
      "width": "150px"
    },
    "UF": {
      "width": "40px"
    },
    "Telefone": {
      "width": "8%"
    },
    "Whatsapp": {
      "width": "8%"
    },
    "Facebook": {
      "width": "10%"
    },
    "Twitter": {
      "width": "10%"
    },
    "Instagram": {
      "width": "10%"
    },
    "Youtube": {
      "width": "10%"
    },
    "Site": {
      "width": "10%"
    },
    "Confirmado": {
      "type": "hidden"
    },
    "Membro movimentado": {
      "type": "hidden"
    }
  },
  "columns": {
    "Id": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "autocomplete": "off",
        "data-field-ondevou": "id",
        "data-field-alias-ondevou": "id_membro",
        "data-table-ondevou": "membros,auditor_membros",
        "controls-acao": {
          "link": {
            "acao": "getMembrosParticipantes",
            "messagem": "Vínculos"
          }
        },
        "formsearch": {
          "required": ""
        }
      }
    },
    "E-mail": {
      "input": {
        "required": "required",
        "readonly": "readonly",
        "data-type-ondevou": "text",
        "data-field-ondevou": "email",
        "data-field-getdata": "email_membro",
        "data-field-alias-ondevou": "email_membro",
        "autocomplete": "username",
        "onkeyup": "setInputFormatEmail(this)",
        "data-table-ondevou": "membros",
        "formsearch": {
          "required": ""
        }
      }
    },
    "Nome": {
      "input": {
        "required": "required",
        "data-type-ondevou": "text",
        "data-field-ondevou": "nome",
        "data-field-alias-ondevou": "nome_membro",
        "data-table-ondevou": "membros",
        "formsearch": {
          "required": ""
        }
      }
    },
    "CPF": {
      "input": {
        "required": "required",
        "data-type-ondevou": "text",
        "data-field-ondevou": "cpf",
        "data-field-getdata": "cpf",
        "data-field-alias-ondevou": "cpf_membro",
        "maxlength": "14",
        "minlength": "14",
        "onkeypress": "return SomenteNumero(event)",
        "onkeyup": "setInputFormatCpf(this)",
        "data-table-ondevou": "membros"
      }
    },
    "Nova senha": {
      "input": {
        "type": "password",
        "data-type-ondevou": "text",
        "data-field-ondevou": "nova_senha",
        "autocomplete": "new-password",
        "data-table-ondevou": "membros"
      }
    },
    "Confirme a senha": {
      "input": {
        "type": "password",
        "data-type-ondevou": "text",
        "data-field-ondevou": "confirme_senha",
        "autocomplete": "new-password",
        "data-table-ondevou": "membros"
      }
    },
    "Cep": {
      "input": {
        "required": "required",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_cep",
        "maxlength": "8",
        "minlength": "8",
        "data-field-ondevou": "cep",
        "data-table-ondevou": "membros",
        "onkeypress": "return SomenteNumero(event)",
        "onkeyup": "setInputFormatApenasNumeros(this)",
        "onpaste": "setInputFormatApenasNumeros(this)",
        "getdata": "{\"view\":\"view_ruas\",\"data\":\"view_ruas\",\"campo-data-id\":\"id_cep\",\"campo-data-value-input\":\"cep\",\"campo-data-input-select-view\":\"cep,nome_rua,nome_bairro,nome_cidade,sigla_uf\",\"query\":{\"select\":\"* from view_ruas\",\"where\":{\"and\":{\"texto_digitado\":{\"left\":\"(unaccent(LOWER(cep)) ilike `\",\"right\":\"%`)\"}}}}}",
        "getmodal": "{\"icon\":\"add_box\",\"title\":\"Criar endereço\",\"modal\":\"\",\"table-add\":\"addTableRuas\",\"table-setups\":\"{\\\"search\\\":\\\"nao\\\",\\\"html\\\":\\\"sim\\\",\\\"table-rows-limit\\\":\\\"1\\\",\\\"data-view\\\":\\\"form\\\",\\\"controls\\\":[\\\"info\\\",\\\"add\\\",\\\"map\\\",\\\"save\\\"]}\"}"
      }
    },
    "Rua": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_rua",
        "data-field-ondevou": "nome_rua",
        "data-field-erplinux": "endereco",
        "data-table-ondevou": "membros"
      }
    },
    "Número": {
      "input": {
        "required": "required",
        "data-type-ondevou": "text",
        "data-field-ondevou": "numero",
        "data-field-erplinux": "numero",
        "data-field-alias-ondevou": "numero_membro",
        "onkeypress": "return SomenteNumero(event)",
        "data-table-ondevou": "membros"
      }
    },
    "Complemento": {
      "input": {
        "data-type-ondevou": "text",
        "data-field-ondevou": "complemento",
        "data-field-erplinux": "compl_e1",
        "data-field-alias-ondevou": "complemento_membro",
        "data-table-ondevou": "membros"
      }
    },
    "Bairro": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_bairro",
        "data-field-ondevou": "nome_bairro",
        "data-field-erplinux": "bairro",
        "data-table-ondevou": "view_membros"
      }
    },
    "Cidade": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_cidade",
        "data-field-ondevou": "nome_cidade",
        "data-field-getdata": "id_cidade",
        "data-field-erplinux": "cidade",
        "data-table-ondevou": "view_membros"
      }
    },
    "UF": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-id-field-ondevou": "id_uf",
        "data-field-ondevou": "sigla_uf",
        "data-field-erplinux": "estado",
        "data-table-ondevou": "view_membros"
      }
    },
    "Telefone": {
      "input": {
        "data-type-ondevou": "text",
        "data-field-ondevou": "telefone",
        "data-field-alias-ondevou": "telefone_membro",
        "onkeypress": "return SomenteNumero(event)",
        "onkeyup": "setInputFormatTelefone(this)",
        "data-table-ondevou": "membros"
      }
    },
    "Whatsapp": {
      "input": {
        "data-type-ondevou": "text",
        "data-field-ondevou": "whatsapp",
        "data-field-alias-ondevou": "whatsapp_membro",
        "onkeypress": "return SomenteNumero(event)",
        "onkeyup": "setInputFormatTelefone(this)",
        "data-table-ondevou": "membros"
      }
    },
    "Facebook": {
      "input": {
        "data-type-ondevou": "text",
        "data-field-ondevou": "facebook",
        "data-field-alias-ondevou": "facebook_membro",
        "data-table-ondevou": "membros"
      }
    },
    "Twitter": {
      "input": {
        "data-type-ondevou": "text",
        "data-field-ondevou": "twitter",
        "data-field-alias-ondevou": "twitter_membro",
        "data-table-ondevou": "membros"
      }
    },
    "Instagram": {
      "input": {
        "data-type-ondevou": "text",
        "data-field-ondevou": "instagram",
        "data-field-alias-ondevou": "instagram_membro",
        "data-table-ondevou": "membros"
      }
    },
    "Youtube": {
      "input": {
        "data-type-ondevou": "text",
        "data-field-ondevou": "youtube",
        "data-field-alias-ondevou": "youtube_membro",
        "data-table-ondevou": "membros"
      }
    },
    "Site": {
      "input": {
        "data-type-ondevou": "text",
        "data-field-ondevou": "site",
        "data-field-alias-ondevou": "site_membro",
        "data-table-ondevou": "membros"
      }
    },
    "Confirmado": {
      "input": {
        "data-type-ondevou": "text",
        "data-field-ondevou": "email_confirmado",
        "data-table-ondevou": "membros"
      }
    },
    "Membro movimentado": {
      "input": {
        "readonly": "readonly",
        "data-type-ondevou": "number",
        "data-field-ondevou": "id_membro_movimentado",
        "data-field-alias-ondevou": "id_membro",
        "data-table-ondevou": "membros_membros,auditor_membros"
      }
    }
  },
  "formsearch": {
    "data-table-ondevou": "view_membros",
    "data-view-ondevou": "view_membros",
    "data-where-order": "order by id_membro desc",
    "input": {}
  },
  "dashboard": {
    "enabled": true,
    "theme": "modern",
    "layout": "free",
    "auto_refresh": false,
    "header": {
      "logo": {
        "src": "img/ondevou_plataforma.png",
        "alt": "OndeVou Plataforma",
        "class": "dashboard-logo-img"
      },
      "title": "MEMBROS",
      "subtitle": "Cadastro de Membros da Plataforma",
      "filters_area": {
        "container_id": "dashboard-filters-area",
        "empty_message": "Sem filtros"
      },
      "actions": [
        {
          "type": "button",
          "container_id": "dashboard-atualizar-dados",
          "class": "dashboard-btn dashboard-btn-sm dashboard-btn-primary",
          "icon": "fas fa-sync-alt",
          "text": "Atualizar",
          "action": "dashboard_refreshData",
          "title": "Atualizar Dados"
        },
        {
          "type": "button",
          "container_id": "dashboard-voltar-dados",
          "class": "dashboard-btn dashboard-btn-sm dashboard-btn-outline",
          "icon": "fas fa-table",
          "text": "Voltar para dados",
          "action": "voltarParaDadosFromDashboard",
          "title": "Voltar para dados"
        },
        {
          "type": "button",
          "container_id": "dashboard-auto-refresh",
          "class": "dashboard-btn dashboard-btn-sm dashboard-btn-info",
          "icon": "fas fa-clock",
          "text": "Auto-Refresh",
          "action": "dashboard_toggleAutoRefresh",
          "title": "Alternar escuta automática de dados"
        }
      ]
    },
    "sections": {
      "bloco1_resumo_executivo": {
        "type": "summary_cards_full",
        "title": "RESUMO EXECUTIVO - MEMBROS",
        "class": "dashboard-section dashboard-section-full-width",
        "icon": "👤",
        "config": {
          "container_id": "cards-resumo-executivo",
          "size": "full",
          "cards": [
            {
              "title": "TOTAL DE MEMBROS",
              "value": "COUNT:id_membro",
              "format": "numero",
              "decimals": 0,
              "suffix": " membros",
              "icon": "👤",
              "color": "#2c3e50"
            },
            {
              "title": "COM TELEFONE",
              "value": "COUNT:id_membro",
              "filters": "telefone_membro IS NOT NULL AND telefone_membro != \"\"",
              "format": "numero",
              "decimals": 0,
              "suffix": " membros",
              "icon": "📞",
              "color": "#3498db"
            },
            {
              "title": "TAXA DE TELEFONE",
              "value": "CALC:(COUNT(id_membro where telefone_membro IS NOT NULL AND telefone_membro != \"\")/COUNT(id_membro))*100",
              "format": "numero",
              "decimals": 1,
              "suffix": "%",
              "icon": "📊",
              "color": "#3498db"
            },
            {
              "title": "COM WHATSAPP",
              "value": "COUNT:id_membro",
              "filters": "whatsapp_membro IS NOT NULL AND whatsapp_membro != \"\"",
              "format": "numero",
              "decimals": 0,
              "suffix": " membros",
              "icon": "💬",
              "color": "#27ae60"
            },
            {
              "title": "TAXA DE WHATSAPP",
              "value": "CALC:(COUNT(id_membro where whatsapp_membro IS NOT NULL AND whatsapp_membro != \"\")/COUNT(id_membro))*100",
              "format": "numero",
              "decimals": 1,
              "suffix": "%",
              "icon": "📊",
              "color": "#27ae60"
            },
            {
              "title": "COM ENDEREÇO COMPLETO",
              "value": "COUNT:id_membro",
              "filters": "id_rua IS NOT NULL AND id_rua != \"\" AND numero_membro IS NOT NULL AND numero_membro != \"\"",
              "format": "numero",
              "decimals": 0,
              "suffix": " membros",
              "icon": "📍",
              "color": "#8e44ad"
            },
            {
              "title": "TAXA DE ENDEREÇO",
              "value": "CALC:(COUNT(id_membro where id_rua IS NOT NULL AND id_rua != \"\" AND numero_membro IS NOT NULL AND numero_membro != \"\")/COUNT(id_membro))*100",
              "format": "numero",
              "decimals": 1,
              "suffix": "%",
              "icon": "📊",
              "color": "#8e44ad"
            },
            {
              "title": "COM REDES SOCIAIS",
              "value": "COUNT:id_membro",
              "filters": "facebook_membro IS NOT NULL AND facebook_membro != \"\" OR instagram_membro IS NOT NULL AND instagram_membro != \"\"",
              "format": "numero",
              "decimals": 0,
              "suffix": " membros",
              "icon": "📱",
              "color": "#f39c12"
            }
          ]
        }
      },
      "bloco2_metricas_detalhadas": {
        "type": "summary_cards_grid",
        "title": "MÉTRICAS DETALHADAS",
        "class": "dashboard-section dashboard-section-full-width",
        "icon": "🔢",
        "config": {
          "container_id": "cards-metricas-detalhadas",
          "size": "full",
          "sections": [
            {
              "title": "📍 DISTRIBUIÇÃO GEOGRÁFICA",
              "cards": [
                {
                  "title": "UFs ATENDIDAS",
                  "value": "COUNT_DISTINCT:sigla_uf",
                  "filters": "sigla_uf IS NOT NULL AND sigla_uf != \"\"",
                  "format": "numero",
                  "decimals": 0,
                  "icon": "🗺️",
                  "color": "#3498db"
                },
                {
                  "title": "CIDADES ATENDIDAS",
                  "value": "COUNT_DISTINCT:nome_cidade",
                  "filters": "nome_cidade IS NOT NULL AND nome_cidade != \"\"",
                  "format": "numero",
                  "decimals": 0,
                  "icon": "🏙️",
                  "color": "#27ae60"
                },
                {
                  "title": "UF MAIS ATENDIDA",
                  "group_by": "sigla_uf",
                  "value": "METRICA_AGRUPAMENTO:moda",
                  "filters": "sigla_uf IS NOT NULL AND sigla_uf != \"\"",
                  "format": "texto",
                  "icon": "🥇",
                  "color": "#f1c40f"
                },
                {
                  "title": "CIDADE MAIS ATENDIDA",
                  "group_by": "nome_cidade",
                  "value": "METRICA_AGRUPAMENTO:moda",
                  "filters": "nome_cidade IS NOT NULL AND nome_cidade != \"\"",
                  "format": "texto",
                  "icon": "🏙️",
                  "color": "#f39c12"
                }
              ]
            },
            {
              "title": "📱 PRESENÇA DIGITAL",
              "cards": [
                {
                  "title": "COM FACEBOOK",
                  "value": "COUNT:id_membro",
                  "filters": "facebook_membro IS NOT NULL AND facebook_membro != \"\"",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " membros",
                  "icon": "📘",
                  "color": "#3b5998"
                },
                {
                  "title": "COM INSTAGRAM",
                  "value": "COUNT:id_membro",
                  "filters": "instagram_membro IS NOT NULL AND instagram_membro != \"\"",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " membros",
                  "icon": "📷",
                  "color": "#e4405f"
                },
                {
                  "title": "COM SITE",
                  "value": "COUNT:id_membro",
                  "filters": "site_membro IS NOT NULL AND site_membro != \"\"",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " membros",
                  "icon": "🌐",
                  "color": "#1abc9c"
                },
                {
                  "title": "COM YOUTUBE",
                  "value": "COUNT:id_membro",
                  "filters": "youtube_membro IS NOT NULL AND youtube_membro != \"\"",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " membros",
                  "icon": "▶️",
                  "color": "#ff0000"
                }
              ]
            }
          ]
        }
      },
      "bloco3_distribuicao_uf": {
        "type": "charts_grid_section",
        "title": "DISTRIBUIÇÃO POR UF",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "🗺️",
        "config": {
          "container_id": "distribuicao-uf",
          "charts": [
            {
              "type": "chart_pie",
              "config": {
                "container_id": "graf-uf-pizza",
                "data_config": {
                  "group_by": "sigla_uf",
                  "operation": "COUNT:id_membro",
                  "filters": "sigla_uf IS NOT NULL AND sigla_uf != \"\""
                },
                "display_config": {
                  "title": "MEMBROS POR UF",
                  "donut": true,
                  "show_percentages": true,
                  "show_values": true,
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " membros",
                  "height": "350px"
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-uf-ranking",
                "data_config": {
                  "group_by": "sigla_uf",
                  "operation": "COUNT:id_membro",
                  "filters": "sigla_uf IS NOT NULL AND sigla_uf != \"\""
                },
                "display_config": {
                  "title": "RANKING POR UF",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " membros",
                  "height": "350px",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            }
          ]
        }
      },
      "bloco4_distribuicao_cidade": {
        "type": "charts_grid_section",
        "title": "DISTRIBUIÇÃO POR CIDADE",
        "class": "dashboard-section dashboard-section-full-width",
        "grid_class": "dashboard-section-grid-2",
        "icon": "🏙️",
        "config": {
          "container_id": "distribuicao-cidade",
          "charts": [
            {
              "type": "chart_pie",
              "config": {
                "container_id": "graf-cidade-pizza",
                "data_config": {
                  "group_by": "nome_cidade",
                  "operation": "COUNT:id_membro",
                  "filters": "nome_cidade IS NOT NULL AND nome_cidade != \"\""
                },
                "display_config": {
                  "title": "TOP CIDADES",
                  "donut": true,
                  "show_percentages": true,
                  "show_values": true,
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " membros",
                  "height": "350px",
                  "limit": 10
                }
              }
            },
            {
              "type": "chart_bar_aggregated",
              "config": {
                "container_id": "graf-cidade-ranking",
                "data_config": {
                  "group_by": "nome_cidade",
                  "operation": "COUNT:id_membro",
                  "filters": "nome_cidade IS NOT NULL AND nome_cidade != \"\""
                },
                "display_config": {
                  "title": "TODAS AS CIDADES",
                  "layout": "ranking",
                  "format": "numero",
                  "decimals": 0,
                  "suffix": " membros",
                  "height": "400px",
                  "sort_by": "value",
                  "sort_order": "DESC"
                }
              }
            }
          ]
        }
      },
      "bloco5_qualidade_cadastro": {
        "type": "summary_cards_grid",
        "title": "QUALIDADE DO CADASTRO",
        "class": "dashboard-section dashboard-section-full-width",
        "icon": "✅",
        "config": {
          "container_id": "cards-qualidade-cadastro",
          "size": "full",
          "sections": [
            {
              "title": "📊 COMPLETUDE DOS DADOS",
              "cards": [
                {
                  "title": "TAXA DE CPF",
                  "value": "CALC:(COUNT(id_membro where cpf_membro IS NOT NULL AND cpf_membro != \"\")/COUNT(id_membro))*100",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": "%",
                  "icon": "🆔",
                  "color": "#3498db"
                },
                {
                  "title": "TAXA DE TELEFONE",
                  "value": "CALC:(COUNT(id_membro where telefone_membro IS NOT NULL AND telefone_membro != \"\")/COUNT(id_membro))*100",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": "%",
                  "icon": "📞",
                  "color": "#27ae60"
                },
                {
                  "title": "TAXA DE WHATSAPP",
                  "value": "CALC:(COUNT(id_membro where whatsapp_membro IS NOT NULL AND whatsapp_membro != \"\")/COUNT(id_membro))*100",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": "%",
                  "icon": "💬",
                  "color": "#f39c12"
                },
                {
                  "title": "TAXA DE ENDEREÇO",
                  "value": "CALC:(COUNT(id_membro where id_rua IS NOT NULL AND id_rua != \"\" AND numero_membro IS NOT NULL AND numero_membro != \"\")/COUNT(id_membro))*100",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": "%",
                  "icon": "📍",
                  "color": "#8e44ad"
                },
                {
                  "title": "TAXA DE SITE",
                  "value": "CALC:(COUNT(id_membro where site_membro IS NOT NULL AND site_membro != \"\")/COUNT(id_membro))*100",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": "%",
                  "icon": "🌐",
                  "color": "#1abc9c"
                },
                {
                  "title": "TAXA DE REDES SOCIAIS",
                  "value": "CALC:(COUNT(id_membro where facebook_membro IS NOT NULL AND facebook_membro != \"\" OR instagram_membro IS NOT NULL AND instagram_membro != \"\")/COUNT(id_membro))*100",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": "%",
                  "icon": "📱",
                  "color": "#9b59b6"
                }
              ]
            },
            {
              "title": "📊 ÍNDICE DE COMPLETUDE (MÉDIA)",
              "cards": [
                {
                  "title": "COMPLETUDE MÉDIA",
                  "value": "CALC:((COUNT(id_membro where cpf_membro IS NOT NULL AND cpf_membro != \"\")/COUNT(id_membro))*100 + (COUNT(id_membro where telefone_membro IS NOT NULL AND telefone_membro != \"\")/COUNT(id_membro))*100 + (COUNT(id_membro where id_rua IS NOT NULL AND id_rua != \"\" AND numero_membro IS NOT NULL AND numero_membro != \"\")/COUNT(id_membro))*100)/3",
                  "format": "numero",
                  "decimals": 1,
                  "suffix": "%",
                  "icon": "📊",
                  "color": "#2c3e50"
                },
                {
                  "title": "NÍVEL DE COMPLETUDE",
                  "value": "CALC:round((((COUNT(id_membro where cpf_membro IS NOT NULL AND cpf_membro != \"\")/COUNT(id_membro))*100 + (COUNT(id_membro where telefone_membro IS NOT NULL AND telefone_membro != \"\")/COUNT(id_membro))*100 + (COUNT(id_membro where id_rua IS NOT NULL AND id_rua != \"\" AND numero_membro IS NOT NULL AND numero_membro != \"\")/COUNT(id_membro))*100)/3))",
                  "format": "texto",
                  "icon": "🏆",
                  "color": "#f1c40f"
                }
              ]
            }
          ]
        }
      }
    }
  },
  "url_documentacao": "/docs/ondevou-db-membros.html",
  "nome_tabela": "membros"
}

📝 SQL CREATE TABLE - Estrutura Completa

Comando SQL COMPLETO para criar a tabela membros no PostgreSQL. Esta estrutura foi extraída DIRETAMENTE do banco de dados.

🏗️ Estrutura Completa

📋 25 colunas 🔗 4 constraints 📑 6 índices ⚡ 0 triggers
code Clique para ver o SQL completo ✅ COMPLETO
-- ============================================================
-- ESTRUTURA COMPLETA DA TABELA membros
-- Fonte: PostgreSQL - 12/08/2026 10:24:30
-- ============================================================

CREATE TABLE public.membros (
    id integer NOT NULL DEFAULT nextval('membros_id_seq'::regclass),
    email varchar(255),
    nome varchar(255) NOT NULL,
    telefone varchar(255),
    whatsapp varchar(255),
    facebook varchar(255),
    twitter varchar(255),
    instagram varchar(255),
    youtube varchar(255),
    site varchar(255),
    foto_capa varchar(255),
    foto_perfil varchar(255),
    id_facebook varchar(255),
    id_rua integer,
    latitude numeric(25, 20),
    longitude numeric(25, 20),
    numero varchar(255),
    complemento varchar(255),
    senha_atual varchar(255),
    senha_anterior varchar(255),
    cadastro_confirmado char(1) DEFAULT 'N'::bpchar,
    id_google varchar(255),
    foto_perfil_google varchar(255),
    foto_perfil_facebook varchar(255),
    cpf varchar(255),
    CONSTRAINT membros_pkey PRIMARY KEY (id),
    CONSTRAINT membros_unique_email UNIQUE (email),
    CONSTRAINT 2200_221621_1_not_null CHECK (id IS NOT NULL),
    CONSTRAINT 2200_221621_3_not_null CHECK (nome IS NOT NULL)
);

-- ============================================================
-- ÍNDICES
-- ============================================================
CREATE INDEX idx_membros_id_google ON public.membros USING btree (id_google);
CREATE INDEX idx_membros_id_rua ON public.membros USING btree (id_rua);
CREATE INDEX membros_idx_id_facebook ON public.membros USING btree (id_facebook);
CREATE INDEX membros_idx_nome ON public.membros USING gin (to_tsvector('mydict'::regconfig, (nome)::text));
CREATE UNIQUE INDEX membros_pk_id ON public.membros USING btree (id);
CREATE UNIQUE INDEX membros_unique_email ON public.membros USING btree (email);

SQL extraído DIRETAMENTE do banco de dados

📊 Comparação: JSON Config vs Banco Real

Verifique se a configuração JSON está sincronizada com a estrutura do banco de dados.

Campo Tipo (JSON) Tipo (Banco) Status
cadastro_confirmado - character ❌ Só no banco
cep number - ⚠️ Só no JSON
complemento text character varying ✅ OK
confirme_senha text - ⚠️ Só no JSON
cpf text character varying ✅ OK
email text character varying ✅ OK
email_confirmado text - ⚠️ Só no JSON
facebook text character varying ✅ OK
foto_capa - character varying ❌ Só no banco
foto_perfil - character varying ❌ Só no banco
foto_perfil_facebook - character varying ❌ Só no banco
foto_perfil_google - character varying ❌ Só no banco
id number integer ✅ OK
id_facebook - character varying ❌ Só no banco
id_google - character varying ❌ Só no banco
id_membro_movimentado number - ⚠️ Só no JSON
id_rua - integer ❌ Só no banco
instagram text character varying ✅ OK
latitude - numeric ❌ Só no banco
longitude - numeric ❌ Só no banco
nome text character varying ✅ OK
nome_bairro number - ⚠️ Só no JSON
nome_cidade number - ⚠️ Só no JSON
nome_rua number - ⚠️ Só no JSON
nova_senha text - ⚠️ Só no JSON
numero text character varying ✅ OK
senha_anterior - character varying ❌ Só no banco
senha_atual - character varying ❌ Só no banco
sigla_uf number - ⚠️ Só no JSON
site text character varying ✅ OK
telefone text character varying ✅ OK
twitter text character varying ✅ OK
whatsapp text character varying ✅ OK
youtube text character varying ✅ OK

💡 Dica: Use esta comparação para garantir que a configuração JSON está atualizada com a estrutura do banco.
📌 Legenda: ✅ OK = presente em ambos | ⚠️ Só no JSON = pode ser um campo virtual | ❌ Só no banco = falta adicionar ao JSON

💡 Como Popular a Tabela

Exemplo prático usando o padrão OndeVou.

📋 Fluxo completo padrão

// 1. Buscar dados com getData
var dados_retorno = getData({
    'query': `SELECT * FROM view_membros WHERE participante = ${globais.dados_fixo.participante}`,
    'view': 'view_membros'
});

// 2. Definir painel e slide
var painel = globais.dados_pagina.visivel.painel;
var slide = globais.dados_pagina.visivel.slide;

// 3. Encontrar a tabela no DOM
var idTable = getIdTableFromSlide({ 'table-id': 'membros' });

// 4. Resetar a tabela
setTableControlsReset(idTable);

// 5. Popular a tabela
setTableControlsSetValue(idTable, dados_retorno);

🏆 Propriedade Intelectual

OndeVou.com Marca Registrada

Marca Registrada

OndeVou.com®

Propriedade Intelectual Assegurada

Processo INPI:
908765967
Titular:
ONDEVOU.COM TECNOLOGIA LTDA
CNPJ:
17.058.605/0001-36
Classificação:
Classe 42 - Serviços de TI