aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick/data/entities/MessageEntity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/juick/data/entities/MessageEntity.java')
-rw-r--r--src/main/java/com/juick/data/entities/MessageEntity.java99
1 files changed, 99 insertions, 0 deletions
diff --git a/src/main/java/com/juick/data/entities/MessageEntity.java b/src/main/java/com/juick/data/entities/MessageEntity.java
new file mode 100644
index 00000000..21896fb9
--- /dev/null
+++ b/src/main/java/com/juick/data/entities/MessageEntity.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2008-2024, Juick
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package com.juick.data.entities;
+
+import jakarta.persistence.*;
+import java.io.Serializable;
+import java.time.Instant;
+import java.util.HashSet;
+import java.util.Set;
+
+@Entity
+@Table(name = "messages")
+public class MessageEntity implements Serializable {
+ @Id
+ @Column(name = "message_id")
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Integer id;
+ @ManyToMany
+ @JoinTable(name = "messages_tags",
+ joinColumns = @JoinColumn(name = "message_id"),
+ inverseJoinColumns = @JoinColumn(name = "tag_id")
+ )
+ private Set<TagEntity> tags = new HashSet<>();
+
+ @OneToMany(mappedBy = "message")
+ private Set<ReplyEntity> replies = new HashSet<>();
+
+ @ManyToOne(cascade = CascadeType.MERGE)
+ private UserEntity user;
+
+ @Column(name = "ts")
+ private Instant ts;
+
+ @Column(name = "txt")
+ private String text;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public Set<TagEntity> getTags() {
+ return tags;
+ }
+
+ public void setTags(Set<TagEntity> tags) {
+ this.tags = tags;
+ }
+
+ public Set<ReplyEntity> getReplies() {
+ return replies;
+ }
+
+ public void setReplies(Set<ReplyEntity> replies) {
+ this.replies = replies;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ public UserEntity getUser() {
+ return user;
+ }
+
+ public void setUser(UserEntity user) {
+ this.user = user;
+ }
+
+ public Instant getTimestamp() {
+ return ts;
+ }
+
+ public void setTimestamp(Instant ts) {
+ this.ts = ts;
+ }
+}