1 package de.dlr.shepard.context.references.timeseriesreference.io;
2
3 import de.dlr.shepard.context.references.basicreference.io.BasicReferenceIO;
4 import de.dlr.shepard.context.references.timeseriesreference.model.TimeseriesReference;
5 import de.dlr.shepard.data.timeseries.model.Timeseries;
6 import jakarta.validation.constraints.NotEmpty;
7 import jakarta.validation.constraints.NotNull;
8 import java.util.List;
9 import lombok.Data;
10 import lombok.EqualsAndHashCode;
11 import lombok.NoArgsConstructor;
12 import org.eclipse.microprofile.openapi.annotations.media.Schema;
13
14 @Data
15 @EqualsAndHashCode(callSuper = true)
16 @NoArgsConstructor
17 @Schema(name = "TimeseriesReference")
18 public class TimeseriesReferenceIO extends BasicReferenceIO {
19
20 @NotNull
21 @Schema(required = true)
22 private long start;
23
24 @NotNull
25 @Schema(required = true)
26 private long end;
27
28 @NotEmpty
29 @Schema(required = true)
30 private List<Timeseries> timeseries;
31
32 @NotNull
33 @Schema(required = true)
34 private long timeseriesContainerId;
35
36 public TimeseriesReferenceIO(TimeseriesReference ref) {
37 super(ref);
38 this.start = ref.getStart();
39 this.end = ref.getEnd();
40 this.timeseries = ref.getReferencedTimeseriesList().stream().map(entity -> entity.toTimeseries()).toList();
41 this.timeseriesContainerId = ref.getTimeseriesContainer() != null ? ref.getTimeseriesContainer().getId() : -1;
42 }
43 }