mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-01-28 19:35:23 +00:00
[AB-62] adding server id to more tables for easier joins and fixing structure at more places
This commit is contained in:
@@ -12,6 +12,7 @@ import dev.sheldan.abstracto.assignableroles.models.templates.*;
|
||||
import dev.sheldan.abstracto.assignableroles.service.management.AssignableRoleManagementService;
|
||||
import dev.sheldan.abstracto.assignableroles.service.management.AssignableRolePlaceManagementService;
|
||||
import dev.sheldan.abstracto.assignableroles.service.management.AssignableRolePlacePostManagementService;
|
||||
import dev.sheldan.abstracto.assignableroles.service.management.AssignableRolePlacePostManagementServiceBean;
|
||||
import dev.sheldan.abstracto.core.command.exception.AbstractoTemplatedException;
|
||||
import dev.sheldan.abstracto.core.command.exception.CommandParameterKeyValueWrongTypeException;
|
||||
import dev.sheldan.abstracto.core.exception.ChannelNotInGuildException;
|
||||
@@ -92,6 +93,9 @@ public class AssignableRolePlaceServiceBean implements AssignableRolePlaceServic
|
||||
@Autowired
|
||||
private AssignableRoleService roleService;
|
||||
|
||||
@Autowired
|
||||
private AssignableRolePlacePostManagementServiceBean assignableRolePlacePostManagementServiceBean;
|
||||
|
||||
@Override
|
||||
public void createAssignableRolePlace(AServer server, String name, AChannel channel, String text) {
|
||||
if(rolePlaceManagementService.doesPlaceExist(server, name)) {
|
||||
@@ -241,14 +245,7 @@ public class AssignableRolePlaceServiceBean implements AssignableRolePlaceServic
|
||||
emote.setChangeable(false);
|
||||
log.trace("Setting emote {} to not changeable, because it is part of an assignable role place {} in server {}.", emote.getId(), placeId, serverId);
|
||||
|
||||
AssignableRolePlacePost newPost = AssignableRolePlacePost
|
||||
.builder()
|
||||
.id(message.getIdLong())
|
||||
.usedChannel(loadedPlace.getChannel())
|
||||
.assignablePlace(loadedPlace)
|
||||
.build();
|
||||
|
||||
loadedPlace.getMessagePosts().add(newPost);
|
||||
AssignableRolePlacePost newPost = assignableRolePlacePostManagementServiceBean.createAssignableRolePlacePost(loadedPlace, message.getIdLong());
|
||||
assignableRoleManagementServiceBean.addRoleToPlace(loadedPlace, emote, role, description, newPost);
|
||||
}
|
||||
|
||||
@@ -789,16 +786,10 @@ public class AssignableRolePlaceServiceBean implements AssignableRolePlaceServic
|
||||
log.trace("Storing post {} with {} fields.", message.getId(), embed.getFields().size());
|
||||
List<AssignableRole> firstRoles = rolesToAdd.subList(usedEmotes, usedEmotes + embed.getFields().size());
|
||||
usedEmotes += embed.getFields().size();
|
||||
AssignableRolePlacePost post = AssignableRolePlacePost
|
||||
.builder()
|
||||
.id(message.getIdLong())
|
||||
.usedChannel(updatedPlace.getChannel())
|
||||
.assignablePlace(updatedPlace)
|
||||
.build();
|
||||
AssignableRolePlacePost post = assignableRolePlacePostManagementServiceBean.createAssignableRolePlacePost(updatedPlace, message.getIdLong());
|
||||
firstRoles.forEach(assignableRole ->
|
||||
assignableRole.setAssignableRolePlacePost(post)
|
||||
);
|
||||
updatedPlace.getMessagePosts().add(post);
|
||||
} catch (Exception e) {
|
||||
log.error("Failed to get future.", e);
|
||||
}
|
||||
|
||||
@@ -51,6 +51,7 @@ public class AssignableRoleManagementServiceBean implements AssignableRoleManage
|
||||
.emote(emote)
|
||||
.role(role)
|
||||
.requiredLevel(0)
|
||||
.server(place.getServer())
|
||||
.position(maxPosition)
|
||||
.description(description)
|
||||
.assignableRolePlacePost(post)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package dev.sheldan.abstracto.assignableroles.service.management;
|
||||
|
||||
import dev.sheldan.abstracto.assignableroles.exceptions.AssignablePlacePostNotFoundException;
|
||||
import dev.sheldan.abstracto.assignableroles.models.database.AssignableRolePlace;
|
||||
import dev.sheldan.abstracto.assignableroles.models.database.AssignableRolePlacePost;
|
||||
import dev.sheldan.abstracto.assignableroles.repository.AssignableRolePlacePostRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -14,7 +15,6 @@ public class AssignableRolePlacePostManagementServiceBean implements AssignableR
|
||||
@Autowired
|
||||
private AssignableRolePlacePostRepository repository;
|
||||
|
||||
|
||||
@Override
|
||||
public Optional<AssignableRolePlacePost> findByMessageIdOptional(Long messageId) {
|
||||
return repository.findById(messageId);
|
||||
@@ -25,4 +25,17 @@ public class AssignableRolePlacePostManagementServiceBean implements AssignableR
|
||||
return findByMessageIdOptional(messageId).orElseThrow(() -> new AssignablePlacePostNotFoundException(messageId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public AssignableRolePlacePost createAssignableRolePlacePost(AssignableRolePlace updatedPlace, Long messageId) {
|
||||
AssignableRolePlacePost post = AssignableRolePlacePost
|
||||
.builder()
|
||||
.id(messageId)
|
||||
.usedChannel(updatedPlace.getChannel())
|
||||
.server(updatedPlace.getServer())
|
||||
.assignablePlace(updatedPlace)
|
||||
.build();
|
||||
repository.save(post);
|
||||
return post;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
<column name="assignable_place_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="server_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="place_post_id" type="BIGINT">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
@@ -37,6 +40,7 @@
|
||||
<addForeignKeyConstraint baseColumnNames="role_id" baseTableName="assignable_role" constraintName="fk_assignable_role_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="role" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="assignable_place_id" baseTableName="assignable_role" constraintName="fk_assignable_role_place" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="assignable_role_place" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="place_post_id" baseTableName="assignable_role" constraintName="fk_assignable_role_post" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="assignable_role_place_post" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="server_id" baseTableName="assignable_role" constraintName="fk_assignable_role_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
|
||||
<sql>
|
||||
DROP TRIGGER IF EXISTS assignable_role_update_trigger ON assignable_role;
|
||||
CREATE TRIGGER assignable_role_update_trigger BEFORE UPDATE ON assignable_role FOR EACH ROW EXECUTE PROCEDURE update_trigger_procedure();
|
||||
|
||||
@@ -17,12 +17,16 @@
|
||||
<column name="channel_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="server_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="updated" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||
</createTable>
|
||||
<addForeignKeyConstraint baseColumnNames="assignable_place_id" baseTableName="assignable_role_place_post" constraintName="fk_assignable_role_place_post_place_id" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="assignable_role_place" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="server_id" baseTableName="assignable_role_place_post" constraintName="fk_assignable_role_place_post_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="channel_id" baseTableName="assignable_role_place_post" constraintName="fk_assignable_role_place_post_channel" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="channel" validate="true"/>
|
||||
<sql>
|
||||
DROP TRIGGER IF EXISTS assignable_role_place_post_update_trigger ON assignable_role_place_post;
|
||||
|
||||
@@ -31,12 +31,12 @@
|
||||
<column name="assigned_role_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="user_id" type="BIGINT">
|
||||
<column name="user_in_server_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
</createTable>
|
||||
<addForeignKeyConstraint baseColumnNames="assigned_role_id" baseTableName="assigned_role_in_user" constraintName="fk_assigned_role_in_user_assignable_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="assignable_role" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="user_id" baseTableName="assigned_role_in_user" constraintName="fk_assigned_role_in_user_assigned_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="assigned_role_user" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="user_in_server_id" baseTableName="assigned_role_in_user" constraintName="fk_assigned_role_in_user_assigned_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="assigned_role_user" validate="true"/>
|
||||
</changeSet>
|
||||
|
||||
</databaseChangeLog>
|
||||
@@ -2,6 +2,7 @@ package dev.sheldan.abstracto.assignableroles.models.database;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.database.AEmote;
|
||||
import dev.sheldan.abstracto.core.models.database.ARole;
|
||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
||||
import lombok.*;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
@@ -35,20 +36,18 @@ public class AssignableRole implements Serializable {
|
||||
@JoinColumn(name = "role_id", nullable = false)
|
||||
private ARole role;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE})
|
||||
@Getter
|
||||
@Setter
|
||||
@JoinColumn(name = "assignable_place_id", nullable = false)
|
||||
private AssignableRolePlace assignablePlace;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE})
|
||||
@JoinColumn(name = "place_post_id")
|
||||
private AssignableRolePlacePost assignableRolePlacePost;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ManyToMany(mappedBy = "roles")
|
||||
@Builder.Default
|
||||
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||
|
||||
@@ -31,12 +31,12 @@ public class AssignableRolePlace implements Serializable {
|
||||
@Column(name = "id")
|
||||
private Long id;
|
||||
|
||||
@OneToOne
|
||||
@OneToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name="channel_id")
|
||||
private AChannel channel;
|
||||
|
||||
@OneToOne
|
||||
@JoinColumn(name="server_id")
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
@Column(name = "key")
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package dev.sheldan.abstracto.assignableroles.models.database;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.database.AChannel;
|
||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
||||
import lombok.*;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
|
||||
@@ -26,7 +27,7 @@ public class AssignableRolePlacePost implements Serializable {
|
||||
@Column(name = "id")
|
||||
private Long id;
|
||||
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "channel_id")
|
||||
private AChannel usedChannel;
|
||||
|
||||
@@ -36,9 +37,11 @@ public class AssignableRolePlacePost implements Serializable {
|
||||
@Column(name = "updated")
|
||||
private Instant updated;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE})
|
||||
@Getter
|
||||
@Setter
|
||||
@JoinColumn(name = "assignable_place_id", nullable = false)
|
||||
private AssignableRolePlace assignablePlace;
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ public class AssignedRoleUser implements Serializable {
|
||||
@ManyToMany
|
||||
@JoinTable(
|
||||
name = "assigned_role_in_user",
|
||||
joinColumns = @JoinColumn(name = "user_id"),
|
||||
joinColumns = @JoinColumn(name = "user_in_server_id"),
|
||||
inverseJoinColumns = @JoinColumn(name = "assigned_role_id"))
|
||||
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||
@Builder.Default
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package dev.sheldan.abstracto.assignableroles.service.management;
|
||||
|
||||
import dev.sheldan.abstracto.assignableroles.models.database.AssignableRolePlace;
|
||||
import dev.sheldan.abstracto.assignableroles.models.database.AssignableRolePlacePost;
|
||||
|
||||
import java.util.Optional;
|
||||
@@ -7,4 +8,5 @@ import java.util.Optional;
|
||||
public interface AssignableRolePlacePostManagementService {
|
||||
Optional<AssignableRolePlacePost> findByMessageIdOptional(Long messageId);
|
||||
AssignableRolePlacePost findByMessageId(Long messageId);
|
||||
AssignableRolePlacePost createAssignableRolePlacePost(AssignableRolePlace updatedPlace, Long messageId);
|
||||
}
|
||||
|
||||
@@ -55,6 +55,7 @@ public class UserExperienceManagementServiceBean implements UserExperienceManage
|
||||
.builder()
|
||||
.experience(0L)
|
||||
.messageCount(0L)
|
||||
.server(aUserInAServer.getServerReference())
|
||||
.experienceGainDisabled(false)
|
||||
.user(aUserInAServer)
|
||||
.id(aUserInAServer.getUserInServerId())
|
||||
|
||||
@@ -28,9 +28,13 @@
|
||||
<column name="level_id" type="INTEGER">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="server_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
</createTable>
|
||||
<addForeignKeyConstraint baseColumnNames="level_id" baseTableName="user_experience" constraintName="fk_user_experience_level" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="level" referencedTableName="experience_level" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="role_id" baseTableName="user_experience" constraintName="fk_user_experience_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="experience_role" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="server_id" baseTableName="user_experience" constraintName="fk_user_experience_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
|
||||
<sql>
|
||||
DROP TRIGGER IF EXISTS user_experience_update_trigger ON user_experience;
|
||||
CREATE TRIGGER user_experience_update_trigger BEFORE UPDATE ON user_experience FOR EACH ROW EXECUTE PROCEDURE update_trigger_procedure();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package dev.sheldan.abstracto.experience.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;
|
||||
@@ -36,6 +37,10 @@ public class AUserExperience implements Serializable {
|
||||
@PrimaryKeyJoinColumn
|
||||
private AUserInAServer user;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
/**
|
||||
* The total amount of experience the user has in the guild
|
||||
*/
|
||||
|
||||
@@ -27,7 +27,7 @@ public class AllowedInviteLink {
|
||||
@Column(name = "code")
|
||||
private String code;
|
||||
|
||||
@OneToOne(fetch = FetchType.LAZY)
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ public class FilteredInviteLink {
|
||||
@Column(name = "code")
|
||||
private String code;
|
||||
|
||||
@OneToOne(fetch = FetchType.LAZY)
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
|
||||
@@ -40,14 +40,14 @@ public class Mute implements Serializable {
|
||||
/**
|
||||
* The {@link AUserInAServer} which was muted
|
||||
*/
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "muted_user_in_server_id", nullable = false)
|
||||
private AUserInAServer mutedUser;
|
||||
|
||||
/**
|
||||
* The {@link AUserInAServer} which casted the mute
|
||||
*/
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "muting_user_in_server_id", nullable = false)
|
||||
private AUserInAServer mutingUser;
|
||||
|
||||
@@ -84,7 +84,7 @@ public class Mute implements Serializable {
|
||||
/**
|
||||
* The channel in which this mute was cast
|
||||
*/
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "mutingChannel", nullable = false)
|
||||
private AChannel mutingChannel;
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ public class UserNote implements Serializable {
|
||||
@JoinColumn(name = "server_id", referencedColumnName = "id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "user_in_server_id", nullable = false)
|
||||
private AUserInAServer user;
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ public class Warning implements Serializable {
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "warned_user_in_server_id", nullable = false)
|
||||
private AUserInAServer warnedUser;
|
||||
|
||||
@@ -50,7 +50,7 @@ public class Warning implements Serializable {
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "warning_user_in_server_id", nullable = false)
|
||||
private AUserInAServer warningUser;
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -32,6 +32,7 @@ public class ModMailSubscriberManagementServiceBean implements ModMailSubscriber
|
||||
|
||||
ModMailThreadSubscriber subscriber = ModMailThreadSubscriber
|
||||
.builder()
|
||||
.server(modMailThread.getServer())
|
||||
.subscriber(aUserInAServer)
|
||||
.threadReference(modMailThread)
|
||||
.build();
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -30,6 +30,7 @@ public class StarboardPostReactorManagementServiceBean implements StarboardPostR
|
||||
.builder()
|
||||
.starboardPost(post)
|
||||
.reactor(user)
|
||||
.server(user.getServerReference())
|
||||
.build();
|
||||
log.info("Persisting the reactor {} for starboard post {} in server {}.", user.getUserReference().getId(), post.getId(), user.getServerReference().getId());
|
||||
repository.save(reactor);
|
||||
|
||||
@@ -27,21 +27,21 @@
|
||||
<column name="embedded_user_in_server_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="embedding_channel" type="BIGINT">
|
||||
<column name="embedding_channel_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="embedding_server" type="BIGINT">
|
||||
<column name="embedding_server_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="embedding_user_in_server_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
</createTable>
|
||||
<addForeignKeyConstraint baseColumnNames="embedding_channel" baseTableName="embedded_message" constraintName="fk_embed_channel_channel" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="channel" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="embedding_channel_id" baseTableName="embedded_message" constraintName="fk_embed_channel_channel" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="channel" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="embedded_channel_id" baseTableName="embedded_message" constraintName="fk_embed_embedded_channel_id_channel" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="channel" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="embedding_user_in_server_id" baseTableName="embedded_message" constraintName="fk_embedded_user_in_server_id_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="embedded_user_in_server_id" baseTableName="embedded_message" constraintName="fk_embedding_user_in_server_id_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="embedding_server" baseTableName="embedded_message" constraintName="fk_embedding_server_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="embedding_server_id" baseTableName="embedded_message" constraintName="fk_embedding_server_id_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="embedded_server_id" baseTableName="embedded_message" constraintName="fk_embed_embedded_server_id_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
|
||||
<sql>
|
||||
DROP TRIGGER IF EXISTS embedded_message_update_trigger ON embedded_message;
|
||||
|
||||
@@ -21,9 +21,13 @@
|
||||
<column name="post_id" type="BIGINT">
|
||||
<constraints nullable="true"/>
|
||||
</column>
|
||||
<column name="server_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
</createTable>
|
||||
<addForeignKeyConstraint baseColumnNames="reactor_user_in_server_id" baseTableName="starboard_post_reaction" constraintName="fk_starboard_post_reaction_reactor" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="post_id" baseTableName="starboard_post_reaction" constraintName="fk_starboard_post_reaction_post" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="starboard_post" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="server_id" baseTableName="starboard_post_reaction" constraintName="fk_starboard_post_reaction_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
|
||||
<sql>
|
||||
DROP TRIGGER IF EXISTS starboard_post_reaction_update_trigger ON starboard_post_reaction;
|
||||
CREATE TRIGGER starboard_post_reaction_update_trigger BEFORE UPDATE ON starboard_post_reaction FOR EACH ROW EXECUTE PROCEDURE update_trigger_procedure();
|
||||
|
||||
@@ -23,22 +23,22 @@ import java.time.Instant;
|
||||
public class EmbeddedMessage implements Serializable {
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "embedded_user_in_server_id", nullable = false)
|
||||
private AUserInAServer embeddedUser;
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "embedding_user_in_server_id", nullable = false)
|
||||
private AUserInAServer embeddingUser;
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "embedded_server_id", nullable = false)
|
||||
private AServer embeddedServer;
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "embedded_channel_id", nullable = false)
|
||||
private AChannel embeddedChannel;
|
||||
|
||||
@@ -46,13 +46,13 @@ public class EmbeddedMessage implements Serializable {
|
||||
private Long embeddedMessageId;
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "embedding_server_id", nullable = false)
|
||||
private AServer embeddingServer;
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "embeddingChannel", nullable = false)
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "embedding_channel_id", nullable = false)
|
||||
private AChannel embeddingChannel;
|
||||
|
||||
@Column(name = "embedding_message_id")
|
||||
|
||||
@@ -24,17 +24,17 @@ import java.util.List;
|
||||
public class PostedImage {
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "author_user_in_server_id", nullable = false)
|
||||
private AUserInAServer poster;
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "posted_channel_id", nullable = false)
|
||||
private AChannel postedChannel;
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ public class Reminder implements Serializable {
|
||||
private Long id;
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "user_in_server_id", nullable = false)
|
||||
private AUserInAServer remindedUser;
|
||||
|
||||
@@ -38,12 +38,12 @@ public class Reminder implements Serializable {
|
||||
private Long messageId;
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "channel_id", nullable = false)
|
||||
private AChannel channel;
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
|
||||
@@ -27,13 +27,13 @@ public class Repost {
|
||||
private RepostIdentifier repostId;
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@MapsId("userInServerId")
|
||||
@JoinColumn(name = "user_in_server_id", referencedColumnName = "user_in_server_id", nullable = false)
|
||||
private AUserInAServer poster;
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
|
||||
@@ -38,16 +38,16 @@ public class StarboardPost implements Serializable {
|
||||
@Column(name = "post_message_id")
|
||||
private Long postMessageId;
|
||||
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "channel_id", nullable = false)
|
||||
private AChannel starboardChannel;
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "source_channel_id", nullable = false)
|
||||
private AChannel sourceChanel;
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package dev.sheldan.abstracto.utility.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;
|
||||
@@ -25,15 +26,18 @@ public class StarboardPostReaction implements Serializable {
|
||||
@Column(name = "id")
|
||||
private Long id;
|
||||
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "reactor_user_in_server_id", nullable = false)
|
||||
private AUserInAServer reactor;
|
||||
|
||||
@OneToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "post_id")
|
||||
private StarboardPost starboardPost;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
@Column(name = "created")
|
||||
private Instant created;
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ public class Suggestion implements Serializable {
|
||||
private ServerSpecificId suggestionId;
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "suggester_user_in_server_id")
|
||||
private AUserInAServer suggester;
|
||||
|
||||
@@ -39,7 +39,7 @@ public class Suggestion implements Serializable {
|
||||
private Long messageId;
|
||||
|
||||
@Getter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "channel_id")
|
||||
private AChannel channel;
|
||||
|
||||
|
||||
@@ -63,6 +63,9 @@
|
||||
<column name="enabled" type="BOOLEAN"/>
|
||||
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||
<column name="updated" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||
<column name="server_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="command_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
@@ -71,6 +74,7 @@
|
||||
</column>
|
||||
</createTable>
|
||||
<addForeignKeyConstraint baseColumnNames="group_id" baseTableName="channel_group_command" constraintName="fk_channel_group_command_channel_group" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="channel_group" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="server_id" baseTableName="channel_group_command" constraintName="fk_channel_group_command_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="command_id" baseTableName="channel_group_command" constraintName="fk_channel_group_command_command" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="command" validate="true"/>
|
||||
<sql>
|
||||
DROP TRIGGER IF EXISTS channel_group_command_update_trigger ON channel_group_command;
|
||||
|
||||
@@ -66,54 +66,30 @@
|
||||
CREATE TRIGGER command_in_server_insert_trigger BEFORE INSERT ON command_in_server FOR EACH ROW EXECUTE PROCEDURE insert_trigger_procedure();
|
||||
</sql>
|
||||
</changeSet>
|
||||
<changeSet author="Sheldan" id="command_in_server_immune_roles-table">
|
||||
<createTable tableName="command_in_server_immune_roles">
|
||||
<column name="command_in_server_command_in_server_id" type="BIGINT">
|
||||
<changeSet author="Sheldan" id="command_in_server_immune_role-table">
|
||||
<createTable tableName="command_in_server_immune_role">
|
||||
<column name="command_in_server_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="immune_roles_id" type="BIGINT">
|
||||
<column name="role_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
</createTable>
|
||||
<addForeignKeyConstraint baseColumnNames="command_in_server_command_in_server_id" baseTableName="command_in_server_immune_roles" constraintName="fk_command_immune_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="command_in_server_id" referencedTableName="command_in_server" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="immune_roles_id" baseTableName="command_in_server_immune_roles" constraintName="fk_immune_role_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="role" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="command_in_server_id" baseTableName="command_in_server_immune_role" constraintName="fk_command_immune_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="command_in_server_id" referencedTableName="command_in_server" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="role_id" baseTableName="command_in_server_immune_role" constraintName="fk_immune_role_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="role" validate="true"/>
|
||||
|
||||
</changeSet>
|
||||
<changeSet author="Sheldan" id="command_in_server_allowed_roles-table">
|
||||
<createTable tableName="command_in_server_allowed_roles">
|
||||
<column name="command_in_server_command_in_server_id" type="BIGINT">
|
||||
<changeSet author="Sheldan" id="command_in_server_allowed_role-table">
|
||||
<createTable tableName="command_in_server_allowed_role">
|
||||
<column name="command_in_server_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="allowed_roles_id" type="BIGINT">
|
||||
<column name="role_id" type="BIGINT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
</createTable>
|
||||
<addForeignKeyConstraint baseColumnNames="command_in_server_command_in_server_id" baseTableName="command_in_server_allowed_roles" constraintName="fk_command_allowed_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="command_in_server_id" referencedTableName="command_in_server" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="allowed_roles_id" baseTableName="command_in_server_allowed_roles" constraintName="fk_role_allowed_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="role" validate="true"/>
|
||||
|
||||
</changeSet>
|
||||
<changeSet author="Sheldan" id="command-fk_command_feature">
|
||||
</changeSet>
|
||||
<changeSet author="Sheldan" id="command_in_server-command_in_server_immune_roles">
|
||||
</changeSet>
|
||||
<changeSet author="Sheldan" id="command_in_server-command_in_server_allowed_roles">
|
||||
</changeSet>
|
||||
<changeSet author="Sheldan" id="command_in_server_immune_roles-command_in_server_allowed_roles">
|
||||
</changeSet>
|
||||
<changeSet author="Sheldan" id="command-fk_command_module">
|
||||
</changeSet>
|
||||
<changeSet author="Sheldan" id="command_in_server-fk_command_command">
|
||||
</changeSet>
|
||||
<changeSet author="Sheldan" id="command_in_server_allowed_roles-fk_immune_role_role">
|
||||
</changeSet>
|
||||
<changeSet author="Sheldan" id="command_in_server-fk_command_server">
|
||||
</changeSet>
|
||||
|
||||
<changeSet author="Sheldan" id="command_triggers">
|
||||
|
||||
</changeSet>
|
||||
|
||||
<changeSet author="Sheldan" id="command_in_server_triggers">
|
||||
<addForeignKeyConstraint baseColumnNames="command_in_server_id" baseTableName="command_in_server_allowed_role" constraintName="fk_command_allowed_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="command_in_server_id" referencedTableName="command_in_server" validate="true"/>
|
||||
<addForeignKeyConstraint baseColumnNames="role_id" baseTableName="command_in_server_allowed_role" constraintName="fk_role_allowed_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="role" validate="true"/>
|
||||
|
||||
</changeSet>
|
||||
</databaseChangeLog>
|
||||
@@ -1,5 +1,6 @@
|
||||
package dev.sheldan.abstracto.core.command.models.database;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.database.AChannelGroupCommand;
|
||||
import dev.sheldan.abstracto.core.models.database.AFeature;
|
||||
import lombok.*;
|
||||
import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
@@ -7,6 +8,7 @@ import org.hibernate.annotations.CacheConcurrencyStrategy;
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
@Table(name = "command")
|
||||
@@ -14,6 +16,7 @@ import java.time.Instant;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
@Setter
|
||||
@Cacheable
|
||||
@EqualsAndHashCode
|
||||
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||
@@ -23,17 +26,17 @@ public class ACommand implements Serializable {
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
@Column(name = "name")
|
||||
private String name;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@Getter
|
||||
@Setter
|
||||
@JoinColumn(name = "module_id", nullable = false)
|
||||
private AModule module;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ManyToOne
|
||||
@OneToMany(mappedBy = "command", fetch = FetchType.LAZY)
|
||||
private List<AChannelGroupCommand> channelGroupCommands;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "feature_id", nullable = false)
|
||||
private AFeature feature;
|
||||
|
||||
|
||||
@@ -34,15 +34,21 @@ public class ACommandInAServer implements Serializable {
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer serverReference;
|
||||
|
||||
@ManyToMany(fetch = FetchType.LAZY)
|
||||
@ManyToMany
|
||||
@JoinTable(
|
||||
name = "command_in_server_allowed_role",
|
||||
joinColumns = @JoinColumn(name = "command_in_server_id", referencedColumnName = "command_in_server_id"),
|
||||
inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
|
||||
@Getter
|
||||
@JoinColumn(name = "allowed_role_id")
|
||||
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||
private List<ARole> allowedRoles;
|
||||
|
||||
@ManyToMany(fetch = FetchType.LAZY)
|
||||
@ManyToMany
|
||||
@JoinTable(
|
||||
name = "command_in_server_immune_role",
|
||||
joinColumns = @JoinColumn(name = "command_in_server_id", referencedColumnName = "command_in_server_id"),
|
||||
inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
|
||||
@Getter
|
||||
@JoinColumn(name = "immune_role_id")
|
||||
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||
private List<ARole> immuneRoles;
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ import java.util.List;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode
|
||||
@Cacheable
|
||||
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||
@@ -21,22 +22,23 @@ public class AChannelGroup implements Serializable {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "id")
|
||||
private Long id;
|
||||
|
||||
@Column(name = "group_name")
|
||||
@Setter
|
||||
private String groupName;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@Setter
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@Setter
|
||||
@JoinColumn(name = "group_type_id")
|
||||
private ChannelGroupType channelGroupType;
|
||||
|
||||
@OneToMany(mappedBy = "group", fetch = FetchType.LAZY)
|
||||
private List<AChannelGroupCommand> channelGroupCommands;
|
||||
|
||||
@Column(name = "created")
|
||||
private Instant created;
|
||||
|
||||
|
||||
@@ -24,12 +24,16 @@ public class AChannelGroupCommand implements Serializable {
|
||||
@Column(name = "command_in_group_id")
|
||||
private Long commandInGroupId;
|
||||
|
||||
@OneToOne(fetch = FetchType.LAZY)
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "command_id", nullable = false)
|
||||
@Setter
|
||||
private ACommand command;
|
||||
|
||||
@OneToOne(fetch = FetchType.LAZY)
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name="server_id")
|
||||
private AServer server;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "group_id", nullable = false)
|
||||
@Setter
|
||||
private AChannelGroup group;
|
||||
|
||||
@@ -13,34 +13,31 @@ import java.time.Instant;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Getter
|
||||
@Setter
|
||||
@EqualsAndHashCode
|
||||
@Cacheable
|
||||
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||
public class AConfig implements Serializable {
|
||||
|
||||
@Id
|
||||
@Column(name = "id")
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Integer id;
|
||||
|
||||
@Column
|
||||
@Column(name = "name")
|
||||
private String name;
|
||||
|
||||
@Column
|
||||
@Setter
|
||||
@Column(name = "string_value")
|
||||
private String stringValue;
|
||||
|
||||
@Column
|
||||
@Setter
|
||||
@Column(name = "double_value")
|
||||
private Double doubleValue;
|
||||
|
||||
@Column
|
||||
@Setter
|
||||
@Column(name = "long_value")
|
||||
private Long longValue;
|
||||
|
||||
@OneToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
@Getter
|
||||
@Setter
|
||||
private AServer server;
|
||||
|
||||
@Column(name = "created")
|
||||
|
||||
@@ -11,6 +11,8 @@ import java.util.List;
|
||||
@Entity
|
||||
@Table(name="feature_flag")
|
||||
@Builder
|
||||
@Setter
|
||||
@Getter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode
|
||||
@@ -20,30 +22,21 @@ public class AFeatureFlag implements Serializable {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Getter
|
||||
@Column(name = "id")
|
||||
public Long id;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@Getter
|
||||
@Setter
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@OneToOne
|
||||
@OneToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "feature_id", nullable = false)
|
||||
private AFeature feature;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@OneToMany(fetch = FetchType.LAZY, mappedBy = "featureFlag")
|
||||
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
|
||||
private List<AFeatureMode> modes;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@Column(name = "enabled")
|
||||
private boolean enabled;
|
||||
|
||||
|
||||
@@ -10,6 +10,8 @@ import java.time.Instant;
|
||||
@Entity
|
||||
@Table(name="feature_mode")
|
||||
@Builder
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode
|
||||
@@ -18,31 +20,22 @@ import java.time.Instant;
|
||||
public class AFeatureMode implements Serializable {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Getter
|
||||
@Column(name = "id")
|
||||
public Long id;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "feature_flag_id", nullable = false)
|
||||
private AFeatureFlag featureFlag;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ManyToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "feature_mode_id", nullable = false)
|
||||
private DefaultFeatureMode featureMode;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@OneToOne
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
private AServer server;
|
||||
|
||||
@Column(name = "enabled")
|
||||
@Getter
|
||||
@Setter
|
||||
private Boolean enabled;
|
||||
|
||||
@Column(name = "created")
|
||||
|
||||
@@ -25,7 +25,7 @@ public class DefaultFeatureFlag implements Serializable {
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@OneToOne
|
||||
@OneToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "feature_id", nullable = false)
|
||||
private AFeature feature;
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ public class DefaultFeatureMode implements Serializable {
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@OneToOne
|
||||
@OneToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "feature_id", nullable = false)
|
||||
private AFeature feature;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user