package br.com.caelum.leilao.servico;
import java.time.LocalDate;
import java.util.List;
import br.com.caelum.leilao.dominio.Leilao;
import br.com.caelum.leilao.dominio.Pagamento;
import br.com.caelum.leilao.infra.service.RepositorioDeLeiloes;
import br.com.caelum.leilao.infra.service.RepositorioDePagamentos;
public class GeradorDePagamento {
private final RepositorioDeLeiloes leiloes;
private final Avaliador avaliador;
private final RepositorioDePagamentos pagamentos;
public GeradorDePagamento(RepositorioDeLeiloes leiloes, Avaliador avaliador, RepositorioDePagamentos pagamentos) {
this.leiloes = leiloes;
this.avaliador = avaliador;
this.pagamentos = pagamentos;
}
public void gera() {
List<Leilao> leiloesEncerrados = this.leiloes.encerrados();
leiloesEncerrados.forEach(l -> {
this.avaliador.avalia(l);
Pagamento pagamento = new Pagamento(this.avaliador.getMaiorLance(), LocalDate.now());
this.pagamentos.salva(pagamento);
});
}
}