forlogic-core 1.4.15 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -1116
- package/dist/README.md +36 -0
- package/dist/docs/AI_RULES.md +213 -0
- package/dist/docs/README.md +102 -0
- package/dist/docs/TROUBLESHOOTING.md +473 -0
- package/dist/docs/architecture/TOKENS_ARCHITECTURE.md +712 -0
- package/dist/docs/templates/app-layout.tsx +192 -0
- package/dist/docs/templates/basic-crud-page.tsx +97 -0
- package/dist/docs/templates/basic-crud-working.tsx +182 -0
- package/dist/docs/templates/complete-crud-example.tsx +307 -0
- package/dist/docs/templates/custom-form.tsx +99 -0
- package/dist/docs/templates/custom-service.tsx +194 -0
- package/dist/docs/templates/permission-check-hook.tsx +275 -0
- package/dist/docs/templates/qualiex-config.ts +137 -0
- package/dist/docs/templates/qualiex-integration-example.tsx +430 -0
- package/dist/docs/templates/quick-start-example.tsx +96 -0
- package/dist/docs/templates/rls-policies.sql +80 -0
- package/dist/docs/templates/sidebar-config.tsx +145 -0
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.esm.js +2 -2
- package/dist/index.js +2 -2
- package/package.json +4 -1
package/dist/README.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# 🧱 Documentação exclusiva para este projeto
|
|
2
|
+
|
|
3
|
+
> **Sistema empresarial com React + TypeScript + Supabase**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## ⚙️ Configuração deste Projeto
|
|
8
|
+
|
|
9
|
+
### 🗄️ Schema do Banco
|
|
10
|
+
|
|
11
|
+
Schema padrão deste projeto: **`central`**
|
|
12
|
+
|
|
13
|
+
## 🤖 Instruções para IA (Lovable)
|
|
14
|
+
|
|
15
|
+
⚠️ **CONSULTAR SEMPRE antes de qualquer modificação:**
|
|
16
|
+
|
|
17
|
+
1. **README.md da lib**: Acesse via `node_modules/forlogic-core/README.md` - Instalação e Quick Start
|
|
18
|
+
2. **AI_RULES.md**: Acesse via `node_modules/forlogic-core/docs/AI_RULES.md` - **REGRAS CRÍTICAS**
|
|
19
|
+
3. **Templates**: Acesse via `node_modules/forlogic-core/docs/templates/` - Códigos prontos
|
|
20
|
+
4. **Hub da Docs**: Acesse via `node_modules/forlogic-core/docs/README.md` - Navegação completa
|
|
21
|
+
|
|
22
|
+
**NUNCA recriar:**
|
|
23
|
+
- ❌ Integração Qualiex (já existe na lib)
|
|
24
|
+
- ❌ Integração Supabase (já existe na lib)
|
|
25
|
+
- ❌ Sistema CRUD (usar `createCrudPage` da lib)
|
|
26
|
+
- ❌ Componentes base (importar de `forlogic-core`)
|
|
27
|
+
|
|
28
|
+
**SEMPRE verificar:**
|
|
29
|
+
- ✅ Schema padrão do projeto
|
|
30
|
+
- ✅ Templates disponíveis antes de criar do zero
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 📝 Licença
|
|
35
|
+
|
|
36
|
+
MIT License - ForLogic © 2025
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
# ForLogic Core - Regras Críticas para IA
|
|
2
|
+
|
|
3
|
+
⚠️ **CONSULTAR SEMPRE antes de implementar funcionalidades**
|
|
4
|
+
|
|
5
|
+
**Documentação completa:** `forlogic-core/README.md` (quando instalado via npm)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 📋 Checklist Rápido
|
|
10
|
+
|
|
11
|
+
Antes de criar qualquer funcionalidade:
|
|
12
|
+
|
|
13
|
+
- [ ] ✅ Verificar schema do projeto em `KNOWLEDGE.md`
|
|
14
|
+
- [ ] ✅ Usar template CRUD padrão (Regra #2)
|
|
15
|
+
- [ ] ✅ NÃO recriar integrações existentes (Regra #3 e #4)
|
|
16
|
+
- [ ] ✅ Usar `useMemo()` em configs (Regra #5)
|
|
17
|
+
- [ ] ✅ NÃO criar índices sem solicitação (Regra #6)
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## ⚠️ Regra #1: Schema do Projeto
|
|
22
|
+
|
|
23
|
+
**Problema:** IA usa `public` quando projeto tem schema customizado.
|
|
24
|
+
|
|
25
|
+
**Solução:**
|
|
26
|
+
1. **SEMPRE verificar** `KNOWLEDGE.md` → "Schema do Banco"
|
|
27
|
+
2. **NUNCA assumir** schema `public`
|
|
28
|
+
3. **Configurar corretamente** em todos os services
|
|
29
|
+
|
|
30
|
+
**Exemplo:**
|
|
31
|
+
```typescript
|
|
32
|
+
// ❌ ERRADO (assume public)
|
|
33
|
+
const service = createSimpleService<Employee>('employees');
|
|
34
|
+
|
|
35
|
+
// ✅ CORRETO (usa schema do projeto)
|
|
36
|
+
const service = createSimpleService<Employee>('employees', {
|
|
37
|
+
schemaName: 'central' // ← schema do KNOWLEDGE.md
|
|
38
|
+
});
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Ver detalhes:** README.md → "Quick Start" → Seção 1
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## ⚠️ Regra #2: Template CRUD Padrão (Único)
|
|
46
|
+
|
|
47
|
+
**Problema:** IA cria CRUDs customizados complexos desnecessariamente.
|
|
48
|
+
|
|
49
|
+
**Solução:** Usar SEMPRE o template único de 4 passos:
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
// 1. Service
|
|
53
|
+
const service = createSimpleService<Entity>('table_name', { schemaName: 'central' });
|
|
54
|
+
|
|
55
|
+
// 2. Hook
|
|
56
|
+
const useCrud = () => useCrud({ service, queryKey: 'entities' });
|
|
57
|
+
|
|
58
|
+
// 3. Save Handler
|
|
59
|
+
const handleSave = createSimpleSaveHandler({
|
|
60
|
+
service,
|
|
61
|
+
queryClient,
|
|
62
|
+
queryKey: 'entities',
|
|
63
|
+
successMessage: 'Salvo com sucesso!',
|
|
64
|
+
errorMessage: 'Erro ao salvar'
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
// 4. Página
|
|
68
|
+
export default createCrudPage({
|
|
69
|
+
useCrud,
|
|
70
|
+
columns: [...],
|
|
71
|
+
formSections: [...],
|
|
72
|
+
handleSave
|
|
73
|
+
});
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Ver exemplos completos:** README.md → "Quick Start" → Seção 3
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## ⚠️ Regra #3: Integração Qualiex
|
|
81
|
+
|
|
82
|
+
**Problema:** IA recria componentes de seleção de usuários do Qualiex.
|
|
83
|
+
|
|
84
|
+
**Solução:** Usar componentes prontos da lib:
|
|
85
|
+
|
|
86
|
+
```typescript
|
|
87
|
+
import { QualiexUserField, QualiexResponsibleSelectField } from 'forlogic-core';
|
|
88
|
+
|
|
89
|
+
// Campo simples
|
|
90
|
+
<QualiexUserField
|
|
91
|
+
name="user_id"
|
|
92
|
+
label="Usuário"
|
|
93
|
+
control={control}
|
|
94
|
+
/>
|
|
95
|
+
|
|
96
|
+
// Campo com múltipla seleção
|
|
97
|
+
<QualiexResponsibleSelectField
|
|
98
|
+
name="responsibles"
|
|
99
|
+
label="Responsáveis"
|
|
100
|
+
control={control}
|
|
101
|
+
isMulti
|
|
102
|
+
/>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**NÃO criar:** Componentes customizados, hooks próprios, integrações manuais.
|
|
106
|
+
|
|
107
|
+
**Ver detalhes:** README.md → "Integrações" ou templates/qualiex-integration-example.tsx
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## ⚠️ Regra #4: Integração Supabase
|
|
112
|
+
|
|
113
|
+
**Problema:** IA cria cliente Supabase próprio ou configurações manuais.
|
|
114
|
+
|
|
115
|
+
**Solução:** Usar setup automático via `setupQualiexCore()`:
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
// src/main.tsx
|
|
119
|
+
import { setupQualiexCore } from 'forlogic-core';
|
|
120
|
+
|
|
121
|
+
setupQualiexCore({
|
|
122
|
+
supabaseUrl: import.meta.env.VITE_SUPABASE_URL,
|
|
123
|
+
supabaseAnonKey: import.meta.env.VITE_SUPABASE_ANON_KEY
|
|
124
|
+
});
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**NÃO criar:** Clientes Supabase manuais, configurações duplicadas.
|
|
128
|
+
|
|
129
|
+
**Ver detalhes:** README.md → "Quick Start" → Seção 1
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## ⚠️ Regra #5: Performance (Evitar Reloads)
|
|
134
|
+
|
|
135
|
+
**Problema:** Página recarrega ao trocar de rota (sidebar pisca, estado reseta).
|
|
136
|
+
|
|
137
|
+
**Causa:** Configs recriadas a cada render (ex: `sidebarConfig` sem `useMemo`).
|
|
138
|
+
|
|
139
|
+
**Solução:**
|
|
140
|
+
|
|
141
|
+
### ✅ Usar `useMemo()` em configs:
|
|
142
|
+
```typescript
|
|
143
|
+
const sidebarConfig = useMemo(() => ({
|
|
144
|
+
modules: [...]
|
|
145
|
+
}), []); // ← Dependências vazias se config é estático
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### ✅ Estruturar rotas com `<Outlet />`:
|
|
149
|
+
```typescript
|
|
150
|
+
<Routes>
|
|
151
|
+
<Route path="/" element={<AppLayout sidebarConfig={sidebarConfig} />}>
|
|
152
|
+
<Route index element={<HomePage />} />
|
|
153
|
+
<Route path="employees" element={<EmployeesPage />} />
|
|
154
|
+
</Route>
|
|
155
|
+
</Routes>
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**Ver detalhes:** README.md → "Quick Start" → Seção 2 ou templates/app-layout.tsx
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## ⚠️ Regra #6: Índices de Banco de Dados
|
|
163
|
+
|
|
164
|
+
**Problema:** IA cria índices automaticamente em migrations sem necessidade.
|
|
165
|
+
|
|
166
|
+
**Solução:**
|
|
167
|
+
- ✅ **NÃO criar índices automaticamente**
|
|
168
|
+
- ✅ **Criar índices APENAS quando:**
|
|
169
|
+
- Usuário solicita explicitamente
|
|
170
|
+
- Performance está degradada e índice é a solução
|
|
171
|
+
- Há justificativa técnica clara
|
|
172
|
+
|
|
173
|
+
**Exemplo de quando NÃO criar:**
|
|
174
|
+
```sql
|
|
175
|
+
-- ❌ NÃO FAZER (sem solicitação)
|
|
176
|
+
CREATE INDEX idx_employees_name ON central.employees(name);
|
|
177
|
+
CREATE INDEX idx_employees_created_at ON central.employees(created_at);
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Exemplo de quando criar:**
|
|
181
|
+
```sql
|
|
182
|
+
-- ✅ OK (usuário solicitou explicitamente)
|
|
183
|
+
-- "Por favor, crie um índice em 'email' para acelerar as buscas"
|
|
184
|
+
CREATE INDEX idx_employees_email ON central.employees(email);
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## 🎯 Boas Práticas
|
|
190
|
+
|
|
191
|
+
### Ordem dos Providers (App.tsx)
|
|
192
|
+
```typescript
|
|
193
|
+
<ErrorBoundary>
|
|
194
|
+
<QueryClientProvider client={queryClient}>
|
|
195
|
+
<AuthProvider>
|
|
196
|
+
<BrowserRouter>
|
|
197
|
+
<Routes>...</Routes>
|
|
198
|
+
</BrowserRouter>
|
|
199
|
+
</AuthProvider>
|
|
200
|
+
</QueryClientProvider>
|
|
201
|
+
</ErrorBoundary>
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**Nota:** Se inverter, a própria IA verá o erro no console e corrigirá.
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## 🔗 Links Úteis
|
|
209
|
+
|
|
210
|
+
- **Documentação Completa:** `forlogic-core/README.md`
|
|
211
|
+
- **Templates Prontos:** `forlogic-core/docs/templates/`
|
|
212
|
+
- **Troubleshooting:** `forlogic-core/docs/TROUBLESHOOTING.md`
|
|
213
|
+
- **Hub da Docs:** `forlogic-core/docs/README.md`
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# ForLogic Core - Documentação
|
|
2
|
+
|
|
3
|
+
> **Sistema empresarial completo com React + TypeScript + Supabase**
|
|
4
|
+
|
|
5
|
+
Esta é a documentação completa da biblioteca `forlogic-core` para desenvolvimento acelerado de sistemas empresariais.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 📖 Documentação Principal
|
|
10
|
+
|
|
11
|
+
### 📦 [README.md](../README.md)
|
|
12
|
+
**Instalação e Quick Start**
|
|
13
|
+
|
|
14
|
+
Use este guia para:
|
|
15
|
+
- Instalar a biblioteca
|
|
16
|
+
- Configuração inicial
|
|
17
|
+
- Primeiro exemplo CRUD
|
|
18
|
+
- Visão geral dos recursos
|
|
19
|
+
|
|
20
|
+
### 🤖 [AI_RULES.md](AI_RULES.md)
|
|
21
|
+
**Regras críticas para desenvolvimento com IA**
|
|
22
|
+
|
|
23
|
+
Use este guia quando:
|
|
24
|
+
- Desenvolver com assistência de IA
|
|
25
|
+
- Evitar problemas comuns
|
|
26
|
+
- Seguir melhores práticas
|
|
27
|
+
- Verificar checklist antes de criar funcionalidades
|
|
28
|
+
|
|
29
|
+
### 🔧 [TROUBLESHOOTING.md](TROUBLESHOOTING.md)
|
|
30
|
+
**Soluções para problemas comuns**
|
|
31
|
+
|
|
32
|
+
Use este guia quando:
|
|
33
|
+
- Encontrar erros inesperados
|
|
34
|
+
- Precisar depurar problemas
|
|
35
|
+
- Buscar soluções rápidas
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 📁 Templates Prontos
|
|
42
|
+
|
|
43
|
+
Códigos completos e funcionais em `templates/`:
|
|
44
|
+
|
|
45
|
+
- **[app-layout.tsx](templates/app-layout.tsx)** - Layout principal com sidebar e autenticação
|
|
46
|
+
- **[basic-crud-page.tsx](templates/basic-crud-page.tsx)** - CRUD básico completo
|
|
47
|
+
- **[complete-crud-example.tsx](templates/complete-crud-example.tsx)** - CRUD com todos os recursos
|
|
48
|
+
- **[custom-form.tsx](templates/custom-form.tsx)** - Formulário personalizado
|
|
49
|
+
- **[custom-service.tsx](templates/custom-service.tsx)** - Service customizado
|
|
50
|
+
- **[qualiex-integration-example.tsx](templates/qualiex-integration-example.tsx)** - Integração com Qualiex
|
|
51
|
+
- **[sidebar-config.tsx](templates/sidebar-config.tsx)** - Configuração de menu lateral
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 📚 Documentação Adicional
|
|
56
|
+
|
|
57
|
+
- **[CRUD System](../crud/README.md)** - Documentação técnica do sistema CRUD
|
|
58
|
+
- **[Architecture](architecture/)** - Documentos sobre arquitetura interna
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 🧭 Navegação Rápida
|
|
63
|
+
|
|
64
|
+
| Documento | O que contém | Para quem |
|
|
65
|
+
|-----------|-------------|-----------|
|
|
66
|
+
| **README.md** | Instalação, Quick Start, exemplos básicos | Iniciantes, primeiros passos |
|
|
67
|
+
| **AI_RULES.md** | Checklist crítico, regras obrigatórias | IA, desenvolvedores com IA |
|
|
68
|
+
| **TROUBLESHOOTING.md** | Soluções de erros, problemas comuns | Todos |
|
|
69
|
+
| **Templates** | Códigos prontos para copiar | Todos |
|
|
70
|
+
| **crud/README.md** | Documentação técnica do sistema CRUD | Desenvolvedores avançados |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 💡 Fluxo de Ajuda
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
Primeira vez com a lib?
|
|
78
|
+
└─> Leia README.md (instalação + quick start)
|
|
79
|
+
└─> Copie um template de templates/
|
|
80
|
+
└─> Problema? Veja TROUBLESHOOTING.md
|
|
81
|
+
└─> Desenvolvendo com IA? Consulte AI_RULES.md
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 🔄 Mudanças na Estrutura
|
|
87
|
+
|
|
88
|
+
### Versão Atual
|
|
89
|
+
- ✅ **README.md** criado como hub principal
|
|
90
|
+
- ✅ **AI_RULES.md** substitui AI_GUIDE.md (mais focado e prático)
|
|
91
|
+
- ✅ Links atualizados para arquivos existentes
|
|
92
|
+
- ✅ Referências corretas para documentação instalada
|
|
93
|
+
|
|
94
|
+
### Arquivos Removidos
|
|
95
|
+
- ❌ `AI_GUIDE.md` (substituído por AI_RULES.md + README.md)
|
|
96
|
+
- ❌ `DEVELOPER_GUIDE.md` (conteúdo integrado em README.md e crud/README.md)
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## 📝 Licença
|
|
101
|
+
|
|
102
|
+
MIT License - ForLogic © 2025
|