package br.com.doctors.converters.consulta;
import java.util.ArrayList;
import java.util.List;
import org.joda.time.LocalDate;
import br.com.doctors.dao.agendamento.AgendamentoDao;
import br.com.doctors.modelo.agendamento.Agendamento;
import br.com.doctors.modelo.util.ParametrosAgendamento;
public class ConsultaConverter {
private AgendamentoDao daoAgendamento;
private ParametrosAgendamento parametros;
public ConsultaConverter(AgendamentoDao daoAgendamento, ParametrosAgendamento parametros) {
this.daoAgendamento = daoAgendamento;
this.parametros = parametros;
}
public List<ConsultaJSon> buscarHistorico(Long idMedico, Long idPaciente, LocalDate dataInicial, LocalDate dataFinal){
List<Agendamento> listaAgendamentos = getConsultas(idMedico, idPaciente, dataInicial, dataFinal);
List<ConsultaJSon> consultasJSon = new ArrayList<ConsultaJSon>();
for( Agendamento agendamento : listaAgendamentos ){
ConsultaJSon json = new ConsultaJSon(agendamento, parametros);
consultasJSon.add(json);
}
return consultasJSon;
}
public List<Agendamento> getConsultas(Long idMedico, Long idPaciente,
LocalDate dataInicial, LocalDate dataFinal) {
List<Agendamento> listaAgendamentos;
if (ehPraTodosMedicos(idMedico)){
listaAgendamentos = daoAgendamento.agendamentosPara(idPaciente, dataInicial, dataFinal);
} else {
listaAgendamentos = daoAgendamento.agendamentosPara(idMedico, idPaciente, dataInicial, dataFinal);
}
return listaAgendamentos;
}
public boolean ehPraTodosMedicos(Long idMedico) {
return idMedico == 0;
}
}