# 📚 ÍNDICE DE DOCUMENTAÇÃO - PADRÕES DO SISTEMA

**Todos os documentos sobre padrões de desenvolvimento do sistema SAG.**

---

## 📋 DOCUMENTOS DE REFERÊNCIA

### 1. **COMO_PEDIR_NOVO_CRUD.md** ⭐ COMECE AQUI
- **Para:** Equipe que quer pedir novo CRUD
- **Conteúdo:** O que enviar, como formatar, exemplos
- **Tempo:** 5 minutos para ler
- **Ação:** Copie o template e envie pro Copilot

### 2. **PROMPT_PADRAO_NOVO_CRUD.md**
- **Para:** Referência do prompt completo
- **Conteúdo:** Prompt pronto para copiar/colar
- **Tempo:** 2 minutos para adaptar
- **Ação:** Customize com seus dados e envie

### 3. **GUIA_CRIAR_NOVO_CRUD.md**
- **Para:** Entender como os CRUDs são construídos
- **Conteúdo:** 13 seções, exemplos, checklist, troubleshooting
- **Tempo:** 20 minutos para ler tudo
- **Ação:** Consulte quando tiver dúvidas

### 4. **SNIPPETS_CODIGO_PADRAO.md**
- **Para:** Ver código pronto para copiar
- **Conteúdo:** 7 templates (select, index, cad, insert, delete, filtro, form)
- **Tempo:** Consulta rápida quando precisa
- **Ação:** Copie e adapte os templates

### 5. **PADROES_SISTEMA.md** 🎯 REFERÊNCIA TÉCNICA
- **Para:** Entender os padrões obrigatórios
- **Conteúdo:** Banco de dados, código, permissões, validação
- **Tempo:** Leitura técnica (~15 min)
- **Ação:** Consulte para validar implementação

### 5.5 **PADROES_CAMPOS_MULTIPLOS_VALORES.md** 🆕 NOVO
- **Para:** Implementar campos com múltiplas opções
- **Conteúdo:** Como usar INT com CASE WHEN, exemplo real (Plano de Contas)
- **Tempo:** 10 minutos para entender
- **Ação:** Use como referência para campos como tipoconta, natureza, tipo
- **Exemplo Real:** Plano de Contas (tipoconta=1-5, natureza=0-1)

### 6. **QUICK_PADROES.md** ⚡ RESUMO 1 PÁGINA
- **Para:** Resumo visual rápido
- **Conteúdo:** Código essencial de todos os arquivos
- **Tempo:** 2-3 minutos
- **Ação:** Imprima ou fixe na tela

### 7. **FAQ_STATUS_SOFTDELETE.md** ❓ DÚVIDAS FREQUENTES
- **Para:** Entender soft delete
- **Conteúdo:** O que é, por que, como, exemplos, recuperação
- **Tempo:** Leitura quando tiver dúvidas
- **Ação:** Compartilhe com iniciantes

---

## 🎯 PADRÕES OBRIGATÓRIOS

### Banco de Dados
```
✅ id: serial4 PRIMARY KEY (auto-increment)
✅ status: int4 DEFAULT 0 (0=ativo, 2=excluído)
✅ empresa: int4 (sempre obrigatório)
```

### Código
```
✅ select.php: WHERE empresa=$codempresa AND status != 2
✅ insert.php: Validar 'criar' e 'editar'
✅ delete.php: UPDATE status=2 (NUNCA DELETE)
✅ index.php: Buscar permissões 1x antes do loop
✅ cad.php: Validar 'visualizar'
```

### Permissões (4 obrigatórias)
```
✅ visualizar (listar)
✅ criar (inserir)
✅ editar (atualizar)
✅ deletar (soft delete)
```

---

## 🚀 FLUXO DE USO

### Cenário 1: "Quero pedir um novo CRUD"
1. Leia: **COMO_PEDIR_NOVO_CRUD.md** (5 min)
2. Prepare: Seu DDL e nome do módulo
3. Copie: Template de **PROMPT_PADRAO_NOVO_CRUD.md**
4. Adapte: Substitua placeholders
5. Envie: Pro Copilot

### Cenário 2: "Preciso entender como funciona"
1. Leia: **GUIA_CRIAR_NOVO_CRUD.md** (20 min)
2. Referência: **PADROES_SISTEMA.md** (10 min)
3. Código: **SNIPPETS_CODIGO_PADRAO.md** (consulta)
4. Rápido: **QUICK_PADROES.md** (2 min)

### Cenário 3: "Tenho dúvida sobre soft delete"
1. Leia: **FAQ_STATUS_SOFTDELETE.md**
2. Procure a pergunta parecida
3. Veja exemplos SQL
4. Aplique no seu código

### Cenário 4: "Vou criar um CRUD agora"
1. Abra: **QUICK_PADROES.md** (lado a lado)
2. Abra: **SNIPPETS_CODIGO_PADRAO.md** (consulta)
3. Crie: Pasta e arquivos
4. Use: Checklist de **GUIA_CRIAR_NOVO_CRUD.md**
5. Valide: Todos os itens

---

## 📊 MAPA MENTAL

```
NOVO CRUD?
    ↓
Leia COMO_PEDIR?
    ↓
Copie PROMPT_PADRAO?
    ↓
Envie pro Copilot
    ↓
    
DÚVIDA?
    ↓
Consulte:
├─ GUIA_CRIAR (completo)
├─ PADROES_SISTEMA (técnico)
├─ QUICK_PADROES (resumo)
├─ SNIPPETS (código)
└─ FAQ (dúvidas)
    ↓
    
IMPLEMENTANDO?
    ↓
Use Checklist de GUIA_CRIAR
    ↓
Copie de SNIPPETS_CODIGO_PADRAO
    ↓
Valide contra PADROES_SISTEMA
    ↓
✅ Pronto!
```

---

## 🔍 BUSCA RÁPIDA

### "Como fazer SELECT?"
→ SNIPPETS_CODIGO_PADRAO.md (Seção 1)

### "Qual é o prompt completo?"
→ PROMPT_PADRAO_NOVO_CRUD.md

### "O que é soft delete?"
→ FAQ_STATUS_SOFTDELETE.md (P1)

### "Como validar permissões?"
→ PADROES_SISTEMA.md (Seção 3)

### "Preciso de um checklist"
→ GUIA_CRIAR_NOVO_CRUD.md (Seção 4)

### "Resumo rápido de tudo"
→ QUICK_PADROES.md

### "Como restaurar um registro?"
→ FAQ_STATUS_SOFTDELETE.md (P2)

### "Qual é o template do insert.php?"
→ SNIPPETS_CODIGO_PADRAO.md (Seção 4)

---

## 📈 NÍVEL DE DIFICULDADE

| Documento | Iniciante | Intermédio | Avançado |
|-----------|-----------|-----------|----------|
| COMO_PEDIR_NOVO_CRUD.md | ⭐⭐⭐ | ⭐⭐ | ⭐ |
| QUICK_PADROES.md | ⭐⭐⭐ | ⭐⭐ | ⭐ |
| SNIPPETS_CODIGO_PADRAO.md | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
| PROMPT_PADRAO_NOVO_CRUD.md | ⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
| FAQ_STATUS_SOFTDELETE.md | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
| GUIA_CRIAR_NOVO_CRUD.md | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| PADROES_SISTEMA.md | ⭐ | ⭐⭐⭐ | ⭐⭐⭐ |

---

## 💡 DICAS DE USO

1. **Imprima QUICK_PADROES.md** - Cole na parede do time
2. **Adicione FAQ_STATUS_SOFTDELETE.md ao wiki** - Para iniciantes
3. **Use GUIA_CRIAR_NOVO_CRUD.md no onboarding** - Novos devs
4. **Consulte PADROES_SISTEMA.md** - Em code review
5. **Mantenha SNIPPETS_CODIGO_PADRAO.md atualizado** - Quando padrão mudar

---

## 🔄 ATUALIZAÇÃO E MANUTENÇÃO

**Quando adicionar novo padrão:**
1. Atualize PADROES_SISTEMA.md
2. Atualize QUICK_PADROES.md
3. Atualize SNIPPETS_CODIGO_PADRAO.md
4. Atualize GUIA_CRIAR_NOVO_CRUD.md
5. Notifique o time

**Quando descobrir erro/omissão:**
1. Corrija GUIA_CRIAR_NOVO_CRUD.md
2. Corrija PADROES_SISTEMA.md
3. Crie PR para revisão
4. Notifique time

---

## 📝 ORDEM DE LEITURA RECOMENDADA

### Para Iniciante:
1. COMO_PEDIR_NOVO_CRUD.md (5 min)
2. QUICK_PADROES.md (3 min)
3. FAQ_STATUS_SOFTDELETE.md (10 min)
4. SNIPPETS_CODIGO_PADRAO.md (consulta conforme precisa)

### Para Desenvolvedor Intermediário:
1. PROMPT_PADRAO_NOVO_CRUD.md (5 min)
2. PADROES_SISTEMA.md (15 min)
3. GUIA_CRIAR_NOVO_CRUD.md (20 min)
4. SNIPPETS_CODIGO_PADRAO.md (referência)

### Para Tech Lead:
1. PADROES_SISTEMA.md (completo)
2. GUIA_CRIAR_NOVO_CRUD.md (sections 1-6)
3. Todos os outros (context)

---

## 🎓 ROADMAP DE APRENDIZADO

**Semana 1:**
- [ ] Ler COMO_PEDIR_NOVO_CRUD.md
- [ ] Ler QUICK_PADROES.md
- [ ] Ler FAQ_STATUS_SOFTDELETE.md

**Semana 2:**
- [ ] Ler PROMPT_PADRAO_NOVO_CRUD.md
- [ ] Ler PADROES_SISTEMA.md
- [ ] Consultar SNIPPETS durante prática

**Semana 3:**
- [ ] Ler GUIA_CRIAR_NOVO_CRUD.md
- [ ] Fazer exercício: criar 1 CRUD simples
- [ ] Revisar checklist após criar

**Semana 4:**
- [ ] Criar CRUD intermediário
- [ ] Ajudar iniciante
- [ ] Propor melhorias

---

## 📞 SUPORTE

**Dúvida?** Consulte nesta ordem:
1. **QUICK_PADROES.md** (2 min)
2. **FAQ_STATUS_SOFTDELETE.md** (10 min)
3. **GUIA_CRIAR_NOVO_CRUD.md** (20 min)
4. **Procure no GitHub Issues**
5. **Pergunte no Slack #desenvolvimento**

---

**Última atualização:** 27/01/2026  
**Total de documentos:** 7  
**Padrões cobertos:** 15+  
**Exemplos inclusos:** 40+  
**Status:** ✅ Produção  

> 💪 **Você está pronto para criar CRUDs em qualquer padrão!**
