# Fase 4 — Usuários & Permissões

Objetivo: definir quem usa o app e com que poderes — na medida certa. Não complicar o que é simples nem deixar inseguro o que é compartilhado.

## Sumário
- As 3 perguntas que decidem tudo
- Os 4 perfis de uso (do mais simples ao mais complexo)
- Modelo de papéis (RBAC) quando há vários usuários
- Autenticação recomendada por perfil
- Saída desta fase

## As 3 perguntas (faça em linguagem simples)

1. **"Quem vai usar esse sistema — só você, ou mais gente?"**
2. **"Todo mundo pode ver e mexer em tudo, ou tem coisa que só você pode fazer/ver?"** (ex.: ver preço de custo, apagar registro, mexer no cadastro de preços)
3. **"Precisa controlar quem fez o quê?"** (histórico/auditoria — comum quando há dinheiro ou cliente envolvido)

## Os 4 perfis de uso

| Perfil | Descrição | Auth | Permissões |
|---|---|---|---|
| **A. Pessoal** | 1 pessoa usa | Login simples (1 conta) ou senha única no app | Não precisa de papéis |
| **B. Equipe pequena, confiança total** | Poucas pessoas, todas fazem tudo | Login por usuário | Todos = mesmo poder. Só separe "quem pode apagar/configurar" |
| **C. Empresa com papéis** | Vários setores, poderes diferentes | Login por usuário + papéis | **RBAC** (ver abaixo) |
| **D. Multi-empresa (SaaS)** | Várias empresas no mesmo app, dados isolados | Login + organização | RBAC **+ multi-tenant** (cada empresa só vê os seus dados). Escala maior → use `/arquitetura-imperatriz` |

A maioria das planilhas que vira app começa em **A** ou **B**. Não force C/D sem necessidade — mas deixe o banco preparado (tabela `users` desde o início) pra crescer sem retrabalho.

## RBAC — papéis (perfil C+)

Derive os papéis do mundo real da pessoa. Padrão comum:

| Papel | Pode |
|---|---|
| **Dono/Admin** | Tudo: configurar, ver custo/margem, gerenciar usuários, apagar |
| **Gerente** | Operar + aprovar + ver relatórios; não mexe em config/usuários |
| **Operador** | Criar/editar registros do dia a dia; não vê custo, não apaga |
| **Visualizador** | Só lê (ex.: cliente vê o próprio orçamento) |

Regras de permissão saem direto da Fase 3: o `SE(total>1000;"aprovar gerente")` significa que **aprovar** é poder do papel Gerente.

## Autenticação recomendada

- **Padrão Imperatriz:** e-mail + senha com hash forte (scrypt/argon2/bcrypt), sessão via cookie httpOnly. Nunca senha em texto puro.
- Reuse o padrão de auth que já existe nos apps do ecossistema (ex.: o do Portal Imperio IA / Leadflow) em vez de inventar.
- Para multi-tenant (perfil D): escopo de dados por `organization_id` em **toda** query (FORCE RLS no Postgres é o padrão usado no Conteúdo Imperatriz).

## Saída desta fase (para o BLUEPRINT.md)

```
## Fase 4 — Usuários & Permissões
**Perfil:** [A/B/C/D] — [justificativa em 1 linha]
**Autenticação:** [método]
**Papéis:** [lista] com matriz do que cada um pode
**Auditoria:** [sim/não] — o que registrar
**Multi-tenant:** [sim/não]
```

Feche com o **checkpoint**.
