namespace CMSMicroservice.Domain.Entities.DiscountShop;

/// <summary>
/// دسته‌بندی محصولات فروشگاه تخفیفی
/// </summary>
public class DiscountCategory : BaseAuditableEntity
{
    /// <summary>
    /// نام لاتین (برای URL)
    /// </summary>
    public string Name { get; set; }
    
    /// <summary>
    /// عنوان فارسی
    /// </summary>
    public string Title { get; set; }
    
    /// <summary>
    /// توضیحات دسته‌بندی
    /// </summary>
    public string? Description { get; set; }
    
    /// <summary>
    /// آدرس تصویر دسته‌بندی
    /// </summary>
    public string? ImagePath { get; set; }
    
    /// <summary>
    /// شناسه دسته‌بندی والد (برای ساختار درختی)
    /// </summary>
    public long? ParentCategoryId { get; set; }
    
    /// <summary>
    /// مرتب‌سازی
    /// </summary>
    public int SortOrder { get; set; }
    
    /// <summary>
    /// وضعیت فعال/غیرفعال
    /// </summary>
    public bool IsActive { get; set; }
    
    // ============= Navigation Properties =============
    
    /// <summary>
    /// دسته‌بندی والد
    /// </summary>
    public virtual DiscountCategory? ParentCategory { get; set; }
    
    /// <summary>
    /// دسته‌بندی‌های فرزند
    /// </summary>
    public virtual ICollection<DiscountCategory> ChildCategories { get; set; }
    
    /// <summary>
    /// محصولات این دسته‌بندی
    /// </summary>
    public virtual ICollection<DiscountProductCategory> ProductCategories { get; set; }
}
