[AB-96] adding ability to edit/delete modmail messages via editing/deleting the original message causing the message,

adding featuremode to modmail to define whether or not there is a separate message posted to the mod mail thread, to see it easier, renaming modmail related tables to singular, adding some necessary methods (caching) to all entities
This commit is contained in:
Sheldan
2020-10-19 23:55:51 +02:00
parent 1b98436736
commit dca98c2953
75 changed files with 952 additions and 592 deletions

View File

@@ -7,8 +7,8 @@ import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
import java.time.Instant;
import java.util.Objects;
@Entity
@Table(name="embedded_message")
@@ -17,9 +17,10 @@ import java.util.Objects;
@NoArgsConstructor
@Getter
@Setter
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class EmbeddedMessage {
public class EmbeddedMessage implements Serializable {
@Getter
@ManyToOne
@@ -66,23 +67,5 @@ public class EmbeddedMessage {
this.created = Instant.now();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
EmbeddedMessage that = (EmbeddedMessage) o;
return Objects.equals(embeddedUser, that.embeddedUser) &&
Objects.equals(embeddingUser, that.embeddingUser) &&
Objects.equals(embeddedServer, that.embeddedServer) &&
Objects.equals(embeddedChannel, that.embeddedChannel) &&
Objects.equals(embeddedMessageId, that.embeddedMessageId) &&
Objects.equals(embeddingServer, that.embeddingServer) &&
Objects.equals(embeddingChannel, that.embeddingChannel) &&
Objects.equals(embeddingMessageId, that.embeddingMessageId);
}
@Override
public int hashCode() {
return Objects.hash(embeddedUser, embeddingUser, embeddedServer, embeddedChannel, embeddedMessageId, embeddingServer, embeddingChannel, embeddingMessageId);
}
}

View File

@@ -7,8 +7,8 @@ import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
import java.time.Instant;
import java.util.Objects;
@Entity
@Table(name="reminder")
@@ -17,9 +17,10 @@ import java.util.Objects;
@NoArgsConstructor
@Getter
@Setter
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Reminder {
public class Reminder implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -73,24 +74,4 @@ public class Reminder {
@Setter
private String jobTriggerKey;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Reminder reminder = (Reminder) o;
return reminded == reminder.reminded &&
Objects.equals(id, reminder.id) &&
Objects.equals(remindedUser, reminder.remindedUser) &&
Objects.equals(messageId, reminder.messageId) &&
Objects.equals(channel, reminder.channel) &&
Objects.equals(server, reminder.server) &&
Objects.equals(reminderDate, reminder.reminderDate) &&
Objects.equals(targetDate, reminder.targetDate) &&
Objects.equals(text, reminder.text);
}
@Override
public int hashCode() {
return Objects.hash(id, remindedUser, messageId, channel, server, reminderDate, targetDate, text, reminded);
}
}

View File

@@ -6,9 +6,9 @@ import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
import java.time.Instant;
import java.util.List;
import java.util.Objects;
@Entity
@Table(name="starboard_post")
@@ -17,9 +17,10 @@ import java.util.Objects;
@NoArgsConstructor
@Getter
@Setter
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class StarboardPost {
public class StarboardPost implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -88,25 +89,4 @@ public class StarboardPost {
return this.reactions.size();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
StarboardPost post = (StarboardPost) o;
return ignored == post.ignored &&
Objects.equals(id, post.id) &&
Objects.equals(author, post.author) &&
Objects.equals(starboardMessageId, post.starboardMessageId) &&
Objects.equals(postMessageId, post.postMessageId) &&
Objects.equals(starboardChannel, post.starboardChannel) &&
Objects.equals(sourceChanel, post.sourceChanel) &&
Objects.equals(reactionCount, post.reactionCount) &&
Objects.equals(reactions, post.reactions) &&
Objects.equals(starredDate, post.starredDate);
}
@Override
public int hashCode() {
return Objects.hash(id, author, starboardMessageId, postMessageId, starboardChannel, sourceChanel, reactionCount, reactions, starredDate, ignored);
}
}

View File

@@ -5,8 +5,8 @@ import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
import java.time.Instant;
import java.util.Objects;
@Entity
@Table(name="starboard_post_reaction")
@@ -15,9 +15,10 @@ import java.util.Objects;
@NoArgsConstructor
@Getter
@Setter
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class StarboardPostReaction {
public class StarboardPostReaction implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -40,18 +41,4 @@ public class StarboardPostReaction {
this.created = Instant.now();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
StarboardPostReaction that = (StarboardPostReaction) o;
return Objects.equals(id, that.id) &&
Objects.equals(reactor, that.reactor) &&
Objects.equals(starboardPost, that.starboardPost);
}
@Override
public int hashCode() {
return Objects.hash(id, reactor, starboardPost);
}
}

View File

@@ -5,8 +5,10 @@ import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import dev.sheldan.abstracto.utility.models.SuggestionState;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
import java.time.Instant;
import java.util.Objects;
@@ -17,7 +19,10 @@ import java.util.Objects;
@NoArgsConstructor
@Getter
@Setter
public class Suggestion {
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Suggestion implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)