mapimoveis

Terra — estado da entrega

Atualizado em 8 de setembro de 2026. As migrações foram aplicadas após autorização explícita do proprietário e o Raio-X está implantado. Este código está pronto para a sequência de publicação. Os limites de validação abaixo continuam válidos após publicar.

Funcionalidades

Etapa Entrega Validação
0 — Base Terra consolidado no GitHub, sem dados demonstrativos nem salvamento em memória; módulos separados; fotos em bucket privado Publicado anteriormente; assinatura de fotos reconferida na API
1 — Marketplace URL individual, favoritos, compartilhamento, WhatsApp com registro do contato, visualizações, situações, denúncias e perfil do anunciante Migração aplicada; testes de isolamento, métricas, favoritos e visibilidade passaram
2 — Busca e conta Filtros avançados, m²/ha, buscas salvas, alertas internos, similares, comparação de 2 a 4 terrenos e painel da conta Migração aplicada; geração de alertas e pesquisa real verificadas
3 — Mapa e cadastro Busca pela área visível ou polígono; coordenadas; GeoJSON/KML/KMZ; distâncias dos vértices; campos urbanos/rurais Interseção PostGIS testada na API; importadores cobertos por testes automatizados
4 — Raio-X Referência central da cidade e amostras de altitude reais, com indicação de indisponibilidade Função implantada e chamada pela API; limitada a anúncios públicos

TerraScore e inteligência de preço regional continuam fora da entrega. Existem apenas três anúncios públicos de teste, sem volume representativo para comparar o mercado. Preço por m² é a divisão do preço anunciado pela área calculada.

Privacidade

Situação Busca padrão Link individual e fotos Edição
Rascunho Apenas Meus terrenos Proprietário Proprietário
Ativo Público Público Proprietário
Reservado Público, identificado Público Proprietário
Vendido Fora da busca padrão Público, identificado Proprietário
Pausado Apenas Meus terrenos Proprietário Proprietário

O perfil público inclui nome, foto, cidade, tipo de anunciante e número de anúncios ativos. Avatares usam um bucket público separado. O WhatsApp fica em tabela privada e só é fornecido no fluxo de contato quando habilitado; não existe verificação automática do telefone. Favoritos, buscas e notificações pertencem à conta. O anunciante recebe métricas agregadas; identificadores brutos de visitantes não ficam disponíveis na API. Denúncias ficam pendentes de revisão administrativa.

O Raio-X lê o anúncio como visitante anônimo, com filtro público, antes de qualquer cache ou consulta externa. O JWT do proprietário não é encaminhado nem pode liberar rascunhos ou pausados. Essa restrição resolveu a rejeição automática da implementação inicial, que poderia encaminhar coordenadas privadas aos provedores.

Verificação

Os testes JavaScript usam respostas controladas; os testes KML adaptam o parser XML no Node. Não houve teste visual/funcional em navegador desktop ou mobile, nem login social real. O ambiente Sites desta sessão não oferece preview compatível com o projeto estático. A validação com duas contas ocorreu no SQL, não no formulário do site. Não descrever esses testes como cobertura completa de ponta a ponta.

As migrações em supabase/migrations usam versões retornadas pelo serviço do Supabase. O teste real identificou e corrigiu o operador PostGIS &&, agora qualificado como operator(public.&&) para manter search_path vazio. Não foi criada uma segunda base nem apagado o esquema existente. Detalhes em DATABASE.md.

Pendências para lançamento comercial

Apontamentos do Supabase

RLS sem políticas nas tabelas de eventos, contatos recebidos e visualizações é intencional: não há acesso direto de anon/authenticated; funções restritas registram e agregam esses dados.

Permanecem apontamentos anteriores: spatial_ref_sys sem RLS, PostGIS em public, st_estimatedextent acessível pela API e proteção contra senhas vazadas desativada. Não mover a extensão sem uma migração específica de compatibilidade. A execução pública de rls_auto_enable foi revogada nesta entrega.

A versão anterior do site permanece disponível para recuperação. Um retorno do front-end não desfaz a visibilidade autorizada de reservados/vendidos e perfis. Não apagar tabelas nem executar scripts históricos novamente como reversão.

Fontes: Photon, ViaCEP, Open Topo Data / SRTM, OpenStreetMap.