package xyz.danielcortes.repository;

import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;
import xyz.danielcortes.framework.PersistenceManager;
import xyz.danielcortes.models.Estado;

public class EstadoRepository {
  private EntityManager em;

  public EstadoRepository() {
    this.em = PersistenceManager.getEntityManager();
  }

  public List<Estado> getAll() {
    TypedQuery<Estado> query = em.createQuery("SELECT e FROM Estado e", Estado.class);
    return query.getResultList();
  }

  public Estado getByNombre(String nombre) {
    TypedQuery<Estado> query = em.createQuery("SELECT e FROM Estado e WHERE nombre = :nombre", Estado.class);
    query.setParameter("nombre", nombre);
    return query.getSingleResult();
  }

  public void save(Estado estado) {
    em.getTransaction().begin();
    em.persist(estado);
    em.getTransaction().commit();
  }

  public void update(Estado estado) {
    em.getTransaction().begin();
    em.merge(estado);
    em.getTransaction().commit();
  }
  public void delete(Estado estado) {
    em.getTransaction().begin();
    em.remove(estado);
    em.getTransaction().commit();
  }

}
