package de.ph87.home.point; import com.fasterxml.jackson.annotation.JsonIgnore; import de.ph87.home.unit.Aligned; import de.ph87.home.unit.Interval; import lombok.Data; import lombok.NonNull; import java.time.ZonedDateTime; @Data public class PointRequest { @NonNull public final String seriesName; public final long offset; public final long count; @NonNull public final Interval outer; @NonNull public final Interval inner; @NonNull @JsonIgnore public final Aligned beginIncluding; @NonNull @JsonIgnore public final Aligned endIncluding; public PointRequest(@NonNull final String seriesName, final long offset, final long count, @NonNull final Interval outer, @NonNull final Interval inner) { this.seriesName = seriesName; this.offset = offset; this.count = count; this.outer = outer; this.inner = inner; this.endIncluding = new Aligned(ZonedDateTime.now(), outer).minus(offset); this.beginIncluding = endIncluding.minus(this.count - 1); } }