1
2
3
4
5
6
7 package org.tailormap.api.persistence;
8
9 import jakarta.persistence.Column;
10 import jakarta.persistence.Entity;
11 import jakarta.persistence.EntityListeners;
12 import jakarta.persistence.GeneratedValue;
13 import jakarta.persistence.GenerationType;
14 import jakarta.persistence.Id;
15 import jakarta.persistence.Version;
16 import jakarta.validation.constraints.NotNull;
17 import java.util.ArrayList;
18 import java.util.List;
19 import org.hibernate.annotations.Type;
20 import org.hibernate.envers.Audited;
21 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
22 import org.tailormap.api.persistence.json.FormField;
23 import org.tailormap.api.persistence.json.FormOptions;
24 import org.tailormap.api.persistence.listener.EntityEventPublisher;
25
26 @Audited
27 @Entity
28 @EntityListeners({EntityEventPublisher.class, AuditingEntityListener.class})
29 public class Form extends AuditMetadata {
30 @Id
31 @GeneratedValue(strategy = GenerationType.IDENTITY)
32 private Long id;
33
34 @Version
35 private Long version;
36
37 @NotNull private String name;
38
39 private Long featureSourceId;
40
41 private String featureTypeName;
42
43 @Type(value = io.hypersistence.utils.hibernate.type.json.JsonBinaryType.class)
44 @Column(columnDefinition = "jsonb")
45 @NotNull private FormOptions options = new FormOptions();
46
47 @Type(value = io.hypersistence.utils.hibernate.type.json.JsonBinaryType.class)
48 @Column(columnDefinition = "jsonb")
49 @NotNull private List<FormField> fields = new ArrayList<>();
50
51 public Long getId() {
52 return id;
53 }
54
55 public void setId(Long id) {
56 this.id = id;
57 }
58
59 public Long getVersion() {
60 return version;
61 }
62
63 public void setVersion(Long version) {
64 this.version = version;
65 }
66
67 public String getName() {
68 return name;
69 }
70
71 public void setName(String name) {
72 this.name = name;
73 }
74
75 public Long getFeatureSourceId() {
76 return featureSourceId;
77 }
78
79 public void setFeatureSourceId(Long featureSourceId) {
80 this.featureSourceId = featureSourceId;
81 }
82
83 public String getFeatureTypeName() {
84 return featureTypeName;
85 }
86
87 public void setFeatureTypeName(String featureTypeName) {
88 this.featureTypeName = featureTypeName;
89 }
90
91 public FormOptions getOptions() {
92 return options;
93 }
94
95 public void setOptions(FormOptions options) {
96 this.options = options;
97 }
98
99 public List<FormField> getFields() {
100 return fields;
101 }
102
103 public void setFields(List<FormField> fields) {
104 this.fields = fields;
105 }
106 }