🌐 Vitrine pública com solicitação de orçamento online
Agora o cliente pode entrar no seu site, montar a seleção e te enviar a solicitação sem você ficar perguntando "qual pacote?", "quantos convidados?" no WhatsApp.
🔗 Cada buffet ganha uma URL própria: festero.com.br/v/seu-buffet
📲 Você compartilha esse link onde quiser: Instagram, Google Meu Negócio, biolink, WhatsApp
🛒 O cliente acessa, vê seus pacotes e itens e monta o pedido dele
📥 A solicitação cai no painel Solicitações (item novo no menu lateral, ao lado de Orçamentos)
🔁 Quando quiser, vira um orçamento com o fluxo que você já conhece — sem aprender nada novo
🤝 Coexiste com o orçamento atual: se preferir continuar do jeito que está, nada muda. A vitrine é uma porta de entrada extra, totalmente opcional
🪪 Slug editável com redirect automático: se você renomear depois, links antigos continuam funcionando
💰 Por pacote você decide: "Consulte" (esconde preço) ou preço cheio
💸 Por item você decide: mostra ou esconde preço (útil pra coisas que dependem de quantidade)
🛡️ Anti-spam invisível: bloqueamos formulários automatizados via Cloudflare, sem incomodar quem é cliente de verdade
🔔 Você é avisado assim que uma solicitação chega: in-app + e-mail (WhatsApp em breve)
🔒 LGPD: solicitações expiram em 7 dias se não respondidas e são removidas automaticamente após 90 dias
Como ativar: Empresa → Vitrine → role até "Modo Catálogo Público" → defina o slug → ative. Depois é só ir em Catálogo e publicar pacotes/itens individualmente
📢 Banner global de comunicados e incidentes
Novo canal interno para avisar todos os usuários sobre manutenções, lentidão, indisponibilidade ou novidades de produto — sem depender de e-mail manual.
🟦 Informativo (azul) — novidades e avisos gerais
🟨 Atenção (amarelo) — manutenção programada, lentidão pontual
🟥 Crítico (vermelho) — indisponibilidade, falha grave (não-dispensável por padrão)
🕐 Janela automática (início/fim), dispensável ou não, botão de ação opcional ("Saiba mais")
✏️ Aceita negrito e links na mensagem
🛠️ Painel Admin → Comunicados para gerenciar tudo, com pré-visualização ao vivo
🔖 Abas com URL própria em todo o sistema
Antes a aba ativa do Financeiro, Empresa, Catálogo, Relatórios, Plano e detalhe do evento se perdia ao recarregar. Agora cada aba tem sua URL (?tab=nfse, ?tab=integrations...): abrir, recarregar, voltar/avançar do navegador preserva a aba, e o link compartilhado leva direto.
🦓 Tabelas do Financeiro com muito mais contraste
Recebíveis, Pagáveis, Extrato e NFS-e ganharam: zebra striping (linhas alternadas), bordas mais visíveis, header mais escuro com tipografia uppercase, badges de status com bordas e cores reforçadas, hover em amber, e texto secundário (datas, IDs) mais legível.
🔍 Filtros uniformes em toda a aplicação
Novo padrão visual: header com contador de filtros ativos, botão "Limpar tudo", chips removíveis individualmente. Aplicado primeiro na NFS-e como prova de conceito, expande para outras telas.
💬 Mensagens duplicadas no Chat ao Vivo
Toda mensagem (de agente, nota interna ou visitante) aparecia duas vezes na conversa, com horários ligeiramente diferentes. O painel adicionava localmente e depois recebia a mesma do canal em tempo real, sem reconhecer. Resolvido — agora reusa o ID retornado pelo servidor.
📉 Valor da assinatura ficando negativo após renovar com cupom
Assinatura renovada com cupom vinculado tinha o valor líquido recalculado errado e gravado negativo no detalhe do workspace (ex: R$ 250 com cupom de R$ 237,50 virava −R$ 225,00). Resolvido — o cálculo agora usa o valor bruto como base e mantém o desconto recorrente. Registros já gravados com valor negativo são corrigidos automaticamente.
📧 E-mails de expiração/renovação caindo no noreply
Quando a assinatura não tinha o e-mail do pagador (típico de assinaturas criadas pelo admin, trial, ou pagamento sem captura), o aviso ia pro próprio [email protected] — ninguém recebia. Resolvido: agora cai no e-mail do proprietário do workspace; se nem isso houver, o envio é pulado e logado.
📅 Conflito de agenda quando o evento não tinha horário
Ao escolher uma data sem horário, o sistema assumia silenciosamente 00:00 às 04:00 da madrugada — gerando dois bugs opostos:
❌ Não detectava eventos do mesmo dia agendados à tarde/noite (mostrava "Disponível" mesmo com evento confirmado às 16:00)
❌ Acusava conflito no dia seguinte por causa de eventos longos que avançam pela madrugada
Resolvido: sem horário, a checagem cobre o dia inteiro (00:00–24:00). Bônus: o alerta de conflito agora mostra data e duração (ex: "Bruna — 01/08/2026 às 16:00 (8h30)"), antes só vinha o horário.