Melhores práticas de casos de uso práticos em go para Go

Prompt gerado automaticamente para Casos de uso práticos em Go em Go

5.0
61 usos
ChatGPT
Usar no ChatGPT
Crie um módulo Go que simule a gestão de um e-commerce. O módulo deve incluir structs para `Produto` (ID, Nome, Preço, QuantidadeEmEstoque) e `Pedido` (ID, Slice de IDs de Produtos, Status, DataCriacao). Implemente as seguintes funcionalidades como métodos ou funções no pacote `ecommerce`:

1.  **`AdicionarProduto(produto Produto)`:** Adiciona um novo produto ao estoque. Retorna um erro se o ID já existir.
2.  **`RemoverProduto(produtoID int)`:** Remove um produto do estoque pelo ID. Retorna um erro se o produto não for encontrado.
3.  **`AtualizarEstoque(produtoID int, quantidade int)`:** Atualiza a quantidade em estoque de um produto. Aceita valores positivos para adicionar e negativos para remover. Retorna um erro se o produto não for encontrado ou se a remoção resultar em estoque negativo.
4.  **`CriarPedido(produtoIDs []int)`:** Cria um novo pedido com base nos IDs dos produtos. Deve verificar a disponibilidade em estoque e diminuir as quantidades dos produtos no estoque. Se qualquer produto não estiver disponível em quantidade suficiente, o pedido não deve ser criado e o estoque não deve ser alterado, retornando um erro. O status inicial do pedido é "Pendente".
5.  **`ProcessarPedido(pedidoID int)`:** Altera o status de um pedido para "Processado". Retorna um erro se o pedido não for encontrado ou já estiver processado/cancelado.
6.  **`CancelarPedido(pedidoID int)`:** Altera o status de um pedido para "Cancelado" e **devolve os itens para o estoque**. Retorna um erro se o pedido não for encontrado ou já estiver cancelado.
7.  **`ListarProdutosDisponiveis() []Produto`:** Retorna todos os produtos com quantidade em estoque maior que zero.
8.  **`BuscarProdutoPorID(produtoID int) (Produto, error)`:** Retorna um produto específico pelo ID.

Utilize maps para armazenar produtos e pedidos (ex: `map[int]Produto`, `map[int]Pedido`). Garanta que as operações de escrita (adição, remoção, atualização) sejam seguras para concorrência usando `sync.Mutex` ou `sync.R

Como Usar este Prompt

1

Clique no botão "Copiar Prompt" para copiar o conteúdo completo.

2

Abra sua ferramenta de IA de preferência (ChatGPT e etc.).

3

Cole o prompt e substitua as variáveis (se houver) com suas informações.

Compartilhe

Gostou deste prompt? Ajude outras pessoas a encontrá-lo!

Outros prompts de Go

Continue explorando prompts nesta categoria.

Melhores práticas de debugging em go para Go

Prompt gerado automaticamente para Debugging em Go em Go

Melhores práticas de casos de uso práticos em go para Go

Prompt gerado automaticamente para Casos de uso práticos em Go em Go

Guia para padrões de design em go em Go

Prompt gerado automaticamente para Padrões de design em Go em Go