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,70 @@
using TakeoutSaaS.Domain.GroupBuying.Enums;
using TakeoutSaaS.Shared.Abstractions.Entities;
namespace TakeoutSaaS.Domain.GroupBuying.Entities;
/// <summary>
/// 拼单活动。
/// </summary>
public sealed class GroupOrder : MultiTenantEntityBase
{
/// <summary>
/// 门店标识。
/// </summary>
public Guid StoreId { get; set; }
/// <summary>
/// 关联商品或套餐。
/// </summary>
public Guid ProductId { get; set; }
/// <summary>
/// 拼单编号。
/// </summary>
public string GroupOrderNo { get; set; } = string.Empty;
/// <summary>
/// 团长用户 ID。
/// </summary>
public Guid LeaderUserId { get; set; }
/// <summary>
/// 成团需要的人数。
/// </summary>
public int TargetCount { get; set; }
/// <summary>
/// 当前已参与人数。
/// </summary>
public int CurrentCount { get; set; }
/// <summary>
/// 拼团价格。
/// </summary>
public decimal GroupPrice { get; set; }
/// <summary>
/// 开始时间。
/// </summary>
public DateTime StartAt { get; set; }
/// <summary>
/// 结束时间。
/// </summary>
public DateTime EndAt { get; set; }
/// <summary>
/// 拼团状态。
/// </summary>
public GroupOrderStatus Status { get; set; } = GroupOrderStatus.Open;
/// <summary>
/// 成团时间。
/// </summary>
public DateTime? SucceededAt { get; set; }
/// <summary>
/// 取消时间。
/// </summary>
public DateTime? CancelledAt { get; set; }
}

View File

@@ -0,0 +1,35 @@
using TakeoutSaaS.Domain.GroupBuying.Enums;
using TakeoutSaaS.Shared.Abstractions.Entities;
namespace TakeoutSaaS.Domain.GroupBuying.Entities;
/// <summary>
/// 拼单参与者。
/// </summary>
public sealed class GroupParticipant : MultiTenantEntityBase
{
/// <summary>
/// 拼单活动标识。
/// </summary>
public Guid GroupOrderId { get; set; }
/// <summary>
/// 对应订单标识。
/// </summary>
public Guid OrderId { get; set; }
/// <summary>
/// 用户标识。
/// </summary>
public Guid UserId { get; set; }
/// <summary>
/// 参与状态。
/// </summary>
public GroupParticipantStatus Status { get; set; } = GroupParticipantStatus.Joined;
/// <summary>
/// 参与时间。
/// </summary>
public DateTime JoinedAt { get; set; } = DateTime.UtcNow;
}

View File

@@ -0,0 +1,27 @@
namespace TakeoutSaaS.Domain.GroupBuying.Enums;
/// <summary>
/// 拼单状态。
/// </summary>
public enum GroupOrderStatus
{
/// <summary>
/// 开放中。
/// </summary>
Open = 0,
/// <summary>
/// 已成团。
/// </summary>
Succeeded = 1,
/// <summary>
/// 已取消。
/// </summary>
Cancelled = 2,
/// <summary>
/// 超时失败。
/// </summary>
Failed = 3
}

View File

@@ -0,0 +1,22 @@
namespace TakeoutSaaS.Domain.GroupBuying.Enums;
/// <summary>
/// 拼单参与者状态。
/// </summary>
public enum GroupParticipantStatus
{
/// <summary>
/// 已参团。
/// </summary>
Joined = 0,
/// <summary>
/// 因退款或取消退出。
/// </summary>
Exited = 1,
/// <summary>
/// 团失败待退款。
/// </summary>
PendingRefund = 2
}