forlogic-core 1.5.2 → 1.5.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forlogic-core",
3
- "version": "1.5.2",
3
+ "version": "1.5.4",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
@@ -1,213 +0,0 @@
1
- # ForLogic Core - Regras Críticas para IA
2
-
3
- ⚠️ **CONSULTAR SEMPRE antes de implementar funcionalidades**
4
-
5
- **Documentação completa:** `forlogic-core/dist/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/dist/README.md`
211
- - **Templates Prontos:** `forlogic-core/dist/docs/templates/`
212
- - **Troubleshooting:** `forlogic-core/dist/docs/TROUBLESHOOTING.md`
213
- - **Hub da Docs:** `forlogic-core/dist/docs/README.md`
@@ -1,102 +0,0 @@
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