From 26bce09653d6223066ddb1dbe3ead9423b74b8d0 Mon Sep 17 00:00:00 2001 From: CPlaiz Date: Sat, 13 Dec 2025 17:19:17 +0100 Subject: [PATCH] Add stock capabilities --- src/main/java/org/example/Shop.java | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/example/Shop.java b/src/main/java/org/example/Shop.java index f180150..2629523 100644 --- a/src/main/java/org/example/Shop.java +++ b/src/main/java/org/example/Shop.java @@ -1,18 +1,22 @@ package org.example; +import java.util.HashMap; import java.util.List; +import java.util.Set; public class Shop { - List products; + HashMap products; ShoppingCart cart = new ShoppingCart(); - public Shop(List products) { + public Shop(HashMap products) { this.products = products; } public void addProductToCart(Product product) { - cart.addProduct(product); + int currentQuantity = cart.getProductQuantity(product); + if (currentQuantity < getStock(product)) + cart.addProduct(product); } public void removeProductFromCart(Product product) { @@ -20,11 +24,16 @@ public class Shop { } public void setProductQuantityInCart(Product product, int quantity) { - cart.setProductQuantity(product, quantity); + if (quantity <= getStock(product)) + cart.setProductQuantity(product, quantity); + } + + public int getStock(Product product) { + return products.getOrDefault(product, 0); } public Product getProductById(int id) { - for (Product product : products) { + for (Product product : products.keySet()) { if (product.id == id) { return product; } @@ -32,6 +41,14 @@ public class Shop { return null; } + public List getProductList() { + return products.keySet().stream().toList(); + } + + public HashMap getCart() { + return cart.products; + } + public Order checkout() { Order order = cart.toOrder(); cart.clearProducts();