package br.mp.mprj.portal.portlet.gestaomensagens.job;

import java.util.List;

import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;

import br.mp.mprj.portal.portlet.gestaomensagens.enums.TipoAgendamentoEnum;
import br.mp.mprj.portal.portlet.gestaomensagens.service.model.Agendamento;
import br.mp.mprj.portal.portlet.gestaomensagens.service.service.AgendamentoLocalServiceUtil;
import br.mp.mprj.portal.portlet.gestaomensagens.service.service.persistence.AgendamentoUtil;

public class AgendamentoJobUtil {
	
	private static final Log _log = LogFactoryUtil.getLog(AgendamentoUtil.class);

	/**
	 * Metodo responsavel em enviar todas as mensagens
	 * agendadas pendentes de envio, onde a data e horario
	 * de agendamento e menor ou igual a data e horario atual.
	 */
	public static void enviaMensagensAgendadas() throws PortalException{
		List<Agendamento> agendamentos = AgendamentoLocalServiceUtil.findByMensagensPendetesDeEnvio();
		AgendamentoLocalServiceUtil.enviaMensagem(agendamentos);
	}
	
	public static void enviaMensagemImediato(long mensagemId)
			throws PortalException {
		try {
			AgendamentoLocalServiceUtil.enviaMensagem(AgendamentoLocalServiceUtil.findByMensagemTipoAgendamentoMultiplos(mensagemId, new int[]{TipoAgendamentoEnum.IMEDIATO.ordinal()}));
		}
		catch (SystemException ex) {
			throw new PortalException(ex);
		}
	}
	

	
}
