From 63e464e602f0f370705e2faf4a7b42eecfc2f1dd Mon Sep 17 00:00:00 2001 From: Eveldee Date: Sun, 26 Mar 2023 10:33:03 +0200 Subject: [PATCH] [Activity] Cleanup schema and DueDateTime --- .../20230325153626_InitialCreate.Designer.cs | 152 ----------------- ...184735_AddActivityCreationDate.Designer.cs | 156 ------------------ .../20230325184735_AddActivityCreationDate.cs | 30 ---- .../20230325234255_AddActivityDueTime.cs | 29 ---- ... 20230326083141_InitialCreate.Designer.cs} | 6 +- ...ate.cs => 20230326083141_InitialCreate.cs} | 5 +- .../CocotteDbContextModelSnapshot.cs | 2 +- .../Modules/Activities/ActivityFormatter.cs | 6 +- Cocotte/Modules/Activities/ActivityModule.cs | 10 +- Cocotte/Modules/Activities/Models/Activity.cs | 2 +- Cocotte/Utils/DateTimeUtils.cs | 3 + 11 files changed, 20 insertions(+), 381 deletions(-) delete mode 100644 Cocotte/Migrations/20230325153626_InitialCreate.Designer.cs delete mode 100644 Cocotte/Migrations/20230325184735_AddActivityCreationDate.Designer.cs delete mode 100644 Cocotte/Migrations/20230325184735_AddActivityCreationDate.cs delete mode 100644 Cocotte/Migrations/20230325234255_AddActivityDueTime.cs rename Cocotte/Migrations/{20230325234255_AddActivityDueTime.Designer.cs => 20230326083141_InitialCreate.Designer.cs} (97%) rename Cocotte/Migrations/{20230325153626_InitialCreate.cs => 20230326083141_InitialCreate.cs} (93%) diff --git a/Cocotte/Migrations/20230325153626_InitialCreate.Designer.cs b/Cocotte/Migrations/20230325153626_InitialCreate.Designer.cs deleted file mode 100644 index f50c741..0000000 --- a/Cocotte/Migrations/20230325153626_InitialCreate.Designer.cs +++ /dev/null @@ -1,152 +0,0 @@ -// -using Cocotte.Services; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace Cocotte.Migrations -{ - [DbContext(typeof(CocotteDbContext))] - [Migration("20230325153626_InitialCreate")] - partial class InitialCreate - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "7.0.4"); - - modelBuilder.Entity("Cocotte.Modules.Activities.Models.Activity", b => - { - b.Property("GuildId") - .HasColumnType("INTEGER"); - - b.Property("ChannelId") - .HasColumnType("INTEGER"); - - b.Property("MessageId") - .HasColumnType("INTEGER"); - - b.Property("AreRolesEnabled") - .HasColumnType("INTEGER"); - - b.Property("CreatorDisplayName") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("CreatorUserId") - .HasColumnType("INTEGER"); - - b.Property("Description") - .HasColumnType("TEXT"); - - b.Property("Discriminator") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("MaxPlayers") - .HasColumnType("INTEGER"); - - b.Property("Name") - .HasColumnType("INTEGER"); - - b.Property("ThreadId") - .HasColumnType("INTEGER"); - - b.Property("Type") - .HasColumnType("INTEGER"); - - b.HasKey("GuildId", "ChannelId", "MessageId"); - - b.HasIndex("ThreadId"); - - b.ToTable("Activities"); - - b.HasDiscriminator("Discriminator").HasValue("Activity"); - - b.UseTphMappingStrategy(); - }); - - modelBuilder.Entity("Cocotte.Modules.Activities.Models.ActivityPlayer", b => - { - b.Property("GuildId") - .HasColumnType("INTEGER"); - - b.Property("ChannelId") - .HasColumnType("INTEGER"); - - b.Property("MessageId") - .HasColumnType("INTEGER"); - - b.Property("UserId") - .HasColumnType("INTEGER"); - - b.Property("Discriminator") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Name") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("GuildId", "ChannelId", "MessageId", "UserId"); - - b.ToTable("ActivityPlayers"); - - b.HasDiscriminator("Discriminator").HasValue("ActivityPlayer"); - - b.UseTphMappingStrategy(); - }); - - modelBuilder.Entity("Cocotte.Modules.Activities.Models.InterstellarActivity", b => - { - b.HasBaseType("Cocotte.Modules.Activities.Models.Activity"); - - b.Property("Color") - .HasColumnType("INTEGER"); - - b.HasDiscriminator().HasValue("InterstellarActivity"); - }); - - modelBuilder.Entity("Cocotte.Modules.Activities.Models.StagedActivity", b => - { - b.HasBaseType("Cocotte.Modules.Activities.Models.Activity"); - - b.Property("Stage") - .HasColumnType("INTEGER"); - - b.HasDiscriminator().HasValue("StagedActivity"); - }); - - modelBuilder.Entity("Cocotte.Modules.Activities.Models.ActivityRolePlayer", b => - { - b.HasBaseType("Cocotte.Modules.Activities.Models.ActivityPlayer"); - - b.Property("Roles") - .HasColumnType("INTEGER"); - - b.HasDiscriminator().HasValue("ActivityRolePlayer"); - }); - - modelBuilder.Entity("Cocotte.Modules.Activities.Models.ActivityPlayer", b => - { - b.HasOne("Cocotte.Modules.Activities.Models.Activity", "Activity") - .WithMany("ActivityPlayers") - .HasForeignKey("GuildId", "ChannelId", "MessageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Activity"); - }); - - modelBuilder.Entity("Cocotte.Modules.Activities.Models.Activity", b => - { - b.Navigation("ActivityPlayers"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/Cocotte/Migrations/20230325184735_AddActivityCreationDate.Designer.cs b/Cocotte/Migrations/20230325184735_AddActivityCreationDate.Designer.cs deleted file mode 100644 index 1e8caee..0000000 --- a/Cocotte/Migrations/20230325184735_AddActivityCreationDate.Designer.cs +++ /dev/null @@ -1,156 +0,0 @@ -// -using System; -using Cocotte.Services; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace Cocotte.Migrations -{ - [DbContext(typeof(CocotteDbContext))] - [Migration("20230325184735_AddActivityCreationDate")] - partial class AddActivityCreationDate - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "7.0.4"); - - modelBuilder.Entity("Cocotte.Modules.Activities.Models.Activity", b => - { - b.Property("GuildId") - .HasColumnType("INTEGER"); - - b.Property("ChannelId") - .HasColumnType("INTEGER"); - - b.Property("MessageId") - .HasColumnType("INTEGER"); - - b.Property("AreRolesEnabled") - .HasColumnType("INTEGER"); - - b.Property("CreationDate") - .HasColumnType("TEXT"); - - b.Property("CreatorDisplayName") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("CreatorUserId") - .HasColumnType("INTEGER"); - - b.Property("Description") - .HasColumnType("TEXT"); - - b.Property("Discriminator") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("MaxPlayers") - .HasColumnType("INTEGER"); - - b.Property("Name") - .HasColumnType("INTEGER"); - - b.Property("ThreadId") - .HasColumnType("INTEGER"); - - b.Property("Type") - .HasColumnType("INTEGER"); - - b.HasKey("GuildId", "ChannelId", "MessageId"); - - b.HasIndex("ThreadId"); - - b.ToTable("Activities"); - - b.HasDiscriminator("Discriminator").HasValue("Activity"); - - b.UseTphMappingStrategy(); - }); - - modelBuilder.Entity("Cocotte.Modules.Activities.Models.ActivityPlayer", b => - { - b.Property("GuildId") - .HasColumnType("INTEGER"); - - b.Property("ChannelId") - .HasColumnType("INTEGER"); - - b.Property("MessageId") - .HasColumnType("INTEGER"); - - b.Property("UserId") - .HasColumnType("INTEGER"); - - b.Property("Discriminator") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Name") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("GuildId", "ChannelId", "MessageId", "UserId"); - - b.ToTable("ActivityPlayers"); - - b.HasDiscriminator("Discriminator").HasValue("ActivityPlayer"); - - b.UseTphMappingStrategy(); - }); - - modelBuilder.Entity("Cocotte.Modules.Activities.Models.InterstellarActivity", b => - { - b.HasBaseType("Cocotte.Modules.Activities.Models.Activity"); - - b.Property("Color") - .HasColumnType("INTEGER"); - - b.HasDiscriminator().HasValue("InterstellarActivity"); - }); - - modelBuilder.Entity("Cocotte.Modules.Activities.Models.StagedActivity", b => - { - b.HasBaseType("Cocotte.Modules.Activities.Models.Activity"); - - b.Property("Stage") - .HasColumnType("INTEGER"); - - b.HasDiscriminator().HasValue("StagedActivity"); - }); - - modelBuilder.Entity("Cocotte.Modules.Activities.Models.ActivityRolePlayer", b => - { - b.HasBaseType("Cocotte.Modules.Activities.Models.ActivityPlayer"); - - b.Property("Roles") - .HasColumnType("INTEGER"); - - b.HasDiscriminator().HasValue("ActivityRolePlayer"); - }); - - modelBuilder.Entity("Cocotte.Modules.Activities.Models.ActivityPlayer", b => - { - b.HasOne("Cocotte.Modules.Activities.Models.Activity", "Activity") - .WithMany("ActivityPlayers") - .HasForeignKey("GuildId", "ChannelId", "MessageId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Activity"); - }); - - modelBuilder.Entity("Cocotte.Modules.Activities.Models.Activity", b => - { - b.Navigation("ActivityPlayers"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/Cocotte/Migrations/20230325184735_AddActivityCreationDate.cs b/Cocotte/Migrations/20230325184735_AddActivityCreationDate.cs deleted file mode 100644 index f9dd729..0000000 --- a/Cocotte/Migrations/20230325184735_AddActivityCreationDate.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace Cocotte.Migrations -{ - /// - public partial class AddActivityCreationDate : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "CreationDate", - table: "Activities", - type: "TEXT", - nullable: false, - defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified)); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "CreationDate", - table: "Activities"); - } - } -} diff --git a/Cocotte/Migrations/20230325234255_AddActivityDueTime.cs b/Cocotte/Migrations/20230325234255_AddActivityDueTime.cs deleted file mode 100644 index 55db758..0000000 --- a/Cocotte/Migrations/20230325234255_AddActivityDueTime.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace Cocotte.Migrations -{ - /// - public partial class AddActivityDueTime : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "DueTime", - table: "Activities", - type: "TEXT", - nullable: true); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "DueTime", - table: "Activities"); - } - } -} diff --git a/Cocotte/Migrations/20230325234255_AddActivityDueTime.Designer.cs b/Cocotte/Migrations/20230326083141_InitialCreate.Designer.cs similarity index 97% rename from Cocotte/Migrations/20230325234255_AddActivityDueTime.Designer.cs rename to Cocotte/Migrations/20230326083141_InitialCreate.Designer.cs index 768a951..97185d5 100644 --- a/Cocotte/Migrations/20230325234255_AddActivityDueTime.Designer.cs +++ b/Cocotte/Migrations/20230326083141_InitialCreate.Designer.cs @@ -11,8 +11,8 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace Cocotte.Migrations { [DbContext(typeof(CocotteDbContext))] - [Migration("20230325234255_AddActivityDueTime")] - partial class AddActivityDueTime + [Migration("20230326083141_InitialCreate")] + partial class InitialCreate { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -51,7 +51,7 @@ namespace Cocotte.Migrations .IsRequired() .HasColumnType("TEXT"); - b.Property("DueTime") + b.Property("DueDateTime") .HasColumnType("TEXT"); b.Property("MaxPlayers") diff --git a/Cocotte/Migrations/20230325153626_InitialCreate.cs b/Cocotte/Migrations/20230326083141_InitialCreate.cs similarity index 93% rename from Cocotte/Migrations/20230325153626_InitialCreate.cs rename to Cocotte/Migrations/20230326083141_InitialCreate.cs index 86ed844..655e632 100644 --- a/Cocotte/Migrations/20230325153626_InitialCreate.cs +++ b/Cocotte/Migrations/20230326083141_InitialCreate.cs @@ -1,4 +1,5 @@ -using Microsoft.EntityFrameworkCore.Migrations; +using System; +using Microsoft.EntityFrameworkCore.Migrations; #nullable disable @@ -20,11 +21,13 @@ namespace Cocotte.Migrations ThreadId = table.Column(type: "INTEGER", nullable: false), CreatorUserId = table.Column(type: "INTEGER", nullable: false), CreatorDisplayName = table.Column(type: "TEXT", nullable: false), + DueDateTime = table.Column(type: "TEXT", nullable: true), Description = table.Column(type: "TEXT", nullable: true), Type = table.Column(type: "INTEGER", nullable: false), Name = table.Column(type: "INTEGER", nullable: false), AreRolesEnabled = table.Column(type: "INTEGER", nullable: false), MaxPlayers = table.Column(type: "INTEGER", nullable: false), + CreationDate = table.Column(type: "TEXT", nullable: false), Discriminator = table.Column(type: "TEXT", nullable: false), Color = table.Column(type: "INTEGER", nullable: true), Stage = table.Column(type: "INTEGER", nullable: true) diff --git a/Cocotte/Migrations/CocotteDbContextModelSnapshot.cs b/Cocotte/Migrations/CocotteDbContextModelSnapshot.cs index a886ace..ceae3fe 100644 --- a/Cocotte/Migrations/CocotteDbContextModelSnapshot.cs +++ b/Cocotte/Migrations/CocotteDbContextModelSnapshot.cs @@ -48,7 +48,7 @@ namespace Cocotte.Migrations .IsRequired() .HasColumnType("TEXT"); - b.Property("DueTime") + b.Property("DueDateTime") .HasColumnType("TEXT"); b.Property("MaxPlayers") diff --git a/Cocotte/Modules/Activities/ActivityFormatter.cs b/Cocotte/Modules/Activities/ActivityFormatter.cs index d7fbd9d..7e93fef 100644 --- a/Cocotte/Modules/Activities/ActivityFormatter.cs +++ b/Cocotte/Modules/Activities/ActivityFormatter.cs @@ -70,13 +70,13 @@ public class ActivityFormatter var descriptionBuilder = new StringBuilder(); // Add time if specified - if (activity.DueTime is { } time) + if (activity.DueDateTime is { } dueDateTime) { - descriptionBuilder.AppendLine($"**:clock2: {TimestampTag.FormatFromDateTime(DateTime.Today.WithTimeOnly(time), TimestampTagStyles.ShortTime)}**"); + descriptionBuilder.AppendLine($"**:clock2: {TimestampTag.FormatFromDateTime(dueDateTime, TimestampTagStyles.ShortTime)} ― {TimestampTag.FormatFromDateTime(dueDateTime, TimestampTagStyles.Relative)}**"); } else { - descriptionBuilder.AppendLine($"**:clock2: Maintenant**"); + descriptionBuilder.AppendLine("**:clock2: Maintenant**"); } // Add generic message or specified activity description diff --git a/Cocotte/Modules/Activities/ActivityModule.cs b/Cocotte/Modules/Activities/ActivityModule.cs index 70abf4d..d1ea3d7 100644 --- a/Cocotte/Modules/Activities/ActivityModule.cs +++ b/Cocotte/Modules/Activities/ActivityModule.cs @@ -139,7 +139,7 @@ public partial class ActivityModule : InteractionModuleBase + DateTime.Now.TimeOfDay.Ticks > timeOfDay.Ticks ? DateTime.Now.AddDays(1).WithTimeOnly(timeOfDay) : DateTime.Now.WithTimeOnly(timeOfDay); } \ No newline at end of file