package br.com.sl.domain.service.impl;
import java.time.LocalDateTime;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import br.com.ec.core.generic.AbstractService;
import br.com.ec.core.generic.GenericRepository;
import br.com.ec.core.validador.Validador;
import br.com.sl.domain.dto.robo.CandleState;
import br.com.sl.domain.model.Ativo;
import br.com.sl.domain.model.Candle;
import br.com.sl.domain.model.tipos.TipoPeriodoCandle;
import br.com.sl.domain.service.AtivoService;
import br.com.sl.domain.service.CandleService;
import br.com.sl.repository.CandleRepository;
@Service
public class CandleServiceImpl
extends AbstractService
<Candle
> implements CandleService
{
private CandleRepository candleRepository
;
private AtivoService ativoService
;
@Autowired
public CandleServiceImpl
(CandleRepository candleRepository, AtivoService ativoService, Validador validador
) {
super(validador
);
this.
candleRepository = candleRepository
;
this.
ativoService = ativoService
;
}
@
Override
protected GenericRepository
<Candle
> getRepository
() {
return this.
candleRepository;
}
@
Override
public void cadastrar
(String ativo, LocalDateTime inicioCandle, LocalDateTime fimCandle, CandleState situacaoCandle
) {
Ativo ativoConsultado = ativoService.
consultarPorDescricao(ativo
);
Candle candle =
new Candle
(ativoConsultado, fimCandle, situacaoCandle, TipoPeriodoCandle.
M1.
getValor());
candleRepository.
cadastrar(candle
);
}
@
Override
public List<Candle
> consultarAtivosComCandleEncerradoAte
(LocalDateTime fimUltimoCandle
) {
return candleRepository.
consultarAtivosComCandleEncerradoAte(fimUltimoCandle
);
}
}