# SaveInMed - AI Engineering Standards (Advanced) ## 🎨 Lei do Estilo Único (Frontend) 1. **Zero CSS Customizado**: É PROIBIDO criar classes CSS novas no `globals.css` ou usar o atributo `style={{}}`. 2. **Componentes UI**: Use EXCLUSIVAMENTE componentes da pasta `@/components/ui` (padrão shadcn). Se precisar de um componente novo, peça permissão ou siga o padrão Radix UI. 3. **Atomicidade**: Separe "Smart Components" (que buscam dados) de "Dumb Components" (que apenas renderizam UI). 4. **Tailwind Only**: Use apenas classes utilitárias padrão do Tailwind. Não invente valores arbitrários (ex: `w-[347px]`), use a escala padrão (`w-80`). ## 🧪 Protocolo de Teste (Mandatório) 1. **Backend**: Todo UseCase em `internal/usecase` DEVE ter um arquivo `_test.go` cobrindo sucesso e erro (usando mocks das interfaces em `domain/ports`). 2. **Frontend**: Componentes críticos (Checkout, Cart) devem ter testes unitários com Vitest. 3. **Validação**: Antes de dar a tarefa como pronta, o agente deve rodar `go test ./...` e `npm run build` no frontend para garantir que não quebrou tipos. ## 📠Estrutura de Pastas (Lei do Projeto) - `@/components/modules/*`: Componentes complexos por funcionalidade (ex: `Cart/`, `Checkout/`). - `@/components/ui/*`: Componentes base (Botão, Input, Modal). - `@/hooks/*`: Toda lógica de API e estados complexos. - `@/services/*`: Chamadas puras de API (Axios/Fetch). ## ?? Gestão de Credenciais - **Dinâmico**: Todas as chaves de API devem ser gerenciáveis via Dashboard e salvas no banco de dados. - **Segurança**: Chaves sensíveis devem ser armazenadas de forma segura ou rotacionadas via sistema.