# Padrão Consolidado — Fábrica de Apps Planilha Profissional

> **Documento definitivo** para terminar o PRD Master  
> Gerado a partir da análise de `C:\Projetos Cursor` — **somente leitura, sem alteração de código**  
> Data: 06/07/2026

Este documento define **o que adotar de cada app** já desenvolvido. Todo app novo deve seguir este padrão consolidado + [PRD_MASTER.md](../PRD_MASTER.md).

---

## 1. Decisão estratégica — base oficial

| Camada | Fonte escolhida | Pasta de referência |
|--------|-----------------|---------------------|
| **Código (template)** | Supermercado Inteligente | `Supermercado\supermercadointeligente-main` |
| **UX / menu / footer** | EventosPro + ViagensPro | `Festas & Eventos\V0\app-de-eventos` · `Controle ViagemPro\viagens-pro` |
| **Comece Aqui (conteúdo)** | Finanças Pro v2 deploy | `financasprov2-deploy` |
| **Rodapé componente React** | GalõesPro + EventosPro | `AppFooter.tsx` + `site-footer.tsx` |
| **Supabase hub** | hub-docs + SQL PRD | `planilhaprofissional-hub-docs` + `supabase/templates/create_app_schema.sql` |
| **Operação produção** | Finanças v2 deploy + PetCare | Hotmart, clientes, offline |
| **Deploy hub** | Orçamento Anual | `Orcamento Anual\orcamento-anual-web\docs` |
| **Textos legais** | PRD textos-padrao + Finanças v2 | `docs/padroes/textos-padrao/` |
| **Planilha (não-web)** | Dossiê RJ Pro | Anexo B do PRD |

---

## 2. O que copiar de cada app — tabela detalhada

### Supermercado Inteligente — **esqueleto de código**

| Item | Arquivo / padrão | Adotar |
|------|------------------|:------:|
| Layout shell | `src/components/AppShell.tsx` | ✅ |
| Menu ☰ PC+mobile | `SidebarTrigger` + shadcn Sidebar | ✅ |
| Comece Aqui destacado | Badge "Início", borda dourada `#CAB77D` | ✅ |
| Rotas fixas | `/comece-aqui`, `/termos`, `/manual` | ✅ |
| PWA no menu | `PwaInstallMenuItem` | ✅ |
| Migrations | `supabase/migrations/hub/` | ✅ |
| Schema | `supercompare` isolado | ✅ |
| Ajustar | `DeveloperCredit` → footer completo (ver §3) | ⚠️ |

### EventosPro — **UX, footer, conta**

| Item | Arquivo / padrão | Adotar |
|------|------------------|:------:|
| Footer completo | `components/site-footer.tsx` | ✅ |
| Constantes marca | `lib/constants.ts` → `BRAND` | ✅ |
| Menu com grupos | `painel-sidebar.tsx` — Financeiro, Organização, Conta | ✅ |
| Alterar senha | `/painel/alterar-senha` + `KeyRound` no menu | ✅ |
| Comece Aqui | Badge `INÍCIO`, `highlight: true` | ✅ |
| Variantes footer | `landing` vs `panel` (cores diferentes) | ✅ |
| Cron jobs | `vercel.json` para lembretes | ✅ opcional |
| Tahoma explícito | `font-[Tahoma,sans-serif]` no footer | ✅ |

**Constantes obrigatórias (de EventosPro):**

```typescript
export const BRAND = {
  site: "https://planilhaprofissional.com",
  supportEmail: "suporte@planilhaprofissional.com",
  whatsapp: "+5566992388026",
  whatsappDisplay: "+55 66 99238-8026",
  hotmartUrl: process.env.NEXT_PUBLIC_HOTMART_URL ?? "#",
} as const
```

### ViagensPro — **menu estruturado + suporte em abas**

| Item | Arquivo / padrão | Adotar |
|------|------------------|:------:|
| Nav config centralizado | `components/nav-config.ts` | ✅ |
| MENU_FOOTER | Alterar senha + Termos no rodapé do menu | ✅ |
| SupportContacts | `tab-footer` em telas internas | ✅ |
| Landing footer | `landing-footer` variant | ✅ |
| PWA + manifest | Completo | ✅ |

### Finanças Pro v2 (deploy) — **Comece Aqui + legal + PWA ops**

| Item | Arquivo / padrão | Adotar |
|------|------------------|:------:|
| Aba Comece Aqui | `app.html` — hero + 6 passos + instalar PWA | ✅ |
| Badge INÍCIO | `nav-item-comece` + `badge-inicio` | ✅ |
| Auto-abrir 1ª visita | `switchTab('comece')` no primeiro acesso | ✅ |
| Termos + LGPD | `tab-termos` com sanções e lei citada | ✅ |
| Texto sanções | Bloqueio permanente, Lei 9.610/1998 | ✅ incorporar nos textos-padrão |
| Instalar PWA | Botão em Comece Aqui + Configurações | ✅ |
| Produção Hotmart | Pipeline documentado | ✅ |
| Ajustar | Rodapé fixo 3 linhas (hoje só em Config) | ⚠️ |
| Ajustar | Tela Alterar Senha no menu | ⚠️ |

### GalõesPro — **footer React simples**

| Item | Arquivo / padrão | Adotar |
|------|------------------|:------:|
| AppFooter | `src/components/AppFooter.tsx` | ✅ base |
| Licença no footer | Exibe tipo de licença | ✅ |
| WhatsApp + site | Já presentes | ✅ |
| Ajustar | Adicionar `suporte@planilhaprofissional.com` | ⚠️ |
| Ajustar | Schema `public` → migrar `galoes` | ⚠️ |
| Ajustar | Adicionar PWA | ⚠️ |

### PetCare Gestão — **Hotmart + offline**

| Item | Adotar |
|------|:------:|
| Integração Hotmart + webhook | ✅ referência |
| Módulo Comece Aqui (`startHere.js`) | ✅ estrutura |
| Sync offline IndexedDB | ✅ opcional por app |
| IndexedDB + Supabase híbrido | ⚠️ só se app precisar offline forte |
| Migrar schema `petcare` | ⚠️ obrigatório |

### Orçamento Anual — **integração hub documentada**

| Item | Adotar |
|------|:------:|
| `docs/hub/` ou `HUB-DEPLOY.md` | ✅ todo app no hub deve ter |
| Webhook Hotmart | ✅ |
| Schema `orcamento` | ✅ |
| Menu `SiteNav` hamburger | ✅ |

### planilhaprofissional-hub-docs — **regras Supabase**

| Item | Adotar |
|------|:------:|
| 1 app = 1 schema | ✅ |
| `public.apps` catálogo com slug imutável | ✅ |
| Senha por app (`{schema}.accounts`) | ✅ para apps com auth custom |
| `03-AUTH-SENHA-POR-APP.md` | ✅ |
| `04-TEMPLATE-APP-NOVO.md` checklist | ✅ |
| Migração 1 app por vez | ✅ |

### ProjetoFlow — **precificação (funcional, não padrão)**

| Item | Adotar |
|------|:------:|
| Lógica de negócio timer/caixa | ✅ só no PRD do ProjetoFlow |
| Menu sanduíche | ✅ |
| Falta Comece Aqui + Termos in-app | ❌ corrigir antes de referenciar |

### ManicurePro / SalãoPro — **legado Apps Script**

| Item | Adotar |
|------|:------:|
| Comece Aqui + Termos in-app | ✅ conteúdo como referência |
| Paleta PP + Tahoma | ✅ |
| PWA v31/v10 | ✅ referência para HTML puro |
| Stack Apps Script | ❌ não usar em apps novos — migrar ou Anexo B |

### Dossiê RJ Pro — **trilha Excel**

| Item | Adotar |
|------|:------:|
| Abas Comece Aqui + Termos | ✅ Anexo B PRD |
| Pacote validação | ✅ modelo para planilhas jurídicas |

### financaspro-web — **descartar como base**

| Motivo |
|--------|
| Google Sheets legado — substituído por Finanças v2 |

---

## 3. Padrão único de rodapé (síntese)

Combinar **EventosPro** (completo) + **ViagensPro** (em abas):

### Obrigatório em 100% das telas

```
Desenvolvido por planilhaprofissional.com
WhatsApp: +55 66 99238-8026  →  https://wa.me/5566992388026
Suporte: suporte@planilhaprofissional.com
```

### Implementação recomendada

| Contexto | Componente modelo |
|----------|-------------------|
| Landing page | `SiteFooter` variant `landing` (EventosPro) |
| Painel / app logado | `SiteFooter` variant `panel` ou `SupportContacts` variant `tab-footer` |
| Apps TanStack | `AppFooter` (GalõesPro) + linha suporte@ |

**Arquivo de referência a criar no template:** `src/components/PlanilhaFooter.tsx` — unificar os três.

---

## 4. Padrão único de menu sanduíche

Ordem fixa (de ViagensPro `nav-config.ts` + EventosPro sidebar):

```
┌─ MENU PRINCIPAL ─────────────────┐
│ 🚀 Comece Aqui        [INÍCIO] │  ← sempre primeiro, highlight
│ 📊 Dashboard                   │
│ ... telas do app ...           │
├─ CONTA / RODAPÉ DO MENU ───────┤
│ 🔑 Alterar senha               │  ← EventosPro + ViagensPro
│ 📄 Termos e LGPD               │
│ 📲 Instalar app (se PWA)       │  ← Supermercado
│ 🚪 Sair                        │
└────────────────────────────────┘
```

**Código modelo:** `Supermercado/AppShell.tsx` + `EventosPro/painel-sidebar.tsx` + `ViagensPro/nav-config.ts` (`MENU_FOOTER`).

---

## 5. Padrão Comece Aqui (síntese)

Estrutura de **Finanças v2 deploy** + textos **PRD textos-padrao**:

1. Hero com boas-vindas + nome do app  
2. **Link YouTube** (campo obrigatório no PRD de cada app)  
3. Box instalar PWA (se ainda não instalado)  
4. Passos numerados (mínimo 4, ideal 6) — específicos do app  
5. Bloco suporte (WhatsApp + e-mail)  
6. Badge **INÍCIO** no menu  
7. Auto-abrir na 1ª visita após login  

---

## 6. Padrão Supabase — reconciliação hub-docs × PRD

Dois modelos válidos — **escolher um por app, nunca misturar**:

| Modelo | Quando usar | Referência |
|--------|-------------|------------|
| **A — Auth custom hub** | Apps no hub `cqirovvxtyreuvucosol` com senha isolada | hub-docs `03-AUTH` → `{schema}.accounts` |
| **B — Supabase Auth** | Apps novos com `auth.users` | PRD `create_app_schema.sql` → `{schema}.profiles` |

**Em ambos os modelos:**
- Schema isolado por app  
- RLS em todas as tabelas  
- `audit_logs` + `password_change_log` (PRD `AUDITORIA.md`)  
- Registro em `public.apps` (hub-docs)  

**Hub:** `https://cqirovvxtyreuvucosol.supabase.co`

| Schema existente | App | Modelo auth |
|------------------|-----|-------------|
| `financasprov2` | Finanças v2 | Custom / Supabase Auth |
| `supercompare` | Supermercado | Supabase Auth |
| `viagenspro` | ViagensPro | Custom accounts |
| `eventospro` | EventosPro | Custom accounts |
| `orcamento` | Orçamento | Custom accounts |
| `projetoflow` | ProjetoFlow | Custom accounts 🔄 |
| `public.*` | PetCare, GalõesPro | ⚠️ migrar |

---

## 7. Padrão PWA

| Item | Fonte |
|------|-------|
| `manifest` 192 + 512 PNG | Finanças v2 deploy |
| `service worker` com cache versionado | Finanças v2 (`sw.js` v9) |
| Botão instalar | Supermercado `PwaInstallMenuItem` + Finanças `instalarApp()` |
| Landing pré-instalação | PetCare `landing.html` + Finanças redirect |
| Página `/instalar` | EventosPro |

---

## 8. Padrão de pastas do projeto (template)

```
meu-app/
├── src/
│   ├── components/
│   │   ├── AppShell.tsx          ← Supermercado
│   │   ├── PlanilhaFooter.tsx    ← novo (EventosPro+GalõesPro)
│   │   └── PwaInstallMenuItem.tsx
│   ├── lib/
│   │   ├── constants.ts          ← EventosPro BRAND
│   │   └── nav-config.ts         ← ViagensPro
│   └── routes/ ou app/
│       ├── comece-aqui/
│       ├── termos/
│       └── alterar-senha/        ← EventosPro
├── supabase/migrations/hub/      ← Supermercado + Orçamento
├── docs/
│   ├── PRD.md
│   └── HUB-DEPLOY.md             ← Orçamento
├── public/
│   ├── manifest.webmanifest
│   └── sw.js
└── vercel.json
```

---

## 9. Catálogo completo — status no PRD

| App | Pasta | PRD / Matriz | Prioridade padronização |
|-----|-------|:------------:|:-----------------------:|
| Supermercado | `Supermercado\supermercadointeligente-main` | [MATRIZ](../apps/supermercado/MATRIZ_PADRONIZACAO.md) | Template #1 |
| Finanças v2 | `financasprov2-deploy` | [MATRIZ](../apps/financas-pro-v2/MATRIZ_PADRONIZACAO.md) | Referência produção |
| PetCare | `PetCare Gestão` | [MATRIZ](../apps/petcare/MATRIZ_PADRONIZACAO.md) | Migrar schema |
| GalõesPro | `Galao de Agua\...\water-gallon-tracker-main` | [MATRIZ](../apps/galoespro/MATRIZ_PADRONIZACAO.md) | PWA + schema |
| ViagensPro | `Controle ViagemPro\viagens-pro` | [MATRIZ](../apps/viagenspro/MATRIZ_PADRONIZACAO.md) | Footer em abas OK |
| EventosPro | `Festas & Eventos\V0\app-de-eventos` | [MATRIZ](../apps/eventospro/MATRIZ_PADRONIZACAO.md) | Referência UX |
| Orçamento | `Orcamento Anual\orcamento-anual-web` | [MATRIZ](../apps/orcamento-anual/MATRIZ_PADRONIZACAO.md) | Hub doc OK |
| ProjetoFlow | `ProjetoFlow` | [MATRIZ](../apps/projetoflow/MATRIZ_PADRONIZACAO.md) | Falta legais |
| ManicurePro | `ManicurePro` | [MATRIZ](../apps/manicurepro/MATRIZ_PADRONIZACAO.md) | Legado |
| SalãoPro | `SalaoPro` | [MATRIZ](../apps/salaopro/MATRIZ_PADRONIZACAO.md) | Legado |
| Dossiê RJ | `Dossie-RJ-Pro` | Anexo B | Planilha |
| financaspro-web | `financaspro-web` | — | Descontinuar |
| FINANCASPROV2 | `FINANCASPROV2` | — | Arquivo dev |
| hub-docs | `planilhaprofissional-hub-docs` | Técnico | Manter sincronizado |
| PRD Modelo | `PRD - MODELO` | Este repo | Espinha dorsal |

---

## 10. Checklist final — PRD Master completo

Use para validar que o framework está pronto antes de criar novos apps:

| # | Item | Status |
|---|------|:------:|
| 1 | PRD_MASTER.md (33 capítulos) | ✅ |
| 2 | ARQUITETURA_FABRICA_APPS.md | ✅ |
| 3 | REQUISITOS_OBRIGATORIOS_APPS.md | ✅ |
| 4 | AUDITORIA.md + SQL audit_logs | ✅ |
| 5 | VERSIONAMENTO.md | ✅ |
| 6 | Textos padrão LGPD / Termos / Comece Aqui | ✅ |
| 7 | SQL schema isolado (`create_app_schema.sql`) | ✅ |
| 8 | Análise consolidada dos apps | ✅ |
| 9 | **Este documento — padrão consolidado** | ✅ |
| 10 | Template código `pp-app-template` (clonar Supermercado) | ☐ próximo passo |
| 11 | Componente `PlanilhaFooter` unificado | ☐ próximo passo |
| 12 | PRD.md preenchido por app prioritário | ☐ próximo passo |
| 13 | hub-docs atualizado com apps novos | ☐ |

---

## 11. Próximo passo recomendado

1. **Criar repo `pp-app-template`** clonando Supermercado + footer EventosPro + nav ViagensPro  
2. **Executar SQL** `audit_logs` no schema `supercompare` (piloto)  
3. **Preencher PRD.md** do Supermercado como primeiro exemplo completo  
4. **Atualizar hub-docs** `02-ROADMAP` com ViagensPro, EventosPro, ManicurePro, SalãoPro  

---

*Planilha Profissional — Padrão consolidado v1.0 · Análise autorizada em C:\Projetos Cursor*
