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