feat: 扩展领域模型与配置
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
using TakeoutSaaS.Domain.Distribution.Enums;
|
||||
using TakeoutSaaS.Shared.Abstractions.Entities;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Distribution.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// 分销订单记录。
|
||||
/// </summary>
|
||||
public sealed class AffiliateOrder : MultiTenantEntityBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 推广人标识。
|
||||
/// </summary>
|
||||
public Guid AffiliatePartnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联订单。
|
||||
/// </summary>
|
||||
public Guid OrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户 ID。
|
||||
/// </summary>
|
||||
public Guid BuyerUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 订单金额。
|
||||
/// </summary>
|
||||
public decimal OrderAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 预计佣金。
|
||||
/// </summary>
|
||||
public decimal EstimatedCommission { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 当前状态。
|
||||
/// </summary>
|
||||
public AffiliateOrderStatus Status { get; set; } = AffiliateOrderStatus.Pending;
|
||||
|
||||
/// <summary>
|
||||
/// 结算完成时间。
|
||||
/// </summary>
|
||||
public DateTime? SettledAt { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using TakeoutSaaS.Domain.Distribution.Enums;
|
||||
using TakeoutSaaS.Shared.Abstractions.Entities;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Distribution.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// 分销/推广合作伙伴。
|
||||
/// </summary>
|
||||
public sealed class AffiliatePartner : MultiTenantEntityBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户 ID(如绑定平台账号)。
|
||||
/// </summary>
|
||||
public Guid? UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 昵称或渠道名称。
|
||||
/// </summary>
|
||||
public string DisplayName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 联系电话。
|
||||
/// </summary>
|
||||
public string? Phone { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 渠道类型。
|
||||
/// </summary>
|
||||
public AffiliateChannelType ChannelType { get; set; } = AffiliateChannelType.Personal;
|
||||
|
||||
/// <summary>
|
||||
/// 分成比例(0-1)。
|
||||
/// </summary>
|
||||
public decimal CommissionRate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 当前状态。
|
||||
/// </summary>
|
||||
public AffiliateStatus Status { get; set; } = AffiliateStatus.Pending;
|
||||
|
||||
/// <summary>
|
||||
/// 审核备注。
|
||||
/// </summary>
|
||||
public string? Remarks { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
using TakeoutSaaS.Domain.Distribution.Enums;
|
||||
using TakeoutSaaS.Shared.Abstractions.Entities;
|
||||
|
||||
namespace TakeoutSaaS.Domain.Distribution.Entities;
|
||||
|
||||
/// <summary>
|
||||
/// 佣金结算记录。
|
||||
/// </summary>
|
||||
public sealed class AffiliatePayout : MultiTenantEntityBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 合作伙伴标识。
|
||||
/// </summary>
|
||||
public Guid AffiliatePartnerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 结算周期描述。
|
||||
/// </summary>
|
||||
public string Period { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 结算金额。
|
||||
/// </summary>
|
||||
public decimal Amount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态。
|
||||
/// </summary>
|
||||
public PayoutStatus Status { get; set; } = PayoutStatus.Pending;
|
||||
|
||||
/// <summary>
|
||||
/// 打款时间。
|
||||
/// </summary>
|
||||
public DateTime? PaidAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注。
|
||||
/// </summary>
|
||||
public string? Remarks { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user