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