# 🤖 INSTRUÇÕES ESPECÍFICAS PARA IA - INTEGRA FINANCE (REACT)
## 🎯 OBJETIVO
Fornecer contexto detalhado para que a IA compreenda o projeto Integra Finance (PRALOG) em sua nova arquitetura React e possa oferecer sugestões precisas, seguindo os padrões de alta performance e design premium.
## 📋 CONTEXTO TÉCNICO ESSENCIAL
### Arquitetura Atual
- **Framework**: React 18+ com Vite.
- **Linguagem**: JavaScript (Moderno/ES6+).
- **Estilização**: Tailwind CSS (Mobile-first, Design System Atômico).
- **UI library**: Shadcn UI (Radix UI + Lucide).
- **Conceito**: Arquitetura Modular (Encapsulamento de features).
- **Estado**: Zustand (Global) + React Context (Módulos).
- **Padrão Principal**: Domain-Driven Feature Folders (Módulos em `src/features/`).
### Template de Referência OBRIGATÓRIO (Módulo RH)
**Localização**: `src/features/rh/ponto-eletronico/`
Deve conter:
- ✅ Hook customizado para lógica (`usePonto.js`).
- ✅ Componentes de apresentação isolados.
- ✅ Tratamento de geolocalização e erros null-safe.
- ✅ Animações Framer Motion ou Tailwind Keyframes.
### Estrutura de Pastas Obrigatória
```
src/
├── components/
│ ├── ui/ # Componentes Shadcn (NUNCA EDITAR MANUALMENTE)
│ └── shared/ # Componentes transversais (Ex: StatCard, PageHeader)
├── features/ # Domínios de negócio (FOLDER POR FEATURE)
├── hooks/ # Hooks globais (Ex: useTheme, useAuth)
├── services/ # Integrações com API (Axios/React Query)
└── utils/ # Formatadores e validadores
```
## 🛠️ PADRÕES DE DESENVOLVIMENTO
### 1. Componentes Funcionais (OBRIGATÓRIO)
```jsx
export const PointCard = ({ data }) => {
return (
{/* ... */}
);
};
```
### 2. Hooks para Lógica de Negócio
```javascript
export const useAuth = () => {
const login = async (credentials) => {
// Implementação
};
return { login };
};
```
### 3. JSDoc para Documentação (Recomendado)
```javascript
/**
* @typedef {Object} User
* @property {string} id
* @property {string} name
* @property {'active' | 'inactive'} status
*/
```
## 🎨 COMPONENTES COMPARTILHADOS PRINCIPAIS
### StatsGrid
**Localização**: `src/components/shared/StatsGrid.jsx`
- Grid responsivo de KPIs com suporte a ícones e tendências.
### DataTable
**Localização**: `src/components/shared/DataTable.jsx`
- Wrapper sobre o `Table` do Shadcn com paginação e busca interna.
### AppLayout
**Localização**: `src/components/layout/AppLayout.jsx`
- Define a estrutura de Sidebar, Header e Main Content.
## 🏗️ ARQUITETURA DE AMBIENTES E ISOLAMENTO
### Conceito de Ambiente
Um "Ambiente" (ex: Financeiro, RH, Frota) é um ecossistema isolado dentro do projeto.
- **Estrutura**: Composto por um Sidebar lateral, Header específico e um conjunto de módulos/telas.
- **Independência**: Cada ambiente deve ser autossuficiente. Evite dependências cruzadas entre ambientes.
### Regra de Ouro: Isolamento Total
- **Modificação Segura**: Ao ajustar um ambiente, a IA **NUNCA** deve alterar componentes internos de outro ambiente.
- **Localização de Componentes**: Componentes que pertencem apenas a um ambiente devem residir em `src/features/[ambiente]/components/`.
- **Uso de Shared**: Somente use `src/components/shared` para elementos verdadeiramente universais (ex: Botões base, Inputs padrão). Se uma alteração no `shared` puder quebrar outro ambiente, crie uma cópia local no ambiente em desenvolvimento ou use variantes/props.
## 🎨 IDENTIDADE VISUAL E TEMAS POR MÓDULO
### Padrão de Cores Único
- Cada ambiente deve possuir uma paleta de cores distinta para facilitar a orientação do usuário.
- **Implementação**: Utilize variáveis CSS ou o sistema de temas do Tailwind configurado via `EnvironmentProvider` ou classes de escopo no container raiz do ambiente (ex: `
`).
### Design Premium
- Use gradientes sutis, micro-animações (Framer Motion) e sombras suaves para diferenciar os ambientes, mantendo a consistência da marca Integra Finance.
## 🛰️ CAMADA DE DADOS E COMUNICAÇÃO (AXIOS)
### Melhores Práticas com Axios
1. **Instância Central**: Use sempre a instância configurada em `src/services/api.js`.
2. **Organização de Serviços**: Cada feature deve ter seu próprio arquivo de serviço (`[feature]Service.js`) que encapsula as chamadas de API.
3. **Adaptadores (Data Mapping)**: Transforme os dados da API para o formato ideal do componente dentro do Service. O componente não deve conhecer a estrutura bruta do banco de dados.
4. **Tratamento de Erros**:
- Implemente `try/catch` nos services ou hooks.
- Use interceptores para gerenciar tokens expirados (401) e erros globais.
- Forneça feedbacks amigáveis ao usuário via Toasts ou alertas.
## 🧪 QUALIDADE E TESTES
### Regras de Validação de Novas Funcionalidades
Toda nova feature ou ambiente desenvolvido deve seguir este protocolo:
1. **Sanity Check**: O ambiente carrega todos os submódulos sem erros de console.
2. **Validação de Fluxo**: Testar o caminho feliz (uso normal) e caminhos de erro (API offline, campos vazios).
3. **Testes Propostos**: A IA deve sugerir ou implementar testes (Unitários para hooks e Integração para componentes críticos) utilizando ferramentas como Vitest/React Testing Library, garantindo que "erros bobos" não cheguem à produção.
## ⚡ PERFORMANCE E OTIMIZAÇÃO
### Diretrizes para um Projeto Leve
1. **Code Splitting (Lazy Loading)**: Carregue cada ambiente dinamicamente usando `React.lazy()` e `Suspense` nas rotas principais.
2. **Memoização Estratégica**: Use `useMemo` e `useCallback` para evitar re-renderizações desnecessárias em componentes pesados (Gráficos, Tabelas grandes).
3. **Aset Management**: Minimize o uso de bibliotecas externas pesadas. Sempre prefira soluções nativas ou componentes Shadcn já existentes.
4. **Otimização de Imagens/Ícones**: Use ícones vetoriais (Lucide) e comprima imagens geradas.
## 📝 REGRAS ESPECÍFICAS PARA SUGESTÕES
### SEMPRE Fazer:
1. **Verificar** componentes existentes no Shadcn antes de criar novos.
2. **Encapsular** lógica dentro da pasta `features/`.
3. **Usar** um arquivo `index.js` em cada feature para expor apenas o necessário (Public API).
4. **Isolar** o ambiente em desenvolvimento para não afetar outros módulos.
5. **Adicionar** comentários em português explicativos sobre a lógica de isolamento.
6. **Validar** performance após grandes adições de código.
7. **Usar** Tailwind para 100% da estilização.
8. **Conceito modular** Desenvolva seguindo os conceitos mais modernos e de melhores práticas em construção modular com React.
### NUNCA Fazer:
1. ❌ Importar componentes privados de um ambiente em outro.
2. ❌ Criar lógica de negócio global que seja específica de apenas um módulo.
3. ❌ Ignorar o bundle size ao adicionar novas dependências.
4. ❌ Criar componentes gigantes (> 200 linhas).
## 🛰️ CAMADA DE DADOS E COMUNICAÇÃO (DAL - RESUMO)
### 1. Estrutura de Comunicação Híbrida (API + MOCK)
Toda funcionalidade deve ser construída seguindo o padrão de Provider Centralizado. A IA deve garantir que o Front-end seja capaz de rodar 100% offline via alternância de flag.
### 2. Padrão de Implementação de Service
Obrigatório seguir o contrato de latência simulada para Mocks e tratamento de dados centralizado.
## 🚨 CONFIGURAÇÃO DE DESENVOLVIMENTO
- ✅ **Comando para Rodar**: `npm run dev`
- ✅ **Linter**: ESLint + Prettier
**IMPORTANTE**: Esta documentação é a verdade única para o padrão de código. Priorize o isolamento, a performance e a experiência premium por ambiente.