using TakeoutSaaS.Shared.Abstractions.Entities;

namespace TakeoutSaaS.Domain.Products.Entities;

/// <summary>
/// 商品 SKU，记录具体规格组合价格。
/// </summary>
public sealed class ProductSku : MultiTenantEntityBase
{
    /// <summary>
    /// 所属商品标识。
    /// </summary>
    public long ProductId { get; set; }

    /// <summary>
    /// SKU 编码。
    /// </summary>
    public string SkuCode { get; set; } = string.Empty;

    /// <summary>
    /// 条形码。
    /// </summary>
    public string? Barcode { get; set; }

    /// <summary>
    /// 售价。
    /// </summary>
    public decimal Price { get; set; }

    /// <summary>
    /// 原价。
    /// </summary>
    public decimal? OriginalPrice { get; set; }

    /// <summary>
    /// 可售库存。
    /// </summary>
    public int? StockQuantity { get; set; }

    /// <summary>
    /// 重量（千克）。
    /// </summary>
    public decimal? Weight { get; set; }

    /// <summary>
    /// 规格属性 JSON（记录选项 ID）。
    /// </summary>
    public string AttributesJson { get; set; } = string.Empty;

    /// <summary>
    /// 排序值。
    /// </summary>
    public int SortOrder { get; set; } = 100;
}
