Visão geral
O Aparatus é uma plataforma full-stack de agendamento para barbearias, com integração de pagamentos via Stripe e um assistente virtual com inteligência artificial (Agenda.ai) que permite ao usuário agendar serviços por meio de uma conversa natural.
Busca de Barbearias
- Campo de busca por nome de serviço.
- Botões de busca rápida por categoria (Cabelo, Barba, Acabamento, Sobrancelha, Pézinho).
- Grid de resultados com cards informativos.
Página da Barbearia
- Banner com imagem, nome, endereço e avaliação.
- Descrição ("Sobre Nós").
- Lista de serviços com nome, descrição e preço.
- Telefones com botão de copiar para a área de transferência.
Agendamento via Interface
- Seleção de serviço abre painel lateral.
- Calendário interativo para escolha do dia.
- Time slots disponíveis (09:00 às 18:00, intervalos de 45 minutos).
- Filtragem automática de horários ocupados e já passados.
- Resumo da reserva com preço em BRL antes da confirmação.
- Redirecionamento para Stripe Checkout ao confirmar.
Chat com IA - Agenda.ai
- Assistente virtual com GPT-4o-mini via Vercel AI SDK.
- Interface de chat em tempo real com streaming de respostas.
- A IA busca barbearias, consulta disponibilidade e inicia o pagamento.
- Botão de pagamento renderizado automaticamente no chat após confirmação.
- Ferramentas (tools) disponíveis para a IA: busca barbearias por nome, verifica horários disponíveis, inicia sessão de checkout no Stripe.
Pagamento via Stripe
- Checkout Sessions em modo payment com moeda BRL.
- Webhook (checkout.session.completed) cria o agendamento no banco automaticamente.
- Verificação de idempotência para evitar duplicidade.
Cancelamento e Reembolso
- Validações de propriedade, duplicidade e data.
- Reembolso automático via Stripe quando aplicável.
- Soft delete com campo "canceled_at".
Meus Agendamentos
- Separação entre Confirmados (futuros) e Finalizados (passados ou cancelados).
- Detalhes do agendamento com mapa, telefones e opção de cancelar.
- Notificação de sucesso ao retornar do pagamento.
Autenticação
- Login social via Google OAuth com Better Auth.
- Avatar, nome e e-mail exibidos no menu lateral.
- Proteção de rotas e server actions via sessão.
Fluxo de processamento
- Usuário acessa a plataforma e busca serviços ou barbearias.
- Sistema lista opções com base na busca/categoria.
- Usuário seleciona a barbearia e o serviço desejado.
- Escolhe data e horário disponíveis.
- (Opcional) Interage com o Agenda.ai para agendamento.
- Sistema valida disponibilidade e dados da reserva.
- Usuário é direcionado ao pagamento via Stripe.
- Webhook confirma pagamento e cria agendamento.
- Reserva aparece em "Meus Agendamentos".
- Usuário pode acompanhar, cancelar ou gerenciar a reserva.
Tecnologias
Next.js 16.1.1
Framework full-stack (App Router)
React 19.2.3
Biblioteca de UI
TypeScript ^5
Tipagem estática
Tailwind CSS ^4
Estilização utilitária
Prisma 7.1.0
ORM com adapter nativo para PostgreSQL
PostgreSQL 15
Banco de dados relacional (via Docker)
Better Auth 1.4.6
Autenticação (Google OAuth)
Stripe 18.4.0
Pagamentos e reembolsos
Vercel IA SDK 5.0.112
Chat com IA e streaming
@ai-sdk/openai 2.0.85
Provider OpenAI (GPT-4o-mini)
TanStack React Query 5.90.12
Data fetching e cache client-side
next-safe-action 8.0.11
Server actions type-safe
Radix UI
Componentes headless (Dialog, Avatar, Sheet)
react-day-picker ^9.13.0
Calendário interativo
Streamdown 1.6.10
Renderização de streaming markdown
date-fns ^4.1.0
Manipulação de datas
Sonner ^2.0.7
Toast notifications
Lucide React ^0.561.0
Ícones personalizáveis
Zod 4.1.13
Validação de schemas
ESLint ^9
Linting e formatação de código
Resumo Técnico
O Aparatus é uma aplicação full-stack construída com Next.js (App Router) e React, utilizando TypeScript para tipagem estática e Tailwind CSS para estilização. A arquitetura combina Server Components, Server Actions e consumo client-side com React Query. O backend é estruturado sobre Prisma ORM com PostgreSQL, garantindo consistência e escalabilidade dos dados. A autenticação é gerenciada via Better Auth com suporte a Google OAuth. O sistema integra Stripe para processamento de pagamentos, utilizando Checkout Sessions e webhooks para confirmação automática e criação de agendamentos com idempotência. O módulo de IA (Agenda.ai) é implementado com Vercel AI SDK e OpenAI (GPT-4o-mini), utilizando ferramentas (tools) para busca de barbearias, verificação de disponibilidade e criação de sessões de pagamento. A aplicação segue boas práticas de organização em camadas (UI, actions, data, hooks, lib), com foco em performance, segurança e experiência do usuário.