Data2025/src/main/java/de/ph87/data/series/SeriesPointsRequest.java

46 lines
1.1 KiB
Java

package de.ph87.data.series;
import com.fasterxml.jackson.annotation.JsonIgnore;
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 SeriesPointsRequest {
public final long id;
@NonNull
public final Interval interval;
public final long offset;
public final long duration;
@NonNull
@JsonIgnore
public final ZonedDateTime first;
@NonNull
@JsonIgnore
public final ZonedDateTime after;
public SeriesPointsRequest(
@JsonProperty("id") final long id,
@JsonProperty("interval") final Interval interval,
@JsonProperty("offset") final long offset,
@JsonProperty("duration") final long duration
) {
this.id = id;
this.interval = interval;
this.offset = offset;
this.duration = duration;
this.after = interval.align.apply(ZonedDateTime.now()).minus(interval.amount * (offset - 1), interval.unit);
this.first = this.after.minus(interval.amount * duration, interval.unit);
}
}