feat: 扩展领域模型与配置

This commit is contained in:
贺爱泽
2025-12-01 13:26:05 +08:00
parent a08804658b
commit 5ddad07658
148 changed files with 8519 additions and 2 deletions

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

@@ -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;
}

View File

@@ -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
}

View 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
}

View File

@@ -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
}