package devopsdistilled.operp.server.data.service.items.impl;

import javax.inject.Inject;

import org.springframework.stereotype.Service;

import devopsdistilled.operp.server.data.entity.items.Brand;
import devopsdistilled.operp.server.data.entity.items.Item;
import devopsdistilled.operp.server.data.entity.items.Product;
import devopsdistilled.operp.server.data.repo.items.ItemRepository;
import devopsdistilled.operp.server.data.service.impl.AbstractEntityService;
import devopsdistilled.operp.server.data.service.items.ItemService;

@Service
public class ItemServiceImpl extends
		AbstractEntityService<Item, Long, ItemRepository> implements
		ItemService {

	private static final long serialVersionUID = 7578267584162733059L;

	@Inject
	private ItemRepository itemRepository;

	@Override
	protected ItemRepository getRepo() {
		return itemRepository;
	}

	@Override
	public boolean isProductBrandPairExists(Product product, Brand brand) {
		Item item = itemRepository.findByProductAndBrand(product, brand);
		if (item != null)
			return true;
		else
			return false;
	}

	@Override
	public boolean isItemNameExists(String itemName) {
		Item item = itemRepository.findByItemName(itemName);

		if (item != null)
			return true;
		else
			return false;
	}
}

@@ -1251,11 +1251,466 @@
 alse;%0A%09%7D
+%0A%0A%09@Override%0A%09public boolean isProductBrandPairValidForItem(Long itemId, Product product,%0A%09%09%09Brand brand) %7B%0A%0A%09%09Item item = itemRepository.findByProductAndBrand(product, brand);%0A%09%09if (item.getItemId() != itemId)%0A%09%09%09return false;%0A%0A%09%09return true;%0A%09%7D%0A%0A%09@Override%0A%09public boolean isItemNameValidForItem(Long itemId, String itemName) %7B%0A%0A%09%09Item item = itemRepository.findByItemName(itemName);%0A%09%09if (item.getItemId() != itemId)%0A%09%09%09return false;%0A%0A%09%09return true;%0A%09%7D
 %0A%7D%0A

Implement validation methods