Baseline Aprovada
APROVADO

Product Requirements Document

Documento mestre v0.3. Baseline oficial contendo 47 requisitos funcionais e regras de negócio para o sistema QRCODE NA MESA. Revisão v0.2: formaliza o modelo de negócio como SaaS multi-tenant. Revisão v0.3: formaliza cadastro de Mesa (com observação/ponto de referência), geração e impressão de QR Code, cadastro de Organização e de Usuário Interno, integração de CNPJ e pagamento via gateway.

1. Governança e Baseline

Este documento foi formalmente APROVADO pelo comitê sênior e serve como fonte da verdade para o desenvolvimento do ERD e sistemas futuros.

Qualquer alteração nesta baseline exige revisão de versionamento para v0.2 ou superior e nova rodada de aprovação. Esta é a revisão v0.3, motivada pela formalização de Mesa/QR Code/Organização/Pagamento.

2. Modelo de Negócio — SaaS Multi-tenant (novo em v0.2)

O sistema é oferecido como SaaS — múltiplos restaurantes (Organizações) usam a mesma aplicação, com dados completamente isolados entre si. Restaurante Exemplo é a primeira Organização cliente, não o único cliente possível.

PRD TBD-003RESOLVIDO

Estrutura Organizacional

Isolamento multi-tenant via Postgres (Supabase Cloud) com Row Level Security em toda tabela que carregue dado de uma Organização. Reaproveita o padrão já validado em outros projetos.

Funções: current_org_id(), has_org_role(), platform_admin, tenant_escrita_liberada(). Detalhe técnico no RBAC/RLS v0.2.

PRD TBD-004PARCIAL

Multiunidade

Esta baseline assume 1 Organização = 1 unidade física de restaurante. Uma rede com várias unidades cria uma Organização por unidade, sem hierarquia entre elas.

"Uma conta só gerenciando várias unidades" (holding vendo todas as lojas num painel único) fica fora do escopo — decisão de produto ainda não levantada com o cliente, não um TBD arquitetural bloqueante.

PRD TBD-019 (novo)ABERTO

Governança de Cobrança/Assinatura

A função tenant_escrita_liberada() implica um gatilho (assinatura em dia, teste, suspensão) que libera ou bloqueia escrita por Organização.

Este documento não define o gatilho nem o modelo de planos/preços — permanece pendente, não resolver por conta própria.

3. Mesa, QR Code, Organização e Pagamento (novo em v0.3)

RF-041RESOLVIDO

Cadastro de Mesa

Gestão cadastra Mesas dentro da própria Organização, com identificador único dentro da Organização (RN-015) — não precisa ser único entre Organizações diferentes.

Inclui campo de observação opcional para ponto de referência da localização física (ex.: "perto da janela", "fundo do salão").

RF-042 / RF-043PARCIAL

Geração e Impressão de QR Code

Cada Mesa tem exatamente um QR Code ativo (1:1). Token globalmente único — nunca se repete, nem entre Mesas nem entre Organizações (RN-014). Impressão em A7 (7×10cm), A6 (10×15cm) ou A5 (15×21cm), com layout automático: nome do estabelecimento, número da Mesa e o QR Code.

Resolve ERD-TBD-005 parcialmente — cardinalidade definida, mas o ciclo (regenerar/revogar) segue pendente.

RF-044 · PRD TBD-020ABERTO

Cadastro de Organização (empresa)

É preciso existir uma forma de cadastrar novas Organizações (restaurantes, pizzarias, hamburguerias etc.), mas este documento não define quem pode fazer isso.

Autoatendimento (visitante cria a própria conta) ou onboarding manual (só Platform Admin) têm implicações diferentes de RBAC e cobrança — não resolver por conta própria.

RF-045RESOLVIDO

Cadastro/Convite de Usuário Interno

Gestão cadastra ou convida novos Usuários Internos para a própria Organização, consistente com ACESSO-TBD-004.

Cada Usuário Interno vinculado a exatamente uma Organização (ERD-TBD-002, resolvido em v0.2).

RF-046 · PRD TBD-022ABERTO

Integração com API de CNPJ

No cadastro de Organização, consultar CNPJ pré-preenche razão social/endereço e reduz atrito.

Provedor não definido (Receita Federal direta, BrasilAPI, ReceitaWS ou similar) — impacta custo e disponibilidade. Não escolher por conta própria.

RF-047 · PRD TBD-021ABERTO

Pagamento do Pedido via Gateway

Intenção de permitir que o Cliente pague o Pedido dentro do sistema, via gateway (InfinityPay/Stone citados só como referência, não como decisão).

Gateway, obrigatoriedade, e divisão de conta por Mesa não definidos. Dado sensível — nunca visível para Cozinha, mesmo tratamento dado a PII (ACESSO-TBD-006).

4. Matriz de Rastreabilidade (Amostra RF ↔ RN)

IDRequisitoRNCritério de Aceite
RF-001Acesso ao cardápio via QR Code por mesa.RN-005CA-001: Exibir cardápio vinculado à mesa ativa após scan.
RF-002Preservar identificação da mesa na jornada.RN-005CA-002: Identificação da mesa mantida no estado da aplicação.
RF-003Visualizar cardápio sem cadastro.RN-001CA-003: Visualização sem login ou dados pessoais.
RF-004Navegação por categorias.CA-004: Filtro instantâneo por categoria.
RF-005Adicionar produtos ao carrinho.CA-005: Feedback visual imediato ao adicionar.
RF-012Criar pedido vinculado à mesa.RN-006CA-012: Registro no banco com referência obrigatória da mesa.
RF-027Cadastro de insumos.CA-027: Salvar propriedades básicas no cadastro.
RF-034Criar ficha técnica.CA-034: Estrutura técnica associada ao produto.
RF-041Cadastrar Mesa, com observação/ponto de referência opcional.RN-015CA-041: Identificador da Mesa único dentro da Organização; observação opcional.
RF-042Gerar QR Code único por Mesa.RN-014CA-042: Token do QR Code nunca se repete, nem entre Mesas nem entre Organizações.
RF-043Imprimir QR Code em A7 (7×10cm), A6 (10×15cm) ou A5 (15×21cm).RN-014CA-043: Layout inclui nome do estabelecimento, número da mesa e o QR Code.
RF-044Cadastrar nova Organização (empresa) no sistema.CA-044: Cria a Organização e seu primeiro Usuário Interno administrador.
RF-045Cadastrar/convidar Usuário Interno vinculado a uma Organização.CA-045: Novo usuário vinculado a exatamente uma Organização.
RF-046Consultar API de CNPJ para pré-preencher dados no cadastro da Organização.CA-046: Campos de razão social/endereço preenchidos automaticamente quando a consulta retornar dados.
RF-047Permitir que o Cliente pague o Pedido via gateway de pagamento dentro do sistema.CA-047: Pagamento aprovado reflete no status do Pedido.

* Tabela completa contendo 40 itens preservada em baseline v0.1