Add stock capabilities
parent
d3127da4a5
commit
26bce09653
|
|
@ -1,18 +1,22 @@
|
||||||
package org.example;
|
package org.example;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
public class Shop {
|
public class Shop {
|
||||||
|
|
||||||
List<Product> products;
|
HashMap<Product, Integer> products;
|
||||||
ShoppingCart cart = new ShoppingCart();
|
ShoppingCart cart = new ShoppingCart();
|
||||||
|
|
||||||
public Shop(List<Product> products) {
|
public Shop(HashMap<Product, Integer> products) {
|
||||||
this.products = products;
|
this.products = products;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addProductToCart(Product product) {
|
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) {
|
public void removeProductFromCart(Product product) {
|
||||||
|
|
@ -20,11 +24,16 @@ public class Shop {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setProductQuantityInCart(Product product, int quantity) {
|
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) {
|
public Product getProductById(int id) {
|
||||||
for (Product product : products) {
|
for (Product product : products.keySet()) {
|
||||||
if (product.id == id) {
|
if (product.id == id) {
|
||||||
return product;
|
return product;
|
||||||
}
|
}
|
||||||
|
|
@ -32,6 +41,14 @@ public class Shop {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Product> getProductList() {
|
||||||
|
return products.keySet().stream().toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public HashMap<Product, Integer> getCart() {
|
||||||
|
return cart.products;
|
||||||
|
}
|
||||||
|
|
||||||
public Order checkout() {
|
public Order checkout() {
|
||||||
Order order = cart.toOrder();
|
Order order = cart.toOrder();
|
||||||
cart.clearProducts();
|
cart.clearProducts();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue