From 83d0262e73dde638ae5ef92e558eff4c90213426 Mon Sep 17 00:00:00 2001 From: CPlaiz Date: Sat, 13 Dec 2025 16:44:48 +0100 Subject: [PATCH] Add setting of product quantity, add product id --- src/main/java/org/example/Product.java | 4 +++- src/main/java/org/example/Shop.java | 13 +++++++++++++ src/main/java/org/example/ShoppingCart.java | 14 +++++++++++--- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/example/Product.java b/src/main/java/org/example/Product.java index e082bd2..7cc9ad6 100644 --- a/src/main/java/org/example/Product.java +++ b/src/main/java/org/example/Product.java @@ -2,12 +2,14 @@ package org.example; public class Product { + int id; String name; float weight; float price; float vatPortion; - public Product(String name, float weight, float price, float vatPortion) { + public Product(int id, String name, float weight, float price, float vatPortion) { + this.id = id; this.name = name; this.weight = weight; this.price = price; diff --git a/src/main/java/org/example/Shop.java b/src/main/java/org/example/Shop.java index b84c0d0..f180150 100644 --- a/src/main/java/org/example/Shop.java +++ b/src/main/java/org/example/Shop.java @@ -19,6 +19,19 @@ public class Shop { cart.removeProduct(product); } + public void setProductQuantityInCart(Product product, int quantity) { + cart.setProductQuantity(product, quantity); + } + + public Product getProductById(int id) { + for (Product product : products) { + if (product.id == id) { + return product; + } + } + return null; + } + public Order checkout() { Order order = cart.toOrder(); cart.clearProducts(); diff --git a/src/main/java/org/example/ShoppingCart.java b/src/main/java/org/example/ShoppingCart.java index ca5c74d..a0e8a33 100644 --- a/src/main/java/org/example/ShoppingCart.java +++ b/src/main/java/org/example/ShoppingCart.java @@ -10,18 +10,26 @@ public class ShoppingCart { public void addProduct(Product product) { int currentQuantity = products.getOrDefault(product, 0); - products.put(product, currentQuantity + 1); + setProductQuantity(product, currentQuantity + 1); } public void removeProduct(Product product) { int currentQuantity = products.getOrDefault(product, 0); - if (currentQuantity > 1) { - products.put(product, currentQuantity - 1); + setProductQuantity(product, currentQuantity == 0 ? 0 : currentQuantity - 1); + } + + public void setProductQuantity(Product product, int quantity) { + if (quantity > 0) { + products.put(product, quantity); } else { products.remove(product); } } + public int getProductQuantity(Product product) { + return products.getOrDefault(product, 0); + } + public void clearProducts() { products.clear(); }