swt23w23/src/main/java/catering/orderCatalog/CustomCatalogEntryDataInitializer.java
2024-01-19 19:00:51 +01:00

47 lines
1.6 KiB
Java

// SPDX-License-Identifier: AGPL-3.0-or-later
// SPDX-FileCopyrightText: 2023-2024 swt23w23
package catering.orderCatalog;
import catering.order.OrderType;
import org.salespointframework.catalog.Product;
import org.salespointframework.core.DataInitializer;
import org.salespointframework.quantity.Quantity;
import org.springframework.stereotype.Component;
import org.salespointframework.inventory.UniqueInventory;
import org.salespointframework.inventory.UniqueInventoryItem;
import java.util.HashMap;
import java.util.Map;
import org.javamoney.moneta.Money;
@Component
public class CustomCatalogEntryDataInitializer implements DataInitializer {
private CustomCatalogEntryRepository catalogEntryRepository;
private final UniqueInventory<UniqueInventoryItem> inventory;
public CustomCatalogEntryDataInitializer(CustomCatalogEntryRepository catalogEntryRepository, UniqueInventory<UniqueInventoryItem> inventory) {
this.catalogEntryRepository = catalogEntryRepository;
this.inventory = inventory;
}
@Override
public void initialize() {
Map<Product, Quantity> products = new HashMap<>();
Product product1 = inventory.findAll().stream().toList().get(0).getProduct();
Product product2 = inventory.findAll().stream().toList().get(1).getProduct();
Product product3 = inventory.findAll().stream().toList().get(2).getProduct();
products.put(product1, product1.createQuantity(30));
products.put(product2, product2.createQuantity(15));
products.put(product3, product3.createQuantity(1));
catalogEntryRepository.save(
new CustomCatalogEntry(
OrderType.EVENT_CATERING,
products,
Money.of(500, "EUR")));
}
}