Fix various issues with ScheduledEventUpdateService (#89)

This PR closes #85.

This PR fixes many issues related to scheduled events. Most importantly,
scheduled events that are no longer present in the guild, but still have
data related to them, won't be left rotting.

This requires deletion of `ScheduledEvents.json` files in all guilds.
Maybe I'll start writing datafixers one day...

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
This commit is contained in:
Octol1ttle 2023-08-14 18:24:22 +05:00 committed by GitHub
parent 501c51b865
commit 4252613dd3
Signed by: GitHub
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 190 additions and 112 deletions

View file

@ -8,12 +8,20 @@ namespace Boyfriend.Data;
/// <remarks>This information is stored on disk as a JSON file.</remarks>
public sealed class ScheduledEventData
{
public ScheduledEventData(GuildScheduledEventStatus? status)
public ScheduledEventData(ulong id, string name, GuildScheduledEventStatus status,
DateTimeOffset scheduledStartTime)
{
Id = id;
Name = name;
Status = status;
ScheduledStartTime = scheduledStartTime;
}
public ulong Id { get; }
public string Name { get; set; }
public bool EarlyNotificationSent { get; set; }
public DateTimeOffset ScheduledStartTime { get; set; }
public DateTimeOffset? ActualStartTime { get; set; }
public GuildScheduledEventStatus? Status { get; set; }
public bool ScheduleOnStatusUpdated { get; set; } = true;
}