package de.ph87.home.varying; import de.ph87.home.point.PointRequest; import de.ph87.home.series.SeriesDto; import de.ph87.home.varying.day.VaryingDayRepository; import de.ph87.home.varying.five.VaryingFiveRepository; import de.ph87.home.varying.hour.VaryingHourRepository; import de.ph87.home.varying.month.VaryingMonthRepository; import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.List; @Slf4j @Service @RequiredArgsConstructor public class VaryingValueService { private final VaryingFiveRepository varyingFiveRepository; private final VaryingHourRepository varyingHourRepository; private final VaryingDayRepository varyingDayRepository; private final de.ph87.home.varying.week.VaryingWeekRepository varyingWeekRepository; private final VaryingMonthRepository varyingMonthRepository; private final de.ph87.home.varying.year.VaryingYearRepository varyingYearRepository; @NonNull public List points(@NonNull final SeriesDto series, @NonNull final PointRequest request) { return switch (request.getInner()) { case FIVE -> varyingFiveRepository.points(series.id, request.beginIncluding.date, request.endIncluding.date); case HOUR -> varyingHourRepository.points(series.id, request.beginIncluding.date, request.endIncluding.date); case DAY -> varyingDayRepository.points(series.id, request.beginIncluding.date, request.endIncluding.date); case WEEK -> varyingWeekRepository.points(series.id, request.beginIncluding.date, request.endIncluding.date); case MONTH -> varyingMonthRepository.points(series.id, request.beginIncluding.date, request.endIncluding.date); case YEAR -> varyingYearRepository.points(series.id, request.beginIncluding.date, request.endIncluding.date); }; } }