Skip to content

Commit ad1f2ec

Browse files
committed
Refactor quote approval handling and database schema
- Removed ReactionsHandler from service registration as approval flows now utilize interaction buttons. - Introduced QuoteApprovalMessage model to manage quote approval messages with properties for QuoteId, ApprovalMessageId, Score, InsertDate, Type, and Approved status. - Created migration to establish QuoteApprovalMessages table and removed the obsolete QuoteApprovals table. - Added QuoteApproval model to track user approvals associated with QuoteApprovalMessages. - Updated database context and migration files to reflect new schema changes.
1 parent 9dc32ae commit ad1f2ec

11 files changed

Lines changed: 1640 additions & 190 deletions

Database/DB.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,15 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
2525
// Create unique index on DiscordId
2626
modelBuilder.Entity<User>().HasIndex(u => u.DiscordId).IsUnique();
2727
modelBuilder.Entity<Guild>().HasIndex(g => g.DiscordId).IsUnique();
28+
modelBuilder.Entity<QuoteApproval>().HasIndex(a => new { a.QuoteApprovalMessageId, a.UserId }).IsUnique();
2829
}
2930

3031
public DbSet<User> Users { get; set; }
3132
public DbSet<UserActivity> UserActivity { get; set; }
3233
public DbSet<UserLevels> UserLevels { get; set; }
3334
public DbSet<Guild> Guilds { get; set; }
3435
public DbSet<Quote> Quotes { get; set; }
36+
public DbSet<QuoteApprovalMessage> QuoteApprovalMessages { get; set; }
3537
public DbSet<QuoteApproval> QuoteApprovals { get; set; }
3638
public DbSet<QuoteScore> QuoteScores { get; set; }
3739
public DbSet<Log> Logs { get; set; }

Database/Models/QuoteApproval.cs

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,21 @@
33

44
namespace Morpheus.Database.Models;
55

6-
public enum QuoteApprovalType
7-
{
8-
AddRequest = 0,
9-
RemoveRequest = 1
10-
}
11-
126
public class QuoteApproval
137
{
148
[Key]
159
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
1610
public int Id { get; set; }
1711

1812
[Required]
19-
public int QuoteId { get; set; }
13+
public int QuoteApprovalMessageId { get; set; }
2014

2115
[Required]
22-
public ulong ApprovalMessageId { get; set; }
23-
24-
// A numeric score (e.g. votes/weighting) for this approval entry
25-
public int Score { get; set; } = 0;
16+
public ulong UserId { get; set; }
2617

2718
public DateTime InsertDate { get; set; } = DateTime.UtcNow;
2819

29-
[Required]
30-
public QuoteApprovalType Type { get; set; }
31-
32-
// Whether this approval entry has been fully approved (threshold reached)
33-
public bool Approved { get; set; } = false;
34-
35-
// Navigation / foreign key
36-
[ForeignKey("QuoteId")]
37-
public Quote? Quote { get; set; }
20+
// Navigation
21+
[ForeignKey("QuoteApprovalMessageId")]
22+
public QuoteApprovalMessage? ApprovalMessage { get; set; }
3823
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using System.ComponentModel.DataAnnotations;
2+
using System.ComponentModel.DataAnnotations.Schema;
3+
4+
namespace Morpheus.Database.Models;
5+
6+
public enum QuoteApprovalType
7+
{
8+
AddRequest = 0,
9+
RemoveRequest = 1
10+
}
11+
12+
public class QuoteApprovalMessage
13+
{
14+
[Key]
15+
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
16+
public int Id { get; set; }
17+
18+
[Required]
19+
public int QuoteId { get; set; }
20+
21+
[Required]
22+
public ulong ApprovalMessageId { get; set; }
23+
24+
// A numeric score (e.g. votes/weighting) for this approval entry
25+
public int Score { get; set; } = 0;
26+
27+
public DateTime InsertDate { get; set; } = DateTime.UtcNow;
28+
29+
[Required]
30+
public QuoteApprovalType Type { get; set; }
31+
32+
// Whether this approval entry has been fully approved (threshold reached)
33+
public bool Approved { get; set; } = false;
34+
35+
// Navigation / foreign key
36+
[ForeignKey("QuoteId")]
37+
public Quote? Quote { get; set; }
38+
}

Handlers/ReactionsHandler.cs

Lines changed: 0 additions & 156 deletions
This file was deleted.

0 commit comments

Comments
 (0)