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