Skip to content

Feat/order(module)#18

Open
Vicks2thori wants to merge 139 commits into
MongoDBfrom
feat/Order(module)
Open

Feat/order(module)#18
Vicks2thori wants to merge 139 commits into
MongoDBfrom
feat/Order(module)

Conversation

@Vicks2thori

Copy link
Copy Markdown
Owner

Falta testar por conta do usuários, dar baixa em estoque e validar pagamento.

Vicks2thori and others added 30 commits July 2, 2025 09:50
Criação do DTO de StockCategory
Com o uso do mongoDB uma entidade intermediária não é precisa.
- Adicionei o arquivo 'swagger.json' com a documentação inicial da API dividida por módulos (retaguarda e e-commerce)
- Criação do arquivo 'nodemon.json' para facilitar o desenvolvimento com reinício automático do servidor
- Configuração do 'nodemon' para observar arquivos '.js' e '.json', ignorar 'node_modules' e logs;
- Definição de 'server.js' como ponto de entrada do app e porta padrão 5010 via .env;
docs:  documentação inicial do Swagger
Principais características:

-Front envia: client_id, productId, product_quantity, methodId, conditionId e status.

-Back vai processar: date, code(gerado um código numérico de 5 digitos), vai armazenar os atributos dos ids (evita que ao alterar os dados mudem), vai gerar o total.
Optei por criar uma Snapshot tambem para client por boas práticas.
…lidade do pedido

Adicionei comentários aos atributos que serão gerenciados apenas no service e criei a lista para o referencing de subdocumentos do Entity.
…hots

-generateOrderCode: Gera até 10 vezes um código unico para pedido (caso não exista algum com esse código).

-getClientSnapshot: Cria uma snapshot do cliente, para armazenar nome e telefone no momento da compra, mas tambem referenciando.

-getProductSnapshot: Da mesma forma o produto, com nome e preço.

-getPaymentMethodSnapshot e getPaymentConditionSnapshot: Forma de pagamento e condição só armazena o nome (futuramente vou validar se pertence).

-calculateItemSubtotal: Calcula o subtotal do produto.

-calculateOrderTotal: Calcula o total do pedido.

-prepareOrderData: Recebe os parametros enviados pelo front, e chama as devidas funções de snapshot, e adiciona o total.
-createOrder: Cria o pedido conforme o util prepareOrderData (vide commit anterior).

-getOrdersByStatus: Mostra o produto conforme o status dele, como será um estilo de kambam assim que atualizar ele partirar para a próxima coluna. Um detalhe é que só posso listar o cliente com nome e telefone (cpf de acordo com a LGPD não é interessante).

-getOrdersByClient: Mostra todos os pedidos de determinado cliente.

updateOrder: Atualiza o status do pedido.
-Criar e visualizar pedido pelo id do seu usuário é feito pelo cliente.

-Visualizar pedido por status e atualizar status é feito pelo admin.
E alterei a forma como estava retornando.
Por conta do usuário ainda não consegui testar 100%
- Adiciona ponto e vírgula ausente e melhora espaçamento entre blocos de código.
- Remove comentários obsoletos e adiciona anotações concisas para maior clareza.
- Ajusta quebra de linha em atributos muito próximos e remove espaços finais desnecessários.
- Alterações não afetam a lógica ou regras de negócio.
…nomear atributos redundantes

- Remove validações embutidas no orderEntity e centraliza regras no orderDto utilizando Joi.
- Renomeia atributos redundantes (ex.: entidadeTipo → productName, methodName, clientCell) para maior clareza e consistência.
- Mantida a lógica de negócio, apenas reorganizando responsabilidades entre entity e DTO.
…status

- Adiciona parâmetro /:status no orderRouter para permitir filtro por status.
- Corrige populate do client no método getOrdersByStatus do orderService, garantindo que os pedidos sejam retornados corretamente.
- Renomeia variáveis em orderUtils para manter consistência com o commit anterior ('refactor(order): mover validações para DTO com Joi').
…status

- Adiciona parâmetro /:status no orderRouter para permitir filtro por status.
- Corrige populate do client no método getOrdersByStatus do orderService, garantindo que os pedidos sejam retornados corretamente.
- Renomeia variáveis em orderUtils para manter consistência com o commit anterior ('refactor(order): mover validações para DTO com Joi').
…orretamente

- Converte ID para string no orderController, resolvendo problema de busca que impedia o retorno de pedidos do cliente.
- Nota: futuramente será necessário remover hash de email e phone para permitir acesso e visualização desses valores.
…orretamente

- Converte ID para string no orderController, resolvendo problema de busca que impedia o retorno de pedidos do cliente.
- Nota: futuramente será necessário remover hash de email e phone para permitir acesso e visualização desses valores.
…onadas

- Cria função getOrderById no orderService.
- Adiciona método getOrderById no orderController e corrige uso de req.params (id, status, clientId).
- Ajusta orderRouter para diferenciar corretamente as rotas de busca:
  • GET /status/:status → getByStatus
  • GET /:id → getById
   GET /client/:clientId → getByClient
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants