package br.org.osgefic.fratello.dominio.dto;

import java.io.Serializable;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;

import br.org.osgefic.fratello.dominio.AcompanhamentoAula;

public class FrequenciaAcompanhamentoDTO implements Serializable {

	private static final long serialVersionUID = 1L;

	private int idGrupo;

	private List<Date> datas;
	private List<RegistroAlunoFrequenciaDTO> registros;
	private List<AcompanhamentoAula> acompanhamentos;

	public List<Date> getDatas() {
		return datas;
	}

	public void setDatas(List<Date> datas) {
		this.datas = datas;
	}

	public List<RegistroAlunoFrequenciaDTO> getRegistros() {
		if (registros != null && registros.size() != 0) {
			Collections.sort(registros,
					new Comparator<RegistroAlunoFrequenciaDTO>() {
						@Override
						public int compare(
								final RegistroAlunoFrequenciaDTO object1,
								final RegistroAlunoFrequenciaDTO object2) {
							return object1
									.getAluno()
									.getPessoa()
									.getNome()
									.compareTo(
											object2.getAluno().getPessoa()
													.getNome());
						}
					});
			RegistroAlunoFrequenciaDTO.zerarControladorNumeroChamada();
			registros.forEach(registro -> registro.atribuirNumeroChamada());
		}
		return registros;
	}

	public void setRegistros(List<RegistroAlunoFrequenciaDTO> registros) {
		this.registros = registros;
	}

	public List<AcompanhamentoAula> getAcompanhamentos() {
		return acompanhamentos;
	}

	public void setAcompanhamentos(List<AcompanhamentoAula> acompanhamentos) {
		this.acompanhamentos = acompanhamentos;
	}

	public int getIdGrupo() {
		return idGrupo;
	}

	public void setIdGrupo(int idGrupo) {
		this.idGrupo = idGrupo;
	}

}
