Feat/order(module)#18
Open
Vicks2thori wants to merge 139 commits into
Open
Conversation
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.
Esqueci de adicionar.
Por conta do usuário ainda não consegui testar 100%
…into feat/Order(module)
…rce-API into feat/StockCategory(module)
…formações consistentes
…a o joi com mensagens personalizadas
…vice (correção CreateSchema Joi)
…rce-API into feat/Stock_movement(module)
- 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.
…blivion-Ecommerce-API into feat/Order(module)
…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').
…blivion-Ecommerce-API into feat/Order(module)
…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.
…blivion-Ecommerce-API into feat/Order(module)
…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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Falta testar por conta do usuários, dar baixa em estoque e validar pagamento.