package cz.coffei.foodo.data.dao;
import cz.coffei.foodo.data.entities.*;
import cz.coffei.foodo.data.enums.OrderItemType;
import cz.coffei.foodo.data.exceptions.EntityInvalidException;
import javax.ejb.Stateless;
import javax.inject.Inject;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Created by jtrantin on 26.7.15.
*/
@Stateless
public class TestDao {
@Inject
private IngredientDao ingredientDao;
@Inject
private IngredientGroupDao groupDao;
@Inject
private PriceConstantDao priceConstantDao;
@Inject
private OrderDao orderDao;
public void createTestEntities() throws EntityInvalidException {
priceConstantDao.setConstant(new PriceConstant("takeaway", 10));
IngredientGroup greens = new IngredientGroup();
greens.setName("Greens");
greens.setPrice(40);
greens.setRequired(true);
greens.setAllowMore(false);
IngredientGroup cheeses = new IngredientGroup();
cheeses.setName("Cheese");
cheeses.setPrice(19);
cheeses.setRequired(false);
cheeses.setAllowMore(true);
groupDao.create(greens);
groupDao.create(cheeses);
Ingredient leafs = new Ingredient();
leafs.setName("Tree leaves");
leafs.setPrice(10);
leafs.setDescription("Fresh tree leaves gathered just this morning. A budget option.");
leafs.setGroup(greens);
Ingredient rucola = new Ingredient();
rucola.setName("Rucola");
rucola.setGroup(greens);
Ingredient parmesan = new Ingredient();
parmesan.setName("Parmesan");
parmesan.setGroup(cheeses);
parmesan.setDescription("Good ol' classic.");
Ingredient gold = new Ingredient();
gold.setName("Gold cheese");
gold.setPrice(100);
gold.setGroup(cheeses);
gold.setDescription("Made from gold! Inedible but expensive.");
ingredientDao.create(leafs);
ingredientDao.create(rucola);
ingredientDao.create(parmesan);
ingredientDao.create(gold);
Order order = new Order();
order.setCustomerName("Jonáš Trantina");
order.setTakeaway(true);
OrderItem item = new OrderItem();
item.setType(OrderItemType.CUSTOMSALAD);
item.setTimes(2);
List<Ingredient> ingredients = new ArrayList<>(3);
ingredients.add(rucola);
ingredients.add(gold);
item.setIngredients(ingredients);
order.setOrderItems(Collections.singletonList(item));
orderDao.createOrder(order);
}
}