using Baya.Domain.Common;

namespace Baya.Domain.Entities.Catalog;

/// <summary>
/// An admin-managed top-level care type (Elderly, Post-Surgery, Infant, Chronic, Companionship) — the
/// primary search dimension and the first thing a nurse picks when building a variant. Categories are
/// <b>data, not code</b>: an admin adds one as a row, never a migration. Deactivate (never delete) so the
/// bookings/variants already resting on a category survive — their history lives in the booking snapshot.
/// Every row carries the <c>NameFa</c> (primary) + <c>NameEn</c> pair; the client picks by locale.
/// </summary>
public class ServiceCategory : BaseEntity<long>
{
    public string NameFa { get; set; }
    public string NameEn { get; set; }

    public string DescriptionFa { get; set; }
    public string DescriptionEn { get; set; }

    /// <summary>UI glyph key the client maps to an icon; not a business value.</summary>
    public string IconKey { get; set; }

    public int SortOrder { get; set; }
    public bool IsActive { get; set; }

    public DateTimeOffset? DeletedAt { get; set; }

    public ICollection<ServiceOptionGroup> OptionGroups { get; set; }
    public ICollection<NurseServiceVariant> Variants { get; set; }
}
