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