# πŸš€ GUIA RÁPIDO - Primeiros Passos ## ⚑ InΓ­cio RΓ‘pido (5 minutos) ### 1️⃣ Instalar DependΓͺncias ```bash pip install -r requirements.txt ``` ### 2️⃣ Configurar Token da API Na raiz do projeto, edite o arquivo `.env`: ```bash # Abrir ou criar .env na raiz # Linux/Mac: nano .env # Windows: notepad .env ``` ConteΓΊdo do arquivo: ``` API_SUPRIMENTOS_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE4MDk1Mzg4NzcsInVzZXJuYW1lIjoic3VwcmltZW50b3MuZ2luc2VuZyJ9.VyQOfFKOf56_GqmECfuQ29Y5sEGtOopVS4XC-cA54DU API_SUPRIMENTOS_DETALHE_URL=https://api.grupoginseng.com.br/api/suprimentos_detalhepedido?limit=50000&status=pendente API_SUPRIMENTOS_IMPLANTACAO_URL=https://api.grupoginseng.com.br/api/vw_suprimentos_implantacaopedido?limit=50000 ``` ### 3️⃣ Testar a IntegraΓ§Γ£o ```bash python test_api_integration.py ``` VocΓͺ deve ver: ``` πŸ§ͺ TESTES DE INTEGRAÇÃO COM API DE SUPRIMENTOS βœ“ PASSOU: ConexΓ£o com API βœ“ PASSOU: Merge de dados βœ“ PASSOU: IntegraΓ§Γ£o completa πŸŽ‰ Todos os testes passaram! IntegraΓ§Γ£o pronta para usar. ``` ### 4️⃣ Rodar o Servidor ```bash python manage.py runserver ``` Acesse: `http://localhost:8000/home/` ## πŸ“Š O que mudou? ### Tabela agora mostra: - **PDV** (de ambas fontes) - **SKU** (de ambas fontes) - **Estoque** (do SQL) - **TrΓ’nsito** (do SQL) - **Pendente** (do SQL) - **sugestao_analista** ← **NOVO! (da API)** ### Novos Campos no JSON: ```json { "PDV": "2001", "SKU": "ABC123", "sugestao_analista": 45, // ← DA API "dados_api_presentes": true, // ← FLAG "Estoque_Total": 150, // Do SQL ... } ``` ## πŸ” ProteΓ§Γ£o do Token βœ… **Arquivo `.env` nΓ£o Γ© versionado** βœ… **Arquivo `.env.example` documenta os campos** βœ… **Token nunca aparece no cΓ³digo** **IMPORTANTE:** Nunca faΓ§a commit do arquivo `.env`! ```bash # Verificar se estΓ‘ protegido: cat .gitignore | grep .env # Deve mostrar: .env ``` ## ❌ ResoluΓ§Γ£o de Problemas ### Erro: "Token nΓ£o configurado" ``` ❌ ERRO: Token nΓ£o configurado no .env ``` **SoluΓ§Γ£o:** Crie/edite o arquivo `.env` na raiz do projeto ### Erro: "Falha ao conectar com a API" ``` ❌ Falha ao conectar com a API (verifique token e conexΓ£o de rede) ``` **SoluΓ§Γ£o:** - Verifique se o token Γ© vΓ‘lido - Teste a conexΓ£o: `ping api.grupoginseng.com.br` - Verifique firewall/VPN ### Dados nΓ£o aparecem ``` ⚠️ API retornou lista vazia ``` **SoluΓ§Γ£o:** - Verifique se hΓ‘ dados pendentes na API - Confirme PDV e SKU estΓ£o corretos ## πŸ“± Monitorando a IntegraΓ§Γ£o ### Ver logs no terminal ```bash # Quando vocΓͺ roda: python manage.py runserver [2024-XX-XX XX:XX:XX] Dados da API integrados: 250 registros [2024-XX-XX XX:XX:XX] GET /home/api/pivot-data/ 200 OK ``` ### Debug no Python ```bash python manage.py shell # Dentro do shell: >>> from home.views import get_api_suprimentos_data >>> dados = get_api_suprimentos_data() >>> print(f"Total: {len(dados) if dados else 'None'} registros") >>> print(dados[0] if dados else "Sem dados") ``` ## πŸ“¦ Arquitetura da SoluΓ§Γ£o ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ PΓ‘gina Web β”‚ β”‚ /home/api/pivot-data/ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ get_pivot_data β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β” β”‚ SQL Server β”‚ β”‚ API Suprimentosβ”‚ β”‚(dados base)β”‚ β”‚(quantidade) β”‚ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ merge_api_with_sql_data() β”‚ β”‚ (JOIN por PDV + SKU) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Dados Combinados β”‚ β”‚ sugestao_analista = qty β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ## πŸ“‹ Checklist - [ ] `.env` criado na raiz - [ ] Token adicionado ao `.env` - [ ] DependΓͺncias instaladas: `pip install -r requirements.txt` - [ ] Teste passou: `python test_api_integration.py` - [ ] Servidor rodando: `python manage.py runserver` - [ ] PΓ‘gina abre: `http://localhost:8000/home/` - [ ] Dados aparecem com "sugestao_analista" - [ ] `.env` estΓ‘ no `.gitignore` ## πŸŽ“ ReferΓͺncias - πŸ“˜ [INTEGRACAO_API.md](INTEGRACAO_API.md) - DocumentaΓ§Γ£o tΓ©cnica completa - πŸ“˜ [IMPLEMENTACAO_RESUMO.md](IMPLEMENTACAO_RESUMO.md) - O que foi implementado - πŸ§ͺ [test_api_integration.py](test_api_integration.py) - Script de teste ## πŸ’¬ DΓΊvidas Frequentes **P: Preciso reiniciar o servidor a cada mudanΓ§a do `.env`?** R: Sim, o Django lΓͺ as variΓ‘veis ao iniciar. Reinicie com: `Ctrl+C` e `python manage.py runserver` **P: E se a API cair?** R: Site continua funcionando normalmente com dados do SQL Server. **P: Como adicionar novo token?** R: Edite `.env`, reinicie servidor. **P: Posso compartilhar o `.env` com a equipe?** R: NΓ£o! Use variΓ‘veis de ambiente por servidor. Cada dev tem seu `.env` local. ## πŸš€ PrΓ³ximo Passo VocΓͺ estΓ‘ pronto! Execute: ```bash python test_api_integration.py python manage.py runserver ``` E acesse: **http://localhost:8000/home/** Boa sorte! πŸŽ‰