package br.gov.servicos.destaques;
import br.gov.servicos.config.AreasDeInteresseDestaqueConfig;
import br.gov.servicos.v3.schema.AreaDeInteresse;
import lombok.experimental.FieldDefaults;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import java.util.List;
import static java.util.stream.Collectors.toList;
import static lombok.AccessLevel.PRIVATE;
@Slf4j
@Service
@FieldDefaults(level = PRIVATE, makeFinal = true)
public class AreasDeInteresseEmDestaque {
AreasDeInteresseDestaqueConfig destaques;
@Autowired
public AreasDeInteresseEmDestaque(AreasDeInteresseDestaqueConfig destaques) {
this.destaques = destaques;
}
@Cacheable("areas-de-interesse")
public List<AreaDeInteresse> areasDeInteresse() {
return destaques.getAreasDeInteresse()
.stream()
.map(AreaDeInteresse::findById)
.collect(toList());
}
}