1 package de.dlr.shepard.influxDB;
2
3 import org.neo4j.ogm.annotation.GeneratedValue;
4 import org.neo4j.ogm.annotation.Id;
5 import org.neo4j.ogm.annotation.NodeEntity;
6
7 import com.fasterxml.jackson.annotation.JsonIgnore;
8
9 import de.dlr.shepard.util.HasId;
10 import io.swagger.v3.oas.annotations.media.Schema;
11 import jakarta.validation.constraints.NotBlank;
12 import lombok.Data;
13 import lombok.NoArgsConstructor;
14
15 @NodeEntity
16 @Data
17 @NoArgsConstructor
18 public class Timeseries implements HasId {
19
20 @Id
21 @GeneratedValue
22 @JsonIgnore
23 private Long id;
24
25 @NotBlank
26 private String measurement;
27
28 @NotBlank
29 @Schema(nullable = true)
30 private String device;
31
32 @NotBlank
33 @Schema(nullable = true)
34 private String location;
35
36 @NotBlank
37 @Schema(nullable = true)
38 private String symbolicName;
39
40 @NotBlank
41 @Schema(nullable = true)
42 private String field;
43
44 public Timeseries(String measurement, String device, String location, String symbolicName, String field) {
45 this.measurement = measurement;
46 this.device = device;
47 this.location = location;
48 this.symbolicName = symbolicName;
49 this.field = field;
50 }
51
52 @Override
53 public String getUniqueId() {
54 return String.join("-", measurement, device, location, symbolicName, field);
55 }
56
57 }