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

import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.jsonwebservice.JSONWebService;
import com.liferay.portal.kernel.transaction.Isolation;
import com.liferay.portal.kernel.transaction.Transactional;
import com.liferay.portal.security.ac.AccessControlled;
import com.liferay.portal.service.BaseService;
import com.liferay.portal.service.InvokableService;

/**
 * Provides the remote service interface for Mensagem. Methods of this
 * service are expected to have security checks based on the propagated JAAS
 * credentials because this service can be accessed remotely.
 *
 * @author Henrique Simoes
 * @see MensagemServiceUtil
 * @see br.mp.mprj.portal.portlet.gestaomensagens.service.service.base.MensagemServiceBaseImpl
 * @see br.mp.mprj.portal.portlet.gestaomensagens.service.service.impl.MensagemServiceImpl
 * @generated
 */
@AccessControlled
@JSONWebService
@Transactional(isolation = Isolation.PORTAL, rollbackFor =  {
    PortalException.class, SystemException.class}
)
public interface MensagemService extends BaseService, InvokableService {
    /*
     * NOTE FOR DEVELOPERS:
     *
     * Never modify or reference this interface directly. Always use {@link MensagemServiceUtil} to access the mensagem remote service. Add custom service methods to {@link br.mp.mprj.portal.portlet.gestaomensagens.service.service.impl.MensagemServiceImpl} and rerun ServiceBuilder to automatically copy the method declarations to this interface.
     */

    /**
    * Returns the Spring bean ID for this bean.
    *
    * @return the Spring bean ID for this bean
    */
    public java.lang.String getBeanIdentifier();

    /**
    * Sets the Spring bean ID for this bean.
    *
    * @param beanIdentifier the Spring bean ID for this bean
    */
    public void setBeanIdentifier(java.lang.String beanIdentifier);

    @Override
    public java.lang.Object invokeMethod(java.lang.String name,
        java.lang.String[] parameterTypes, java.lang.Object[] arguments)
        throws java.lang.Throwable;

    /**
    * Servico responsavel por criar e enviar uma mensagem.
    *
    * @param assunto - Assunto da mensagem.
    * @param conteudo - HTML ou texto da mensagem.
    * @param nomeSolicitante - Nome do responsavel pela solicitacao da mensagem.
    * @param emailSolicitante - Email do solicitante.
    * @param contaDeSaidaId - Indetificador da Conta de Saida.
    * @param prioridade - Prioridade da Mensagem.
    * @param listaDestinatarioIds - Identificadores das listas de Destinatarios.
    * @param userId - Identificador do usuario no Liferay.
    * @param groupId - Identificador do Grupo do Usuario no Liferay.
    * @param companyId - Identificador da Empresa no Liferay.
    * @throws SystemException - Em caso de falha.
    Url de chamada do envia-mensagem WS : http://servidor/api/jsonws/invoke
    */
    @com.liferay.portal.kernel.jsonwebservice.JSONWebService(value = "envia-mensagem", method = "POST")
    public br.mp.mprj.portal.portlet.gestaomensagens.ws.vo.MensagemRetorno enviaMensagem(
        java.lang.String assunto, java.lang.String conteudo,
        java.lang.String nomeSolicitante, java.lang.String emailSolicitante,
        long contaDeSaidaId, int prioridade,
        java.lang.String listaDestinatarioIds, java.lang.String dataHoraEnvio);
}
