# 🚀 QUICK START - Criação Automática de Domínios

> **TOTALMENTE AUTOMIZADO! 🎯**  
> Sistema completo de geração de domínios com integração automática.

## ⚡ Execução Rápida (2 minutos)

```bash
# 1️⃣ Preparar ambiente
git checkout main && git pull origin main

# 2️⃣ Configurar Git (apenas primeira vez)
git config --global user.email "seu.email@grupopralog.com.br"

# 3️⃣ Executar criador automático
npm run create:domain
```

## 🎯 O que é Automatizado?

### ✅ **TOTALMENTE AUTOMÁTICO**
- **Geração de código** - Component, Service, Interface completos
- **Integração no sistema** - Rotas + Menu + MCP
- **Criação de branch** - `feature/domain-[nome]` automática
- **Compilação** - Build automático com verificação
- **Commit automático** - Mensagem padrão estruturada
- **Validação** - Pré-requisitos e configurações

### 🔧 **RECURSOS INCLUÍDOS**
- **BaseDomainComponent** - Herança automática
- **Registry Pattern** - Auto-registro inteligente  
- **Data Table** - Listagem com filtros/paginação
- **Tab System** - Formulários com sub-abas
- **Componentes especializados** - Quilometragem, cor, status
- **Remote-selects** - Busca em APIs externas
- **Templates ERP** - HTML/SCSS separados
- **Side card** - Painel lateral opcional
- **Upload de fotos** - Sub-aba automática

## 📝 Exemplo de Execução

```bash
$ npm run create:domain

🚀 CRIADOR DE DOMÍNIOS - SISTEMA PRAFROTA

ℹ️  Verificando pré-requisitos...
✅ Branch main ativa
✅ Git configurado: João Silva <joao.silva@grupopralog.com.br>

🚀 CONFIGURAÇÃO DO DOMÍNIO

📝 Nome do domínio (singular, minúsculo): products
📋 Nome para exibição (plural): Produtos

🧭 Opções de posição no menu:
1. vehicles (após Veículos)
2. drivers (após Motoristas) 
3. routes (após Rotas)
4. finances (após Finanças)
5. reports (após Relatórios)
6. settings (após Configurações)

Escolha a posição (1-6): 2

📸 Terá sub-aba de fotos? (s/n): s
🃏 Terá Side Card (painel lateral)? (s/n): s

🎨 Componentes especializados:
🛣️  Terá campo de quilometragem? (s/n): n
🎨 Terá campo de cor? (s/n): s
📊 Terá campo de status? (s/n): s

🔍 Haverá campos para buscar dados de outras APIs? (s/n): s

🔗 Configuração de campos Remote-Select:
Nome do campo (ou "fim" para terminar): supplier
Opções de API:
1. drivers (Motoristas)
2. vehicles (Veículos)
3. suppliers (Fornecedores)
4. outro
Escolha a API (1-4): 3
✅ Campo supplier adicionado

Nome do campo (ou "fim" para terminar): fim

🚀 CONFIRMAÇÃO DA CONFIGURAÇÃO

📝 Nome: products
📋 Exibição: Produtos
🧭 Menu: após drivers
📸 Fotos: Sim
🃏 Side Card: Sim
🛣️  Quilometragem: Não
🎨 Cor: Sim
📊 Status: Sim
🔗 Remote Selects: supplier

🌿 Branch: feature/domain-products
🎯 Funcionalidades: CRUD básico, upload de fotos, painel lateral, seleção de cores, controle de status

✅ Confirma a criação do domínio? (s/n): s

🚀 CRIAÇÃO DE BRANCH

ℹ️  Criando nova branch: feature/domain-products
✅ Branch criada e ativada: feature/domain-products
📝 Descrição da branch: Implementação do domínio Produtos
🎯 Funcionalidades: CRUD básico, upload de fotos, painel lateral, seleção de cores, controle de status

ℹ️  Gerando estrutura do domínio...
✅ ProductsComponent criado
✅ ProductsService criado
✅ Products interface criada
✅ Template HTML criado
✅ Estilos SCSS criados
ℹ️  Atualizando sistema de rotas...
✅ Rota adicionada ao sistema de roteamento
ℹ️  Atualizando menu da sidebar...
✅ Menu adicionado à sidebar
ℹ️  Atualizando configuração MCP...
✅ Configuração MCP atualizada
✅ Estrutura gerada com sucesso!

🚀 COMPILAÇÃO E TESTES AUTOMÁTICOS

ℹ️  Compilando aplicação...
✅ Compilação realizada com sucesso! ✨
⚠️  Testes não executados (podem não existir ou estar configurados)

🚀 COMMIT AUTOMÁTICO

✅ Commit realizado na branch feature/domain-products! 📝
ℹ️  Para fazer push: git push origin feature/domain-products

🎉 DOMÍNIO CRIADO COM SUCESSO!
🚀 Sistema totalmente integrado e funcional!
📝 Próximos passos:
   1. Testar: http://localhost:4200/app/products
   2. Push: git push origin feature/domain-products
   3. Criar PR: Para integrar na branch main
```

## 🎯 Próximos Passos Automáticos

Após a execução do script:

```bash
# Push automático (opcional)
git push origin feature/domain-[nome]

# Testar imediatamente
# O servidor já está rodando em localhost:4200
# Navegar para: /app/[nome-do-dominio]
```

## 📁 Estrutura Gerada

```
domain/[nome]/
├── [nome].component.ts       # ✅ Component com BaseDomainComponent
├── [nome].component.html     # ✅ Template estruturado
├── [nome].component.scss     # ✅ Estilos ERP responsivos
├── [nome].service.ts         # ✅ Service com ApiClientService  
├── [nome].interface.ts       # ✅ Interface TypeScript
└── README.md                 # ✅ Documentação específica
```

## ⚡ Super Automação Adicional

### 🚀 **MODO EXPRESS** (30 segundos)
Para criação ultra-rápida via argumentos:

```bash
# Domínio básico
npm run create:domain:express -- products Produtos 2

# Domínio completo
npm run create:domain:express -- contracts Contratos 3 --photos --sidecard --color --status --commit

# Múltiplos domínios em sequência
npm run create:domain:express -- suppliers Fornecedores 4 --sidecard --status
npm run create:domain:express -- employees Funcionários 5 --photos --status  
npm run create:domain:express -- clients Clientes 1 --sidecard --color
```

### 🎛️ **Flags Disponíveis:**
- `--photos` - Sub-aba de fotos
- `--sidecard` - Side card lateral
- `--kilometer` - Campo quilometragem
- `--color` - Campo cor
- `--status` - Campo status
- `--commit` - Commit automático

## 🎉 Resultado Final

- ✅ **Domínio funcionando** em 2 minutos
- ✅ **Sistema integrado** - rotas, menu, MCP
- ✅ **Branch pronta** para PR
- ✅ **Compilação validada** 
- ✅ **Commit estruturado**
- ✅ **Zero configuração manual**

---

**🚀 Agora é só programar as regras de negócio específicas!**

---

## 🎯 **Framework de Geração Automática**

O sistema PraFrota possui um **framework que gera automaticamente**:
- 📋 **Listagem** com filtros, busca e paginação
- ➕ **Cadastro** com formulários dinâmicos e validação
- ✏️ **Edição** com componentes especializados
- 🎨 **Interface** responsiva e profissional

---

## ❓ **Perguntas do Questionário**

### **Básicas**
- 📝 **Nome do domínio**: Ex: `contracts`, `suppliers`
- 🧭 **Menu lateral**: Onde posicionar no menu
- 📸 **Fotos**: Sub-aba para upload de imagens
- 🃏 **Side Card**: Painel lateral com resumo

### **Componentes Especializados**
- 🛣️ **Quilometragem**: Campo formatado (123.456 km)
- 🎨 **Cor**: Seletor visual com círculos
- 📊 **Status**: Badges coloridos na tabela
- 🔍 **Remote-Select**: Busca em outras APIs

---

## 📁 **Resultado Gerado**

```
domain/[seu-dominio]/
├── [nome].component.ts       # ✅ Componente completo
├── [nome].component.html     # ✅ Template HTML
├── [nome].component.scss     # ✅ Estilos CSS
├── [nome].service.ts         # ✅ Service para API
├── [nome].interface.ts       # ✅ Interface TypeScript
└── README.md                 # ✅ Documentação
```

**Tudo pronto para usar!** 🎉

---

## 🆘 **Problemas Comuns**

| Erro | Solução |
|------|---------|
| "Branch deve ser main" | `git checkout main` |
| "Email @grupopralog.com.br" | `git config --global user.email "seu@grupopralog.com.br"` |
| "Nome inválido" | Use singular, minúsculo, sem espaços |
| Erro de compilação | `ng build` para verificar |

---

## 📚 **Documentação Completa**

- 📖 [Guia Completo](projects/idt_app/docs/ONBOARDING_NEW_DOMAIN.md)
- 🛠️ [Scripts](scripts/README.md)
- 🎯 [Padrões](projects/idt_app/docs/general/CURSOR.md)

---

**Dúvidas? Consulte a documentação ou peça ajuda à equipe! 💬** 