46 lines
1.1 KiB
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);
|
|
}
|
|
|
|
}
|