Visão funcional de cada módulo do dashboard, com a finalidade, telas e comportamentos principais.
💡 Esta página é técnica. Para um tour passo-a-passo voltado ao usuário final, use a Central de Ajuda dentro do app:
/dashboard/help.
/dashboard)ActionStreamCard) com a lista priorizada
de itens acionáveis — pagamentos atrasados/a vencer, tarefas atrasadas/no
prazo, contratos a expirar, RSVP sem resposta e agradecimentos pendentes.
Cada linha leva direto à tela da ação. A priorização (atrasados primeiro) e o
ordenamento são do helper puro src/lib/action-stream.ts
(aggregateActionStream); itens financeiros só aparecem para quem tem
permissão. Mostra até 10 e indica “+N ações” quando há mais; estado vazio
positivo (“tudo em dia”)./dashboard/insights)/dashboard/vendors)NEGOTIATION → CONTRACTED → FINALIZED./vendors/compare) para colocar lado-a-lado./dashboard/venues)/dashboard/tasks)TODO / IN_PROGRESS / DONE.LOW / MEDIUM / HIGH.loadTaskTemplates cria tarefas baseadas no
calendário (offsets a partir da data do evento)./dashboard/payments)amount, dueDate, status (PENDING/PAID), method
(PIX/BOLETO/CREDIT/TRANSFER/CASH), e suporta parcelamento
(installmentNumber/totalInstallments)./dashboard/income)SALARY ou OTHER.EXPECTED / RECEIVED.ONE_TIME / MONTHLY / QUARTERLY / etc.givenByName./dashboard/assets)SavingsGoal./dashboard/goals)targetAmount, targetDate, isActive.Assets vinculados — o sistema calcula o progresso (%)./dashboard/guests)<select> dos grupos existentes (ou “+ Criar novo grupo” inline). A ação
grava o vínculo real groupId e o espelho groupName (mantidos sempre em
sincronia). Digitar texto livre não existe mais — isso evita o convidado ficar
“órfão” do grupo e fora do RSVP coletivo / Save the Date.rsvpToken único (cuid) → URL pública
/rsvp/[token].INVITED / CONFIRMED / DECLINED / MAYBE.plusOnesAllowed vs. plusOnesConfirmed.isVIP, isPadrinho, isChild.dietary).checkedInAt).+ ( ) - e espaços)./dashboard/guests/groups)GuestGroup) com link de RSVP coletivo.groupName de todos os membros.CONFIRMED / DECLINED / PARTIAL), não mais um genérico “Respondeu”.summarizeGroup (group-summary.ts).
Botão WhatsApp (wa.me) e export CSV da lista de grupos./dashboard/gifts)Guest (opcional).CASH ou ITEM.RECEIVED / THANKED.CASH): converte o valor em Income
(fonte GIFT, status RECEIVED) ou Asset (caixa/reserva), escolhendo
descrição e data. A operação é atômica ($transaction) e idempotente — grava
Gift.processedAt via updateMany ... { processedAt: null }, fechando a
corrida de dupla conversão. Audita CONVERT_TO_FINANCE.processedAt; uma vez lançado por qualquer caminho, o outro não
duplica o valor. Indicadores na lista: “Em dinheiro a lançar” (soma dos
CASH com processedAt = null) e selo “Lançado”./dashboard/wedding-day)CONTRACTED/FINALIZED com wa.me
direto./dashboard/honeymoon)HoneymoonItem): atividades, hospedagens, vôos com
confirmationNumber, status, valores e janela startAt/endAt./dashboard/trousseau)COZINHA, SALA, QUARTO, etc.).MUST_HAVE / NICE_TO_HAVE.TO_BUY / BOUGHT.estimatedPrice vs actualPrice, com link e loja./dashboard/settings)Abas:
/dashboard/onboarding)Wizard de 4 passos exibido uma única vez após a primeira troca de senha do admin:
Grava EventSettings.onboardingCompletedAt; depois o middleware deixa o admin
livre.
/dashboard/help)Hub interativo com busca, filtros, passo-a-passo de cada feature, FAQ e changelog. Veja Central de Ajuda no README de docs.
| Evento | Cron | Sino in-app | ||
|---|---|---|---|---|
| Conta criada (admin cria usuário) | — | ✅ | ✅ | — |
| Reset de senha | — | ✅ | ✅ | — |
| Pagamento vence em 3 dias | a cada 30 min | ✅ | ✅ | — |
| Pagamento atrasado | a cada 30 min | ✅ | ✅ | — |
| Tarefa vence em 2 dias | a cada 30 min | ✅ | ✅ | — |
| Tarefa atrasada | a cada 30 min | ✅ | ✅ | — |
ℹ️ Toda notificação é idempotente por dia (ver
NotificationLog).
As listas que podem crescer são paginadas no cliente (20 itens por página) via
o componente reutilizável src/components/pagination.tsx
(usePagination + <Pagination>). A busca/filtro continua sendo feita em
memória e a paginação recai sobre o resultado já filtrado — ao trocar o filtro,
volta para a página 1. O controle mostra números de página + Anterior/Próxima e
“Mostrando X–Y de Z”, e some quando há uma página só.
Listas paginadas: Convidados, Tarefas (visão Lista), Pagamentos (visão Lista), Presentes, Enxoval, Fornecedores, Receitas, Caixa e o histórico de envios em Ajustes › Notificações (busca até 200 registros). Visões não-lista (Kanban de tarefas, calendário de pagamentos) e listas curtas (Locais, Metas, Lua de Mel) não são paginadas.