1 package de.dlr.shepard.data.timeseries.model;
2
3 import de.dlr.shepard.common.util.HasId;
4 import jakarta.validation.constraints.NotBlank;
5 import lombok.Data;
6 import lombok.EqualsAndHashCode;
7 import lombok.NoArgsConstructor;
8 import lombok.RequiredArgsConstructor;
9 import org.neo4j.ogm.annotation.GeneratedValue;
10 import org.neo4j.ogm.annotation.Id;
11 import org.neo4j.ogm.annotation.NodeEntity;
12
13 @NodeEntity
14 @Data
15 @EqualsAndHashCode
16 @NoArgsConstructor(force = true)
17 @RequiredArgsConstructor
18 public class TimeseriesTuple implements HasId {
19
20 @Id
21 @GeneratedValue
22 @EqualsAndHashCode.Exclude
23 private Long id;
24
25 @NotBlank
26 private final String measurement;
27
28 @NotBlank
29 private final String device;
30
31 @NotBlank
32 private final String location;
33
34 @NotBlank
35 private final String symbolicName;
36
37 @NotBlank
38 private final String field;
39
40 @Override
41 public String getUniqueId() {
42 return TimeseriesUniqueIdBuilder.buildUniqueId(measurement, device, location, symbolicName, field);
43 }
44 }