evotalks-gestao-imoveis

Gerenciamento de Imóveis — extensão do EvoTalks

Porte do portal de taxas do William Imóveis para dentro do EvoTalks, como extensão nativa: um menu superior Gerenciamento de Imóveis com três telas — Imóveis, Campos e Histórico.

Registra, por imóvel, informações que não aparecem no site (taxas, IPTU, encargos, observações da administração) e que precisam chegar a quem atende.

No portal (Docker + Postgres + n8n) Aqui (extensão)
/imoveis + /imovel/:codigo tela Imóveis — lista, filtros, 🟢/🟡 e o formulário de lançamento
/campos tela Campos — os cinco tipos, recorrência padrão, ativar/desativar/apagar
/historico tela Histórico — quem, quando, de → para, com filtros
/consultas removida na 0.3.0 — o que a IA consulta se vê no MCP do portal, não aqui
/login, /usuarios, CSRF, sessão some: a extensão herda o usuário logado do EvoTalks
espelho Postgres + sync 6h + XML some: o catálogo já está na instância (products)

Arquivos

manifest.json          identidade, config e as contribuições (o menu e os 3 itens)
app/comum.js           SDK omni, persistência, catálogo, formatação — a camada que as 3 telas usam
app/estilo.css         tema por tokens --ext-* (segue a whitelabel da instância)
app/imoveis.html       lista + detalhe do imóvel
app/campos.html        definição dos campos
app/historico.html     eventos de edição

Onde o dado mora (e o que trocar depois)

Piloto: omni.storage — por instalação e por usuário, no navegador dele, ~262 mil caracteres. Outro computador começa vazio. Serve para validar as telas, não para produção.

A troca por armazenamento compartilhado mexe em um lugar só: as funções ler/gravar de app/comum.js. Os candidatos, em ordem de esforço:

  1. Armazenamento Permanente do EvoTalks (POST /int/createPersistentStorageItem, até 10.000 itens de 4 KB) via omni.http.request, com apiKey + queueId em config — sem infra nossa.
  2. Backend próprio com HTTPS público, como o Cockpit GEOvendas faz.

As telas leem products por omni.data.request (blueprint Sails, com where/limit/skip). Se o where for recusado, o código cai para leitura paginada e filtro local — a tela mostra qual caminho respondeu, no rodapé da lista.

O recorte do catálogo vem da configuração da instalação:

chave padrão para quê
marca WILLIAM IMÓVEIS BOULEVARD filtra o brand — é o que separa os imóveis do resto do catálogo
prefixoCodigo 535 o código do site não mostra o prefixo da imobiliária (53500600060)
rotulo imóvel palavra usada nos textos

Instalar

extension_installs_probe_manifest  { manifesturl }                    → installable: true
extension_installs_install         { manifesturl, label,
                                     filters: { include: { userIds: [SEU_ID] } } }

Sempre restrito a você primeiro: a entrega é imediata para todo usuário que caia no filtro.

Limites conhecidos

Contexto