Add and remove reaction from a content
This commit is contained in:
@@ -10,8 +10,8 @@ public class Content
|
||||
public DateTimeOffset CreatedAt { get; init; }
|
||||
public Guid? DeletedBy { get; set; }
|
||||
public DateTimeOffset? DeletedAt { get; set; }
|
||||
|
||||
[MaxLength(128)] public required string Title { get; set; }
|
||||
[MaxLength(2048)] public required string Description { get; set; }
|
||||
public IList<ContentReaction> Reactions { get; set; } = new List<ContentReaction>();
|
||||
public string[]? Urls { get; init; }
|
||||
}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
namespace Hutopy.Web.Features.Contents.Data;
|
||||
using Humanizer;
|
||||
|
||||
namespace Hutopy.Web.Features.Contents.Data;
|
||||
|
||||
public class ContentDbContext(
|
||||
DbContextOptions<ContentDbContext> options)
|
||||
@@ -25,6 +27,11 @@ public class ContentDbContext(
|
||||
.HasOne(c => c.Creator)
|
||||
.WithMany()
|
||||
.HasForeignKey(c => c.CreatedBy);
|
||||
|
||||
modelBuilder
|
||||
.Entity<Content>()
|
||||
.OwnsMany(c => c.Reactions)
|
||||
.ToTable(nameof(ContentReaction).Pluralize());
|
||||
|
||||
modelBuilder
|
||||
.Entity<Subscription>()
|
||||
|
||||
11
src/Web/Features/Contents/Data/ContentReaction.cs
Normal file
11
src/Web/Features/Contents/Data/ContentReaction.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Hutopy.Web.Features.Contents.Handlers.Enums;
|
||||
|
||||
namespace Hutopy.Web.Features.Contents.Data;
|
||||
|
||||
public class ContentReaction
|
||||
{
|
||||
public required Reaction Reaction { get; set; }
|
||||
public required Guid UserId { get; set; }
|
||||
[MaxLength(128)] public required string UserName { get; set; }
|
||||
}
|
||||
13
src/Web/Features/Contents/Data/Enums/Reaction.cs
Normal file
13
src/Web/Features/Contents/Data/Enums/Reaction.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
namespace Hutopy.Web.Features.Contents.Handlers.Enums;
|
||||
|
||||
public enum Reaction
|
||||
{
|
||||
None = 0,
|
||||
Like = 1,
|
||||
Dislike = 2,
|
||||
Love = 3,
|
||||
Haha = 4,
|
||||
Wow = 5,
|
||||
Sad = 6,
|
||||
Angry = 7
|
||||
}
|
||||
Reference in New Issue
Block a user