feat: 扩展领域模型与配置
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
using TakeoutSaaS.Domain.Engagement.Enums;
|
||||
using TakeoutSaaS.Shared.Abstractions.Entities;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Engagement.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// 签到活动配置。
|
||||
/// </summary>
|
||||
public sealed class CheckInCampaign : MultiTenantEntityBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 活动名称。
|
||||
/// </summary>
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 活动描述。
|
||||
/// </summary>
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 开始日期。
|
||||
/// </summary>
|
||||
public DateTime StartDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 结束日期。
|
||||
/// </summary>
|
||||
public DateTime EndDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 支持补签次数。
|
||||
/// </summary>
|
||||
public int AllowMakeupCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 连签奖励 JSON。
|
||||
/// </summary>
|
||||
public string RewardsJson { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 状态。
|
||||
/// </summary>
|
||||
public CheckInCampaignStatus Status { get; set; } = CheckInCampaignStatus.Draft;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
using TakeoutSaaS.Shared.Abstractions.Entities;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Engagement.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// 用户签到记录。
|
||||
/// </summary>
|
||||
public sealed class CheckInRecord : MultiTenantEntityBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 活动标识。
|
||||
/// </summary>
|
||||
public Guid CheckInCampaignId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户标识。
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 签到日期(本地)。
|
||||
/// </summary>
|
||||
public DateTime CheckInDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否补签。
|
||||
/// </summary>
|
||||
public bool IsMakeup { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获得奖励 JSON。
|
||||
/// </summary>
|
||||
public string RewardJson { get; set; } = string.Empty;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
using TakeoutSaaS.Shared.Abstractions.Entities;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Engagement.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// 社区评论。
|
||||
/// </summary>
|
||||
public sealed class CommunityComment : MultiTenantEntityBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 动态标识。
|
||||
/// </summary>
|
||||
public Guid PostId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 评论人。
|
||||
/// </summary>
|
||||
public Guid AuthorUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 评论内容。
|
||||
/// </summary>
|
||||
public string Content { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 父级评论 ID。
|
||||
/// </summary>
|
||||
public Guid? ParentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态。
|
||||
/// </summary>
|
||||
public bool IsDeleted { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using TakeoutSaaS.Domain.Engagement.Enums;
|
||||
using TakeoutSaaS.Shared.Abstractions.Entities;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Engagement.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// 社区动态。
|
||||
/// </summary>
|
||||
public sealed class CommunityPost : MultiTenantEntityBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 作者用户 ID。
|
||||
/// </summary>
|
||||
public Guid AuthorUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 标题。
|
||||
/// </summary>
|
||||
public string? Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 内容。
|
||||
/// </summary>
|
||||
public string Content { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 媒体资源 JSON。
|
||||
/// </summary>
|
||||
public string? MediaJson { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态。
|
||||
/// </summary>
|
||||
public PostStatus Status { get; set; } = PostStatus.PendingReview;
|
||||
|
||||
/// <summary>
|
||||
/// 点赞数。
|
||||
/// </summary>
|
||||
public int LikeCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 评论数。
|
||||
/// </summary>
|
||||
public int CommentCount { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using TakeoutSaaS.Domain.Engagement.Enums;
|
||||
using TakeoutSaaS.Shared.Abstractions.Entities;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Engagement.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// 社区互动反馈。
|
||||
/// </summary>
|
||||
public sealed class CommunityReaction : MultiTenantEntityBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 动态 ID。
|
||||
/// </summary>
|
||||
public Guid PostId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户 ID。
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 反应类型。
|
||||
/// </summary>
|
||||
public ReactionType ReactionType { get; set; } = ReactionType.Like;
|
||||
|
||||
/// <summary>
|
||||
/// 时间戳。
|
||||
/// </summary>
|
||||
public DateTime ReactedAt { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
namespace TakeoutSaaS.Domain.Engagement.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// 签到活动状态。
|
||||
/// </summary>
|
||||
public enum CheckInCampaignStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// 草稿。
|
||||
/// </summary>
|
||||
Draft = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 进行中。
|
||||
/// </summary>
|
||||
Active = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 已结束。
|
||||
/// </summary>
|
||||
Completed = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 已停用。
|
||||
/// </summary>
|
||||
Disabled = 3
|
||||
}
|
||||
27
src/Domain/TakeoutSaaS.Domain/Engagement/Enums/PostStatus.cs
Normal file
27
src/Domain/TakeoutSaaS.Domain/Engagement/Enums/PostStatus.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
namespace TakeoutSaaS.Domain.Engagement.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// 社区动态状态。
|
||||
/// </summary>
|
||||
public enum PostStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// 待审核。
|
||||
/// </summary>
|
||||
PendingReview = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 已发布。
|
||||
/// </summary>
|
||||
Published = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 已屏蔽。
|
||||
/// </summary>
|
||||
Blocked = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 已删除。
|
||||
/// </summary>
|
||||
Deleted = 3
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
namespace TakeoutSaaS.Domain.Engagement.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// 互动类型。
|
||||
/// </summary>
|
||||
public enum ReactionType
|
||||
{
|
||||
/// <summary>
|
||||
/// 点赞。
|
||||
/// </summary>
|
||||
Like = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 收藏。
|
||||
/// </summary>
|
||||
Favorite = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 点踩。
|
||||
/// </summary>
|
||||
Dislike = 2
|
||||
}
|
||||
Reference in New Issue
Block a user