# 🤖 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.