# 📚 Documentação PlanFi BFF

Bem-vindo à documentação técnica completa do PlanFi BFF (Backend for Frontend).

## 📖 Guias Disponíveis

### 🚀 Início Rápido
- **[README Principal](../README.md)** - Visão geral, instalação e início rápido

### 🔐 Autenticação e Segurança
- **[Sistema de Autenticação JWT](authentication.md)** - Configuração, guards, decorators e validações
- **[Integração Laravel](laravel-integration.md)** - Proxy transparente e JWT compartilhado

### 📚 Referência da API
- **[API Reference](api-reference.md)** - Documentação completa de todos os endpoints
- **[Integração Pluggy](pluggy-integration.md)** - Conexão com API Pluggy para dados bancários

### 🧪 Desenvolvimento e Testes
- **[Guia de Testes](testing-guide.md)** - Testes E2E, unitários e estratégias de mocking
- **[Sistema de Mocks](mock-system.md)** - MSW e banco de dados em memória

### 🔧 Collections e Ferramentas
- **[Postman Collection](../postman/README.md)** - Collection completa para testes no Postman

---

## 🗺️ Navegação Rápida

### Por Funcionalidade

| Funcionalidade | Documentação | Endpoints | Testes |
|----------------|--------------|-----------|--------|
| **Autenticação** | [authentication.md](authentication.md) | [API Reference - Auth](api-reference.md#-auth-module) | [Testing Guide - Auth](testing-guide.md#3-auth-module) |
| **Portfolios** | [README Principal](../README.md#-módulos) | [API Reference - Portfolios](api-reference.md#-portfolios-module) | [Testing Guide - Portfolios](testing-guide.md#1-portfolios-module) |
| **Assets** | [README Principal](../README.md#-módulos) | [API Reference - Assets](api-reference.md#-portfolio-assets-module) | [Testing Guide - Assets](testing-guide.md#2-portfolio-assets-module) |
| **Pluggy** | [pluggy-integration.md](pluggy-integration.md) | [API Reference - Pluggy](api-reference.md#-pluggy-module) | [Testing Guide - Pluggy](testing-guide.md#4-pluggy-module) |
| **Laravel Proxy** | [laravel-integration.md](laravel-integration.md) | [API Reference - Laravel](api-reference.md#-laravel-api-module) | [Testing Guide - Laravel](testing-guide.md#5-laravel-api-module) |
| **OpenFinance** | [README Principal](../README.md#-módulos) | [API Reference - OpenFinance](api-reference.md#-openfinance-module) | [Testing Guide - OpenFinance](testing-guide.md#6-openfinance-module) |

### Por Tipo de Usuário

#### 👨‍💻 **Desenvolvedor Frontend**
1. [API Reference](api-reference.md) - Todos os endpoints disponíveis
2. [Sistema de Autenticação](authentication.md) - Como usar JWT nos requests
3. [Postman Collection](../postman/README.md) - Testar endpoints rapidamente

#### 🔧 **Desenvolvedor Backend**
1. [README Principal](../README.md) - Arquitetura e configuração
2. [Integração Laravel](laravel-integration.md) - Proxy e comunicação
3. [Sistema de Mocks](mock-system.md) - Desenvolvimento sem dependências
4. [Guia de Testes](testing-guide.md) - Como criar e executar testes

#### 🧪 **QA/Tester**
1. [Guia de Testes](testing-guide.md) - Estratégias e comandos de teste
2. [API Reference](api-reference.md) - Endpoints e códigos de erro
3. [Postman Collection](../postman/README.md) - Collection para testes manuais

#### 🚀 **DevOps/SysAdmin**
1. [README Principal](../README.md) - Configuração e deploy
2. [Sistema de Autenticação](authentication.md) - Configuração JWT
3. [Integração Laravel](laravel-integration.md) - Configuração de integração

---

## 🔍 Busca Rápida

### Configuração
- **Variáveis de Ambiente**: [README Principal](../README.md#-configuração)
- **JWT Setup**: [Authentication - Configuração](authentication.md#-configuração)
- **Laravel Integration**: [Laravel Integration - Configuração](laravel-integration.md#-configuração)
- **Pluggy Setup**: [Pluggy Integration - Configuração](pluggy-integration.md#-configuração)

### Desenvolvimento
- **Início Rápido**: [README Principal](../README.md#-início-rápido)
- **Sistema de Mocks**: [Mock System](mock-system.md)
- **Testes E2E**: [Testing Guide](testing-guide.md)
- **Debugging**: [Testing Guide - Debugging](testing-guide.md#-debugging-de-testes)

### Produção
- **Deploy**: [README Principal](../README.md#-configuração)
- **Monitoramento**: [Laravel Integration - Monitoramento](laravel-integration.md#-monitoramento-e-logs)
- **Segurança**: [Authentication - Melhores Práticas](authentication.md#-melhores-práticas)
- **Performance**: [Laravel Integration - Performance](laravel-integration.md#-melhores-práticas)

---

## 📝 Como Usar Esta Documentação

### 1. **Primeiro Acesso**
- Comece pelo [README Principal](../README.md) para visão geral
- Configure o ambiente seguindo o [Início Rápido](../README.md#-início-rápido)
- Teste com a [Postman Collection](../postman/README.md)

### 2. **Desenvolvimento**
- Use o [Sistema de Mocks](mock-system.md) para desenvolvimento offline
- Consulte a [API Reference](api-reference.md) para endpoints
- Execute testes com o [Guia de Testes](testing-guide.md)

### 3. **Integração**
- Configure [Autenticação JWT](authentication.md) para segurança
- Implemente [Integração Laravel](laravel-integration.md) para proxy
- Conecte com [Pluggy](pluggy-integration.md) para dados bancários

### 4. **Produção**
- Revise [Melhores Práticas de Segurança](authentication.md#-melhores-práticas)
- Configure [Monitoramento e Logs](laravel-integration.md#-monitoramento-e-logs)
- Mantenha [Testes Atualizados](testing-guide.md)

---

## 🆘 Precisa de Ajuda?

### Problemas Comuns
- **JWT não funciona**: Ver [Authentication - Troubleshooting](authentication.md#-tratamento-de-erros)
- **Laravel não conecta**: Ver [Laravel Integration - Tratamento de Erros](laravel-integration.md#-tratamento-de-erros)
- **Testes falhando**: Ver [Testing Guide - Debugging](testing-guide.md#-debugging-de-testes)
- **Mocks não funcionam**: Ver [Mock System - Testando](mock-system.md#-testando-o-sistema)

### Onde Buscar
1. **Documentação específica** do módulo que está usando
2. **API Reference** para detalhes de endpoints
3. **Guia de Testes** para problemas de teste
4. **Issues do repositório** para problemas conhecidos

### Como Contribuir
- Reporte bugs via issues do repositório
- Sugira melhorias na documentação
- Contribua com exemplos e casos de uso
- Mantenha a documentação atualizada

---

## 📊 Status da Documentação

| Documento | Status | Última Atualização |
|-----------|--------|-------------------|
| [README Principal](../README.md) | ✅ Completo | Janeiro 2024 |
| [Authentication](authentication.md) | ✅ Completo | Janeiro 2024 |
| [Laravel Integration](laravel-integration.md) | ✅ Completo | Janeiro 2024 |
| [API Reference](api-reference.md) | ✅ Completo | Janeiro 2024 |
| [Testing Guide](testing-guide.md) | ✅ Completo | Janeiro 2024 |
| [Mock System](mock-system.md) | ✅ Completo | Janeiro 2024 |
| [Pluggy Integration](pluggy-integration.md) | ✅ Completo | Janeiro 2024 |

---

<div align="center">

**Documentação mantida pela equipe PlanFi**

[![NestJS](https://img.shields.io/badge/Built%20with-NestJS-E0234E?style=flat-square&logo=nestjs)](https://nestjs.com/)
[![TypeScript](https://img.shields.io/badge/Written%20in-TypeScript-007ACC?style=flat-square&logo=typescript)](https://www.typescriptlang.org/)

</div>
