package br.com.ufrj.msi2.netuno.contratacao.servicos;
import java.io.Serializable;
import java.util.List;
import javax.ejb.Local;
import br.com.ufrj.msi2.netuno.modelo.entidades.CPF;
import br.com.ufrj.msi2.netuno.modelo.entidades.Carga;
import br.com.ufrj.msi2.netuno.modelo.entidades.CargaLog;
import br.com.ufrj.msi2.netuno.modelo.entidades.Contratante;
import br.com.ufrj.msi2.netuno.modelo.entidades.Contrato;
import br.com.ufrj.msi2.netuno.modelo.exceptions.ResultadoNaoEncontradoException;
import br.com.ufrj.msi2.netuno.modelo.exceptions.ValidacaoException;
@Local
public interface ContratacaoService extends Serializable {
public Contrato criarContrato();
public void salvarContrato(Contratante contratante, Contrato contrato) throws ValidacaoException;
public List<Contrato> recuperaContratosAbertosPorContratante(Contratante contratante);
public List<Contrato> recuperaContratosFechadosPorContratante(Contratante contratante);
public void estimarDataEntrega(Contrato contrato, boolean temColeta, boolean temEntrega);
public void calcularPreco(Contrato contrato, boolean temColeta, boolean temEntrega);
public Contrato recuperaContratoComCargas(Contrato contrato);
public CargaLog recuperaUltimoCargaLogDeCarga(Carga carga);
public Contratante recuperaContratantePorCPF(CPF cpf) throws ResultadoNaoEncontradoException;
public Contratante criarContratante();
public void salvarContratante(Contratante contratante) throws ValidacaoException;
public boolean existeUsuarioComCPF(CPF cpf);
public boolean existeUsuarioComLogin(String login);
}