1
2
3
4
5
6 package org.tailormap.api.persistence;
7
8 import jakarta.persistence.Column;
9 import jakarta.persistence.Entity;
10 import jakarta.persistence.EntityListeners;
11 import jakarta.persistence.Id;
12 import jakarta.persistence.Version;
13 import org.hibernate.annotations.JdbcTypeCode;
14 import org.hibernate.type.SqlTypes;
15 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
16 import org.tailormap.api.persistence.listener.EntityEventPublisher;
17 import tools.jackson.databind.JsonNode;
18
19 @Entity
20 @EntityListeners({EntityEventPublisher.class, AuditingEntityListener.class})
21 public class Configuration extends AuditMetadata {
22 public static final String DEFAULT_APP = "default-app";
23
24 public static final String DEFAULT_BASE_APP = "default-base-app";
25
26 public static final String HOME_PAGE = "home-page";
27
28 public static final String PORTAL_MENU = "portal-menu";
29
30 public static final String THEME_SETTINGS = "theme-settings";
31
32 @Id
33 private String key;
34
35 @Version
36 private Long version;
37
38 @Column(columnDefinition = "text")
39 private String value;
40
41 @JdbcTypeCode(SqlTypes.JSON)
42 @Column(columnDefinition = "jsonb")
43 private JsonNode jsonValue;
44
45 private boolean availableForViewer;
46
47
48 public String getKey() {
49 return key;
50 }
51
52 public void setKey(String key) {
53 this.key = key;
54 }
55
56 public Long getVersion() {
57 return version;
58 }
59
60 public Configuration setVersion(Long version) {
61 this.version = version;
62 return this;
63 }
64
65 public String getValue() {
66 return value;
67 }
68
69 public void setValue(String value) {
70 this.value = value;
71 }
72
73 public JsonNode getJsonValue() {
74 return jsonValue;
75 }
76
77 public void setJsonValue(JsonNode jsonValue) {
78 this.jsonValue = jsonValue;
79 }
80
81 public boolean isAvailableForViewer() {
82 return availableForViewer;
83 }
84
85 public void setAvailableForViewer(boolean availableForViewer) {
86 this.availableForViewer = availableForViewer;
87 }
88
89 }