[AB-62] adding server id to more tables for easier joins and fixing structure at more places

This commit is contained in:
Sheldan
2021-02-08 01:58:35 +01:00
parent 1352fac40f
commit ea12d67e5f
46 changed files with 188 additions and 150 deletions

View File

@@ -28,6 +28,7 @@ public class ModMailMessageManagementServiceBean implements ModMailMessageManage
.author(author)
.messageId(userPostedMessage.getIdLong())
.createdMessageInDM(dmId)
.server(modMailThread.getServer())
.createdMessageInChannel(channelMessageId)
.dmChannel(dmChannel)
.threadReference(modMailThread)

View File

@@ -32,6 +32,7 @@ public class ModMailSubscriberManagementServiceBean implements ModMailSubscriber
ModMailThreadSubscriber subscriber = ModMailThreadSubscriber
.builder()
.server(modMailThread.getServer())
.subscriber(aUserInAServer)
.threadReference(modMailThread)
.build();

View File

@@ -11,8 +11,15 @@
<column name="id" type="BIGINT">
<constraints nullable="false" primaryKey="true" primaryKeyName="mod_mail_message_pkey"/>
</column>
<column name="created_message_in_dm" type="BIGINT" />
<column name="created_message_in_channel" type="BIGINT" />
<column name="created_message_in_dm" type="BIGINT" >
<constraints nullable="true"/>
</column>
<column name="created_message_in_channel" type="BIGINT" >
<constraints nullable="true"/>
</column>
<column name="server_id" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="anonymous" type="BOOLEAN">
<constraints nullable="true"/>
</column>
@@ -33,6 +40,7 @@
<createIndex indexName="idx_mod_mail_message_thread" tableName="mod_mail_message">
<column name="thread_id"/>
</createIndex>
<addForeignKeyConstraint baseColumnNames="server_id" baseTableName="mod_mail_message" constraintName="fk_mod_mail_message_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
<addForeignKeyConstraint baseColumnNames="thread_id" baseTableName="mod_mail_message" constraintName="fk_mod_mail_message_thread" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="mod_mail_thread" validate="true"/>
<addForeignKeyConstraint baseColumnNames="author_user_in_server_id" baseTableName="mod_mail_message" constraintName="fk_mod_mail_message_author" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
<sql>

View File

@@ -21,9 +21,13 @@
<column name="mod_mail_thread_id" type="BIGINT">
<constraints nullable="false"/>
</column>
<column name="server_id" type="BIGINT">
<constraints nullable="false"/>
</column>
</createTable>
<addForeignKeyConstraint baseColumnNames="user_in_server_id" baseTableName="mod_mail_subscriber" constraintName="fk_mod_mail_thread_subscriber_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
<addForeignKeyConstraint baseColumnNames="mod_mail_thread_id" baseTableName="mod_mail_subscriber" constraintName="fk_mod_mail_thread_thread" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="mod_mail_thread" validate="true"/>
<addForeignKeyConstraint baseColumnNames="server_id" baseTableName="mod_mail_subscriber" constraintName="fk_mod_mail_subscriber_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
<sql>
DROP TRIGGER IF EXISTS mod_mail_subscriber_update_trigger ON mod_mail_subscriber;
CREATE TRIGGER mod_mail_subscriber_update_trigger BEFORE UPDATE ON mod_mail_subscriber FOR EACH ROW EXECUTE PROCEDURE update_trigger_procedure();

View File

@@ -1,5 +1,6 @@
package dev.sheldan.abstracto.modmail.models.database;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
@@ -42,6 +43,10 @@ public class ModMailMessage implements Serializable {
@Column(name = "created_message_in_channel")
private Long createdMessageInChannel;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "server_id", nullable = false)
private AServer server;
/**
* The {@link AUserInAServer} which authored this message
*/

View File

@@ -1,5 +1,6 @@
package dev.sheldan.abstracto.modmail.models.database;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
@@ -35,6 +36,10 @@ public class ModMailThreadSubscriber {
@JoinColumn(name = "user_in_server_id", nullable = false)
private AUserInAServer subscriber;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "server_id", nullable = false)
private AServer server;
/**
* The thread for which the member is subscribed to
*/