[AB-94] adding command to show the state of a server poll

This commit is contained in:
Sheldan
2023-09-03 00:19:35 +02:00
parent f3144eb094
commit f03bee8b1e
11 changed files with 244 additions and 14 deletions

View File

@@ -0,0 +1,25 @@
package dev.sheldan.abstracto.suggestion.model.template;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import java.time.Duration;
import java.time.Instant;
import java.util.List;
@Getter
@Setter
@Builder
public class PollInfoModel {
private Long id;
private String description;
private Boolean allowMultiple;
private Boolean showDecisions;
private Boolean allowAdditions;
private Instant creationDate;
private Integer totalVotes;
private Instant targetDate;
private Duration pollDuration;
private List<PollOptionInfoModel> options;
}

View File

@@ -0,0 +1,18 @@
package dev.sheldan.abstracto.suggestion.model.template;
import dev.sheldan.abstracto.core.models.template.display.MemberDisplay;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Builder
public class PollOptionInfoModel {
private String value;
private String label;
private String description;
private Long votes;
private Float percentage;
private MemberDisplay adder;
}

View File

@@ -1,6 +1,7 @@
package dev.sheldan.abstracto.suggestion.service;
import dev.sheldan.abstracto.suggestion.model.database.PollType;
import dev.sheldan.abstracto.suggestion.model.template.PollInfoModel;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.interactions.InteractionHook;
@@ -26,4 +27,5 @@ public interface PollService {
CompletableFuture<Void> evaluateQuickPoll(Long pollId, Long serverId);
CompletableFuture<Void> closePoll(Long pollId, Long serverId, String text, Member cause);
CompletableFuture<Void> cancelPoll(Long pollId, Long serverId, Member cause);
PollInfoModel getPollInfoModel(Long pollId, Long serverId);
}

View File

@@ -1,5 +1,6 @@
package dev.sheldan.abstracto.suggestion.service.management;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import dev.sheldan.abstracto.suggestion.model.PollCreationRequest;
import dev.sheldan.abstracto.suggestion.model.database.Poll;
import dev.sheldan.abstracto.suggestion.model.database.PollOption;
@@ -9,5 +10,6 @@ import java.util.Optional;
public interface PollOptionManagementService {
void addOptionsToPoll(Poll poll, PollCreationRequest pollCreationRequest);
void addOptionToPoll(Poll poll, String label, String description);
void addOptionToPoll(Poll poll, String label, String description, AUserInAServer adder);
Optional<PollOption> getPollOptionByName(Poll poll, String key);
}