using TakeoutSaaS.Domain.Products.Enums;
using TakeoutSaaS.Shared.Abstractions.Entities;

namespace TakeoutSaaS.Domain.Products.Entities;

/// <summary>
/// 商品规格/属性分组。
/// </summary>
public sealed class ProductAttributeGroup : MultiTenantEntityBase
{
    /// <summary>
    /// 关联门店，可为空表示所有门店共享。
    /// </summary>
    public long? StoreId { get; set; }

    /// <summary>
    /// 所属商品标识。
    /// </summary>
    public long ProductId { get; set; }

    /// <summary>
    /// 分组名称，例如“辣度”“份量”。
    /// </summary>
    public string Name { get; set; } = string.Empty;

    /// <summary>
    /// 选择类型（单选/多选）。
    /// </summary>
    public AttributeSelectionType SelectionType { get; set; } = AttributeSelectionType.Single;

    /// <summary>
    /// 是否必选。
    /// </summary>
    public bool IsRequired { get; set; }

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