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

import java.io.UnsupportedEncodingException;
import java.util.List;

import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;

import br.mp.mprj.portal.portlet.gestaomensagens.service.model.AnexoMensagem;
import br.mp.mprj.portal.portlet.gestaomensagens.service.model.Mensagem;
import br.mp.mprj.portal.portlet.gestaomensagens.service.service.AnexoMensagemLocalServiceUtil;

import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.util.Validator;
import com.liferay.portal.model.User;

/**
 * Envio de E-mnail de teste.
 * @author HenriqueSimoes
 *
 */
public class EnvioEmailTeste extends EnvioEmailMensagem {
	
	private String emailTeste;
	private String remetente;
	private String destinatario;

	public EnvioEmailTeste(Mensagem mensagem) {
		super(mensagem);
	}
	
	@Override
	protected InternetAddress[] getDestinatarios() throws PortalException,
			SystemException, AddressException, UnsupportedEncodingException {
		InternetAddress destinatario = new InternetAddress();
		
		if (Validator.isNotNull(emailTeste)) {
			destinatario.setAddress(emailTeste);
		}
		else {
			User user = getUserCriador();
			destinatario.setAddress(user.getEmailAddress());
		}
		destinatario.setPersonal("Destinatário");
		return new InternetAddress[]{destinatario};
	}
	
	@Override
	protected InternetAddress getRemetente() throws PortalException,
			SystemException, AddressException, UnsupportedEncodingException {
		
		User user = getUserCriador();
		return new InternetAddress(user.getEmailAddress(), remetente);
	}

	public String getEmailTeste() {
		return emailTeste;
	}

	public void setEmailTeste(String emailTeste) {
		this.emailTeste = emailTeste;
	}

	public String getNome() {
		return remetente;
	}
	
	public void setRemetente(String nome) {
		this.remetente = nome;
	}
	
	public String getDestinatario() {
		return destinatario;
	}

	public void setDestinatario(String destinatario)  throws SystemException{
		this.destinatario = destinatario;
	}

	@Override
	protected List<AnexoMensagem> getAnexos(long mensagemId) throws SystemException {
		return AnexoMensagemLocalServiceUtil.recuperaAnexosPorMensagem(mensagemId);
	}

}
