using foodmarket.Domain.Common;

namespace foodmarket.Domain.Catalog;

// Иерархическая группа товаров (категория). Произвольная вложенность через ParentId.
// Двухуровневый справочник (IOptionalTenantEntity): системные эталонные группы
// (OrganizationId=null, управляются SuperAdmin'ом) и tenant'овские (OrganizationId=<orgId>).
public class ProductGroup : Entity, IOptionalTenantEntity
{
    public Guid? OrganizationId { get; set; }
    public string Name { get; set; } = null!;
    public Guid? ParentId { get; set; }
    public ProductGroup? Parent { get; set; }
    public ICollection<ProductGroup> Children { get; set; } = [];
    public string Path { get; set; } = "";       // денормализованный путь "Электроника/Телефоны/Смартфоны" для фильтрации
    public int SortOrder { get; set; }

    /// <summary>Процент наценки на себестоимость для автоматического расчёта
    /// розничной цены при проведении приёмки. NULL = автонаценка отключена.</summary>
    public decimal? MarkupPercent { get; set; }
}
