package cz.coffei.foodo.data.dao;
import cz.coffei.foodo.data.entities.BusinessHours;
import cz.coffei.foodo.data.entities.BusinessHours_;
import cz.coffei.foodo.data.enums.BusinessHoursType;
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import java.util.List;
/**
* Created by jtrantin on 8.8.15.
*/
@Stateless
public class BusinessHoursDao {
@Inject
private EntityManager em;
public BusinessHours getHours(BusinessHoursType type) {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<BusinessHours> query = cb.createQuery(BusinessHours.class);
Root<BusinessHours> root = query.from(BusinessHours.class);
query.select(root);
query.where(cb.equal(root.get(BusinessHours_.type), type));
List<BusinessHours> results = em.createQuery(query).getResultList();
return (results.isEmpty() ? null : results.get(0));
}
public void setHours(BusinessHours hours) {
BusinessHours currentHours = getHours(hours.getType());
if(currentHours!=null) {
currentHours.setStartTime(hours.getStartTime());;
currentHours.setEndTime(hours.getEndTime());;
em.merge(currentHours);
} else {
em.persist(hours);
}
}
}