Skip to content

Repository files navigation

Serviços Papa

API de integração desenvolvida para conectar o ERP Winthor e o WMS Kaizen, fornecendo serviços centralizados de gestão de pedidos, produtos, fábricas e separação.

🚀 Tecnologias

Core

  • Node.js (LTS) - Runtime JavaScript
  • TypeScript - Tipagem estática
  • Fastify - Framework web de alta performance

Bancos de Dados

  • Oracle Database - ERP Winthor (conexão via Oracle Instant Client)
  • PostgreSQL - WMS Kaizen
  • Knex.js - Query builder SQL

Bibliotecas Principais

  • Zod - Validação de schemas e dados
  • @fastify/jwt - Autenticação JWT
  • @fastify/swagger - Documentação OpenAPI
  • Dayjs - Manipulação de datas
  • Lodash - Utilitários JavaScript

📁 Arquitetura

O projeto segue os princípios de Clean Architecture e SOLID:

src/
├── config/          # Configurações de banco de dados
├── http/            # Camada de apresentação (controllers, routes, middlewares)
├── repositories/    # Camada de dados (Knex repositories)
├── use-cases/       # Regras de negócio
├── types/           # Definições de tipos
└── env/             # Validação de variáveis de ambiente

Padrões de Projeto

  • Repository Pattern - Abstração da camada de dados
  • Factory Pattern - Criação de use cases
  • Dependency Injection - Injeção de dependências
  • DTO (Data Transfer Objects) - Tipagem de dados

⚙️ Pré-requisitos

  • Node.js 20+ (LTS)
  • Docker e Docker Compose
  • Acesso aos bancos Oracle (Winthor) e PostgreSQL (Kaizen)

🔧 Configuração

1. Variáveis de Ambiente

Crie um arquivo .env na raiz do projeto:

# Aplicação
PORT=3334
NODE_ENV=prod

# PostgreSQL (Kaizen WMS)
PG_HOST=seu_host_postgres
PG_PORT=5432
PG_NAME=seu_database
PG_USER=seu_usuario
PG_PASS=sua_senha

# Oracle Production (Winthor ERP)
ORACLE_HOST=seu_host_oracle
ORACLE_PORT=1521
ORACLE_NAME=seu_service_name
ORACLE_USER=seu_usuario
ORACLE_PASS=sua_senha

# Oracle Test
ORACLE_TEST_HOST=seu_host_oracle_test
ORACLE_TEST_PORT=1521
ORACLE_TEST_NAME=seu_service_name
ORACLE_TEST_USER=seu_usuario
ORACLE_TEST_PASS=sua_senha

# JWT Secret
JWT_SECRET=sua_chave_secreta_jwt

2. Instalação (Desenvolvimento Local)

# Instalar dependências
npm install

# Executar em modo desenvolvimento
npm run dev

# Executar em produção
npm start

🐳 Docker

Build e Execução

# Build da imagem
docker build -t api-conference .

# Executar container
docker run -p 3334:3334 --env-file .env api-conference

# Ou usar Docker Compose (desenvolvimento)
docker-compose -f docker-compose.production.yml up -d

# Ver logs
docker-compose logs -f

Docker Hub

# Fazer push
docker tag api-conference seu-usuario/api-conference:latest
docker push seu-usuario/api-conference:latest

# Fazer pull
docker pull seu-usuario/api-conference:latest

📚 Documentação da API

Após iniciar o servidor, acesse:

🔐 Autenticação

A API utiliza JWT (JSON Web Tokens) para autenticação.

Endpoints principais:

  • POST /authenticate - Login e obtenção do token
  • POST /refresh-token - Renovação do token

Inclua o token no header das requisições:

Authorization: Bearer seu_token_aqui

🏗️ Principais Módulos

Gestão de Pedidos (Order Management)

  • Iniciar separação
  • Finalizar separação
  • Cancelar separação
  • Consultar status

Produtos

  • Buscar produtos
  • Registrar avarias
  • Buscar por arquivo

Fábricas

  • CRUD completo de fábricas
  • Listagem e filtros

Cálculos

  • Cálculo de preços de produtos
  • Histórico de cálculos por usuário

Usuários

  • Autenticação
  • Busca por tag/nome
  • Controle de acesso por depósito

🔧 Scripts Disponíveis

npm run dev          # Desenvolvimento com hot reload
npm start            # Produção (local)
npm run start:docker # Produção (Docker)

🌐 Conexões TNS (Oracle)

O projeto está configurado com os seguintes serviços Oracle via tnsnames.ora:

  • WINT - Ambiente de produção (192.168.254.252:1521)
  • TESTE - Ambiente de testes (192.168.254.239:1521)

📝 Licença

ISC


Desenvolvido para integração Winthor ERP + Kaizen WMS

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages