diff --git a/.env b/.env index ce8c9e7..69b41f9 100644 --- a/.env +++ b/.env @@ -31,8 +31,7 @@ THROTTLE_LIMIT=10 NODE_ENV=development -ORACLE_CLIENT_LIB_DIR=C:\\instantclient_19_25 - +ORACLE_CLIENT_LIB_DIR=C:\\instantclient_23_9 diff --git a/API.md b/API.md deleted file mode 100644 index be91fff..0000000 --- a/API.md +++ /dev/null @@ -1,300 +0,0 @@ -# Portal Juru API Documentation - -## Índice -1. [Autenticação](#autenticação) -2. [Endpoints](#endpoints) - - [Consulta de Dados](#consulta-de-dados) - - [Pedidos e Pagamentos](#pedidos-e-pagamentos) -3. [Modelos de Dados](#modelos-de-dados) -4. [Exemplos de Uso](#exemplos-de-uso) -5. [Códigos de Erro](#códigos-de-erro) - -## Autenticação - -A API utiliza autenticação JWT. Para acessar os endpoints protegidos, inclua o token no header: - -``` -Authorization: Bearer seu-token-jwt -``` - -## Endpoints - -### Consulta de Dados - -#### Listar Lojas -```http -GET /api/v1/data-consult/stores -``` - -**Resposta** -```json -[ - { - "id": "001", - "name": "Loja Principal", - "store": "001 - Loja Principal" - } -] -``` - -#### Listar Vendedores -```http -GET /api/v1/data-consult/sellers -``` - -**Resposta** -```json -[ - { - "id": "001", - "name": "João Silva" - } -] -``` - -#### Consultar Faturamento -```http -GET /api/v1/data-consult/billings -``` - -**Resposta** -```json -[ - { - "id": "001", - "date": "2024-04-02T10:00:00Z", - "total": 1000.00 - } -] -``` - -#### Filtrar Clientes -```http -GET /api/v1/data-consult/customers/:filter -``` - -**Parâmetros** -- `filter`: Termo de busca (nome, documento, etc.) - -**Resposta** -```json -[ - { - "id": "001", - "name": "Maria Silva", - "document": "123.456.789-00" - } -] -``` - -#### Buscar Produtos -```http -GET /api/v1/data-consult/products/:filter -``` - -**Parâmetros** -- `filter`: Termo de busca (nome, código, etc.) - -**Resposta** -```json -[ - { - "id": "001", - "name": "Produto Exemplo", - "manufacturerCode": "ABC123" - } -] -``` - -### Pedidos e Pagamentos - -#### Listar Pedidos da Loja -```http -GET /api/v1/orders-payment/orders/:id -``` - -**Parâmetros** -- `id`: ID da loja - -**Resposta** -```json -[ - { - "createDate": "2024-04-02T10:00:00Z", - "storeId": "001", - "orderId": 12345, - "customerId": "001", - "customerName": "João Silva", - "sellerId": "001", - "sellerName": "Maria Santos", - "billingId": "001", - "billingName": "Cartão de Crédito", - "planId": "001", - "planName": "3x sem juros", - "amount": 1000.00, - "installments": 3, - "amountPaid": 1000.00 - } -] -``` - -#### Buscar Pedido Específico -```http -GET /api/v1/orders-payment/orders/:id/:orderId -``` - -**Parâmetros** -- `id`: ID da loja -- `orderId`: ID do pedido - -**Resposta** -```json -{ - "createDate": "2024-04-02T10:00:00Z", - "storeId": "001", - "orderId": 12345, - "customerId": "001", - "customerName": "João Silva", - "sellerId": "001", - "sellerName": "Maria Santos", - "billingId": "001", - "billingName": "Cartão de Crédito", - "planId": "001", - "planName": "3x sem juros", - "amount": 1000.00, - "installments": 3, - "amountPaid": 1000.00 -} -``` - -#### Listar Pagamentos do Pedido -```http -GET /api/v1/orders-payment/payments/:id -``` - -**Parâmetros** -- `id`: ID do pedido - -**Resposta** -```json -[ - { - "orderId": 12345, - "payDate": "2024-04-02T10:00:00Z", - "card": "**** **** **** 1234", - "installments": 3, - "flagName": "VISA", - "type": "CREDITO", - "amount": 1000.00, - "userId": "001", - "nsu": "123456789", - "auth": "A12345" - } -] -``` - -#### Criar Pagamento -```http -POST /api/v1/orders-payment/payments/create -``` - -**Corpo da Requisição** -```json -{ - "orderId": 12345, - "card": "**** **** **** 1234", - "auth": "A12345", - "nsu": "123456789", - "installments": 3, - "amount": 1000.00, - "flagName": "VISA", - "paymentType": "CREDITO", - "userId": 1 -} -``` - -#### Criar Fatura -```http -POST /api/v1/orders-payment/invoice/create -``` - -**Corpo da Requisição** -```json -{ - "orderId": 12345, - "userId": 1 -} -``` - -## Modelos de Dados - -### OrderDto -```typescript -interface OrderDto { - createDate: Date; // Data de criação do pedido - storeId: string; // ID da loja - orderId: number; // ID do pedido - customerId: string; // ID do cliente - customerName: string; // Nome do cliente - sellerId: string; // ID do vendedor - sellerName: string; // Nome do vendedor - billingId: string; // ID da forma de pagamento - billingName: string; // Nome da forma de pagamento - planId: string; // ID do plano de pagamento - planName: string; // Nome do plano de pagamento - amount: number; // Valor total do pedido - installments: number; // Número de parcelas - amountPaid: number; // Valor total pago -} -``` - -### PaymentDto -```typescript -interface PaymentDto { - orderId: number; // ID do pedido - payDate: Date; // Data do pagamento - card: string; // Número do cartão - installments: number; // Número de parcelas - flagName: string; // Nome da bandeira - type: string; // Tipo de pagamento - amount: number; // Valor do pagamento - userId: string; // ID do usuário - nsu: string; // NSU da transação - auth: string; // Código de autorização -} -``` - -## Códigos de Erro - -| Código | Descrição | -|--------|-----------| -| 400 | Requisição inválida | -| 401 | Não autorizado | -| 403 | Acesso negado | -| 404 | Recurso não encontrado | -| 500 | Erro interno do servidor | - -## Exemplos de Uso - -### Exemplo de Requisição com cURL - -```bash -# Listar pedidos de uma loja -curl -X GET "http://localhost:3000/api/v1/orders-payment/orders/001" \ - -H "Authorization: Bearer seu-token-jwt" - -# Criar novo pagamento -curl -X POST "http://localhost:3000/api/v1/orders-payment/payments/create" \ - -H "Authorization: Bearer seu-token-jwt" \ - -H "Content-Type: application/json" \ - -d '{ - "orderId": 12345, - "card": "**** **** **** 1234", - "auth": "A12345", - "nsu": "123456789", - "installments": 3, - "amount": 1000.00, - "flagName": "VISA", - "paymentType": "CREDITO", - "userId": 1 - }' \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 66fd85e..0000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,141 +0,0 @@ -# Guia de Contribuição - -Obrigado por considerar contribuir para o Portal Juru API! Este documento fornece um conjunto de diretrizes para contribuir com o projeto. - -## Como Contribuir - -1. Faça um fork do projeto -2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`) -3. Commit suas mudanças (`git commit -m 'Add some AmazingFeature'`) -4. Push para a branch (`git push origin feature/AmazingFeature`) -5. Abra um Pull Request - -## Padrões de Código - -### TypeScript/JavaScript - -- Use TypeScript para todo o código -- Siga o [style guide oficial do TypeScript](https://www.typescriptlang.org/docs/handbook/declaration-files/by-example.html) -- Use ESLint e Prettier para formatação -- Mantenha o código limpo e bem documentado - -### NestJS - -- Siga as [melhores práticas do NestJS](https://docs.nestjs.com/recipes/prisma) -- Use decorators apropriadamente -- Mantenha os módulos bem organizados -- Use DTOs para validação de dados - -### Banco de Dados - -- Use TypeORM para todas as operações de banco de dados -- Mantenha as queries SQL otimizadas -- Use transações quando necessário -- Documente as queries complexas - -## Estrutura do Projeto - -``` -src/ -├── core/ # Configurações e utilitários core -│ ├── configs/ # Configurações do projeto -│ ├── database/ # Configuração do banco de dados -│ └── constants/ # Constantes do sistema -├── data-consult/ # Módulo de consulta de dados -│ ├── dto/ # Data Transfer Objects -│ ├── controllers/ # Controladores -│ └── services/ # Serviços -├── orders-payment/ # Módulo de pedidos e pagamentos -│ ├── dto/ # Data Transfer Objects -│ ├── controllers/ # Controladores -│ └── services/ # Serviços -└── orders/ # Módulo de pedidos - ├── modules/ # Módulos - ├── controllers/ # Controladores - ├── services/ # Serviços - └── repositories/ # Repositórios -``` - -## Convenções de Commits - -Use o seguinte formato para commits: - -``` -(): - - - -