# 📝 O QUE DIGITAR PARA ME PEDIR UM NOVO CRUD

## 🎯 PADRÕES AUTOMÁTICOS DO SISTEMA

**⚠️ IMPORTANTE:** Todo novo CRUD segue SEMPRE esses padrões:

| Campo | Tipo | Padrão | Descrição |
|-------|------|--------|----------|
| **id** | serial4 | Auto-increment | Primary key automático |
| **status** | int4 | 0 = Ativo | 0=Ativo, 2=Excluído (soft delete) |
| **empresa** | int4 | Obrigatório | Sempre filtrado na query |

**Validações automáticas:**
- visualizar (listar)
- criar (inserir)
- editar (atualizar)
- deletar (soft delete com status=2)

---

## ⚡ Instrução Simples para a Equipe

Quando quiserem que eu crie um novo CRUD, digitem EXATAMENTE isso:

---

## 🔴 TEMPLATE PARA COPIAR E ADAPTAR

```
Crie uma tela de cadastro seguindo o padrão de dm_motorista/dm_grupopessoa com os seguintes dados:

**Nome do Módulo:** dm_seu_modulo
**Rótulo da Página:** "Seu Rótulo"

**DDL da Tabela:**
[COLE AQUI O CREATE TABLE]

**Arquivos necessários:** Todos (select, index, cad, insert, delete, filtro)

**Padrões automáticos:**
- id: serial4 (auto-increment)
- status: int4 (0=ativo, 2=excluído)
- empresa: int4 (obrigatório)
- Validações: visualizar, criar, editar, deletar
```

---

## 📋 EXEMPLO 1: Novo Módulo Simples

```
Crie uma tela de cadastro seguindo o padrão de dm_motorista/dm_grupopessoa com os seguintes dados:

**Nome do Módulo:** dm_operacao
**Rótulo da Página:** "Operação"

**DDL da Tabela:**
CREATE TABLE public.dim_operacao (
	id serial4 NOT NULL,
	empresa int4 NOT NULL,
	descricao varchar NOT NULL,
	tipo varchar,
	status int4 DEFAULT 0 NOT NULL,
	CONSTRAINT dim_operacao_pk PRIMARY KEY (id)
);

**Arquivos necessários:** Todos (select, index, cad, insert, delete, filtro)

**Padrão:** Idêntico ao dm_motorista
```

---

## 📋 EXEMPLO 2: Módulo com Relacionamentos

```
Crie uma tela de cadastro seguindo o padrão de dm_motorista/dm_grupopessoa com os seguintes dados:

**Nome do Módulo:** dm_veiculo
**Rótulo da Página:** "Veículo"

**DDL da Tabela:**
CREATE TABLE public.dim_veiculo (
	id serial4 NOT NULL,
	empresa int4 NOT NULL,
	placa varchar NOT NULL,
	marca varchar,
	modelo varchar,
	ano int4,
	chassi varchar,
	status int4 DEFAULT 0 NOT NULL,
	CONSTRAINT dim_veiculo_pk PRIMARY KEY (id)
);

**Campos para filtro:** id, placa, marca, modelo, status

**Arquivos necessários:** Todos (select, index, cad, insert, delete, filtro)

**Padrão:** Idêntico ao dm_motorista
```

---

## 🎯 CHECKLIST DO QUE INCLUIR:

- [ ] **Nome do Módulo** (ex: `dm_operacao`, `dm_veiculo`)
- [ ] **Rótulo da Página** (ex: `Operação`, `Veículo`)
- [ ] **DDL Completo** (CREATE TABLE inteiro)
- [ ] **Menção:** "Padrão dm_motorista/dm_grupopessoa"
- [ ] **Opção 1:** "Todos os arquivos" OU
- [ ] **Opção 2:** "Apenas index.php, cad.php, insert.php"

---

## ✅ O QUE EU VOU FAZER:

1. ✅ Criar pasta `/dm_seu_modulo/`
2. ✅ Gerar `select.php` com query e filtros
3. ✅ Gerar `index.php` com listagem otimizada
4. ✅ Gerar `cad.php` com formulário
5. ✅ Gerar `insert.php` com validações
6. ✅ Gerar `delete.php` com segurança
7. ✅ Gerar `filtro.php` com filtros avançados
8. ✅ Incluir `validarPermissaoOuRedirecionar()`
9. ✅ Incluir `obterTodasPermissoes()` otimizado
10. ✅ Padrão 100% idêntico ao dm_motorista

---

## ❌ O QUE NÃO É PRECISO INCLUIR:

- ❌ Descrição longa de campos
- ❌ Especificação de estilo CSS
- ❌ Detalhes de permissão individuais
- ❌ Instruções de como fazer

**Eu já sei tudo isso!** Só preciso do DDL e do nome.

---

## 🚀 VERSÃO ULTRA RÁPIDA

Se a equipe quiser ir **AINDA MAIS RÁPIDO**, podem digitar assim:

```
Novo CRUD padrão dm_motorista:

Nome: dm_operacao
Rótulo: Operação

DDL:
CREATE TABLE public.dim_operacao (
	id serial4 NOT NULL,
	empresa int4 NOT NULL,
	descricao varchar NOT NULL,
	status int4 DEFAULT 0 NOT NULL,
	CONSTRAINT dim_operacao_pk PRIMARY KEY (id)
);
```

**É ISSO!** Eu entendo e crio tudo automaticamente.

---

## 📞 DÚVIDAS?

- **"Por que preciso do DDL?"** → Para saber quais campos criar no formulário
- **"E se tiver campos de relacionamento?"** → Inclua no DDL e eu crio SELECTs
- **"E se quiser customizar?"** → Depois de criado, peça para editar partes específicas
- **"Preciso do select.php separado?"** → Não! Eu crio junto com os outros

---

**Versão:** 1.0  
**Última atualização:** 27/01/2026  
**Status:** Pronto para Produção ✅

---

## 💬 EXEMPLO FINAL PARA PASSAR PARA A EQUIPE:

> **Para pedir um novo CRUD para o Copilot, envie:**
>
> ```
> Crie uma tela de cadastro seguindo o padrão de dm_motorista com:
> 
> Nome: dm_seu_modulo
> Rótulo: Seu Rótulo
> 
> DDL:
> [sua CREATE TABLE aqui]
> ```
>
> **Pronto!** Ele cria tudo automaticamente!
