Documentação de Arquitetura e Escopo: Projeto BMLINK
-
Visão Geral do Sistema O BMLINK é uma plataforma SaaS (Software as a Service) Multi-tenant projetada para o setor de food service. Ele funciona como um sistema completo de delivery, retirada de balcão e cardápio digital (com QR Code para mesas), oferecendo aos lojistas um painel Kanban em tempo real para gestão de pedidos.
-
Stack Tecnológico e Infraestrutura (Docker) Todo o ecossistema será conteinerizado para facilitar o deploy e a escalabilidade. O ambiente local e de produção rodará em cima de um docker-compose orquestrando os seguintes serviços:
Frontend (Painel Lojista + Tela do Cliente): Node.js (utilizando Next.js ou framework similar).
Backend (API + WebSockets): Python (FastAPI).
Banco de Dados: PostgreSQL 15+.
Worker/Background Tasks: Nativo do Python (ou Redis + Celery no futuro) para a fila de envio de mensagens do WhatsApp.
- Arquitetura Multi-Tenant (Isolamento de Dados) O banco de dados PostgreSQL utilizará o padrão Schema-per-Tenant para garantir o isolamento e segurança dos dados de cada restaurante.
Schema public: Gerencia as configurações globais do BMLINK (tabela de empresas associadas, links/slugs, credenciais do WhatsApp e lojistas master).
Schemas tenant_{cnpj}: Cada empresa terá o seu próprio schema contendo as tabelas: produtos, categorias, clientes, pedidos, áreas_de_entrega e complementos. O acesso aos dados se dá via alteração de search_path no Backend.
- Integrações Externas WhatsApp (n8n + Solução Própria): Disparo de mensagens transacionais (OTP para login, resumo do pedido, chave PIX e atualizações de status). Utiliza o Outbox Pattern para não perder mensagens em caso de queda da API.
Mercado Pago (PIX Automático): Geração de QR Code e recebimento de Webhooks para atualização automática de pagamento aprovado.
ViaCEP / BrasilAPI: Autocompletar endereço e validação de taxa de entrega baseada no bairro do cliente.
Token API (Inbound): Geração de Token JWT estático para sistemas ERP/PDV de terceiros enviarem o cadastro de produtos para a nuvem do BMLINK.
- Funcionalidades Core (Regras de Negócio) 5.1 Visão do Cliente (Front-end Dinâmico) Acesso Direto: Acesso via URL amigável (bmlink.com.br/fogaocolonial).
Login Sem Senha: Autenticação via número de WhatsApp (código OTP).
Múltiplos Endereços: Cadastro de endereço com API de CEP (ViaCEP) + Ponto de Referência obrigatório para entregas.
Motor de Produtos: Suporte a adicionais e complementos (ex: pizza meio a meio, ponto da carne).
Modos de Operação:
Entrega: Exige bairro cadastrado e calcula frete dinâmico.
Retirada: Esconde endereço do cliente e ignora frete.
Mesa (Cardápio Digital): Leitura de QR Code (?mesa=12), oculta frete e vincula o pedido diretamente à mesa no salão.
5.2 Visão do Lojista (Painel Administrativo) Kanban em Tempo Real: Gestão de pedidos (Pendentes > Em Preparo > Saiu para Entrega) utilizando WebSockets (sem necessidade de dar refresh na página). Alertas sonoros para novos pedidos.
Impressão Térmica: Geração de página em formato de cupom (80mm) chamando o comando de impressão silenciosa do navegador.
Gestão de Estoque e Frete: Aprovação de produtos vindos do ERP, upload de fotos (armazenamento local via Backend) e cadastro de taxas por bairro.
Status da Loja: Abertura/Fechamento automático por horário ou chave geral de emergência.