mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-16 20:29:08 +00:00
[AB-xxx] adding support for user installable apps to varying commands
This commit is contained in:
@@ -2,6 +2,7 @@ package dev.sheldan.abstracto.remind.model.database;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.database.AChannel;
|
||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
||||
import dev.sheldan.abstracto.core.models.database.AUser;
|
||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||
import lombok.*;
|
||||
|
||||
@@ -25,18 +26,22 @@ public class Reminder implements Serializable {
|
||||
private Long id;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "user_in_server_id", nullable = false)
|
||||
@JoinColumn(name = "user_in_server_id")
|
||||
private AUserInAServer remindedUser;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "user_id")
|
||||
private AUser remindedAUser;
|
||||
|
||||
@Column(name = "message_id")
|
||||
private Long messageId;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "channel_id", nullable = false)
|
||||
@JoinColumn(name = "channel_id")
|
||||
private AChannel channel;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "server_id", nullable = false)
|
||||
@JoinColumn(name = "server_id")
|
||||
private AServer server;
|
||||
|
||||
@Column(name = "created", nullable = false, insertable = false, updatable = false)
|
||||
@@ -51,9 +56,17 @@ public class Reminder implements Serializable {
|
||||
@Column(name = "text")
|
||||
private String text;
|
||||
|
||||
@Builder.Default
|
||||
@Column(name = "send_dm", nullable = false)
|
||||
private Boolean sendInDm = false;
|
||||
|
||||
@Builder.Default
|
||||
@Column(name = "user_command", nullable = false)
|
||||
private Boolean userCommand = false;
|
||||
|
||||
@Builder.Default
|
||||
@Column(name = "reminded", nullable = false)
|
||||
private boolean reminded = false;
|
||||
private Boolean reminded = false;
|
||||
|
||||
@Column(name = "job_trigger_key")
|
||||
private String jobTriggerKey;
|
||||
|
||||
@@ -3,6 +3,7 @@ package dev.sheldan.abstracto.remind.model.template.commands;
|
||||
import dev.sheldan.abstracto.core.models.context.ServerContext;
|
||||
import dev.sheldan.abstracto.core.models.template.display.MemberDisplay;
|
||||
import dev.sheldan.abstracto.core.models.template.display.MemberNameDisplay;
|
||||
import dev.sheldan.abstracto.core.models.template.display.UserDisplay;
|
||||
import dev.sheldan.abstracto.core.utils.MessageUtils;
|
||||
import dev.sheldan.abstracto.remind.model.database.Reminder;
|
||||
import lombok.Getter;
|
||||
@@ -16,12 +17,16 @@ import java.util.List;
|
||||
@Setter
|
||||
@SuperBuilder
|
||||
public class ExecutedReminderModel extends ServerContext {
|
||||
private Reminder reminder;
|
||||
private MemberNameDisplay memberNameDisplay;
|
||||
private Long reminderId;
|
||||
private Long serverId;
|
||||
private Long channelId;
|
||||
private Long messageId;
|
||||
private UserDisplay userDisplay;
|
||||
private ReminderDisplay reminderDisplay;
|
||||
private List<MemberDisplay> reminderParticipants;
|
||||
private Duration duration;
|
||||
|
||||
public String getMessageUrl() {
|
||||
return MessageUtils.buildMessageUrl(this.reminder.getServer().getId() ,this.reminder.getChannel().getId(), this.reminder.getMessageId());
|
||||
return MessageUtils.buildMessageUrl(serverId , channelId, messageId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,8 @@ public class ReminderDisplay {
|
||||
private String text;
|
||||
private Instant targetDate;
|
||||
private Instant creationDate;
|
||||
private Boolean sentInDm;
|
||||
private Boolean userCommand;
|
||||
@Builder.Default
|
||||
private Boolean joined = false;
|
||||
private ServerChannelMessage message;
|
||||
@@ -25,15 +27,17 @@ public class ReminderDisplay {
|
||||
ServerChannelMessage message = ServerChannelMessage
|
||||
.builder()
|
||||
.messageId(reminder.getMessageId())
|
||||
.channelId(reminder.getChannel().getId())
|
||||
.serverId(reminder.getServer().getId())
|
||||
.channelId(reminder.getChannel() != null ? reminder.getChannel().getId() : null)
|
||||
.serverId(reminder.getServer() != null ? reminder.getServer().getId() : null)
|
||||
.build();
|
||||
return ReminderDisplay
|
||||
.builder()
|
||||
.creationDate(reminder.getReminderDate())
|
||||
.targetDate(reminder.getTargetDate())
|
||||
.id(reminder.getId())
|
||||
.reminded(reminder.isReminded())
|
||||
.sentInDm(reminder.getSendInDm())
|
||||
.reminded(reminder.getReminded())
|
||||
.userCommand(reminder.getUserCommand())
|
||||
.message(message)
|
||||
.text(reminder.getText())
|
||||
.build();
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package dev.sheldan.abstracto.remind.model.template.commands;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.ServerChannelMessage;
|
||||
import dev.sheldan.abstracto.core.models.template.display.MemberNameDisplay;
|
||||
import dev.sheldan.abstracto.core.models.template.display.UserDisplay;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
@@ -11,7 +11,7 @@ import lombok.Setter;
|
||||
@Builder
|
||||
public class ReminderModel {
|
||||
private String remindText;
|
||||
private MemberNameDisplay memberDisplay;
|
||||
private UserDisplay userDisplay;
|
||||
private ReminderDisplay reminder;
|
||||
private ServerChannelMessage message;
|
||||
private String joinButtonId;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package dev.sheldan.abstracto.remind.model.template.commands;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.template.display.UserDisplay;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import net.dv8tion.jda.api.entities.Member;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -14,5 +14,5 @@ import java.util.List;
|
||||
public class RemindersModel {
|
||||
@Builder.Default
|
||||
private List<ReminderDisplay> reminders = new ArrayList<>();
|
||||
private Member member;
|
||||
private UserDisplay userDisplay;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package dev.sheldan.abstracto.remind.service;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.database.AUser;
|
||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||
import dev.sheldan.abstracto.remind.model.database.Reminder;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
@@ -9,8 +10,10 @@ import java.time.Duration;
|
||||
public interface ReminderService {
|
||||
Reminder createReminderInForUser(AUserInAServer user, String remindText, Duration remindIn, Message message);
|
||||
Reminder createReminderInForUser(AUserInAServer user, String remindText, Duration remindIn, Long channelId, Long messageId);
|
||||
Reminder createReminderInForUser(AUser aUser, String remindText, Duration remindIn);
|
||||
Reminder createReminderInForUser(AUserInAServer user, String remindText, Duration remindIn, Long channelId);
|
||||
void executeReminder(Long reminderId);
|
||||
void unRemind(Long reminderId, AUserInAServer userInAServer);
|
||||
void unRemind(Long reminderId, AUser aUser);
|
||||
void snoozeReminder(Long reminderId, AUserInAServer user, Duration newDuration);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package dev.sheldan.abstracto.remind.service.management;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.AServerAChannelAUser;
|
||||
import dev.sheldan.abstracto.core.models.database.AUser;
|
||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||
import dev.sheldan.abstracto.remind.model.database.Reminder;
|
||||
|
||||
@@ -9,12 +10,14 @@ import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public interface ReminderManagementService {
|
||||
Reminder createReminder(AServerAChannelAUser userToBeReminded, String text, Instant timeToBeRemindedAt, Long messageId);
|
||||
Reminder createReminder(AServerAChannelAUser userToBeReminded, String text, Instant timeToBeRemindedAt, Long messageId, Boolean sendInDms, Boolean userCommand);
|
||||
Optional<Reminder> loadReminderOptional(Long reminderId);
|
||||
Reminder loadReminder(Long reminderId);
|
||||
void setReminded(Reminder reminder);
|
||||
Reminder saveReminder(Reminder reminder);
|
||||
List<Reminder> getActiveRemindersForUser(AUserInAServer aUserInAServer);
|
||||
List<Reminder> getActiveUserRemindersForUser(AUser aUser);
|
||||
Optional<Reminder> getReminderByAndByUserNotReminded(AUserInAServer aUserInAServer, Long reminderId);
|
||||
Optional<Reminder> getReminderByAndByUserNotRemindedForUserCommand(AUser aUser, Long reminderId);
|
||||
Optional<Reminder> getReminderByAndByUser(AUserInAServer aUserInAServer, Long reminderId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user