package de.ph87.data.series; import com.fasterxml.jackson.annotation.JsonProperty; import de.ph87.data.series.data.Interval; import lombok.Data; import lombok.NonNull; import java.time.ZonedDateTime; @Data public class AllSeriesPointRequest implements ISeriesPointRequest { @NonNull public final Interval interval; public final long offset; @NonNull public final ZonedDateTime first; @NonNull public final ZonedDateTime after; public AllSeriesPointRequest( @JsonProperty("interval") final Interval interval, @JsonProperty("offset") final long offset ) { this.interval = interval; this.offset = offset; this.first = interval.align.apply(ZonedDateTime.now()).minus(interval.amount * offset, interval.unit); this.after = this.first.plus(interval.amount, interval.unit); } }