using System;
using System.Collections.Generic;

namespace Toolbox.Docking.Api.Units
{
    /// <summary>
    /// Base type for the Nominal and Ordinal scales.
    /// </summary>
    [Serializable]
    public abstract class TbQualitativeScale: TbScale
    {
        /// <summary>
        /// The list of category members.
        /// </summary>
        public IReadOnlyList<string> Labels { get; }

        /// <summary>
        /// Base constructor for a Nominal/Ordinal scale objects.
        /// </summary>
        /// <param name="name">Name for the scale.</param>
        /// <param name="familyGroup">Family group for the scale.</param>
        /// <param name="identity">The unique persistent identifier for the scale.</param>
        /// <param name="labels">The category members.</param>
        protected TbQualitativeScale(string name, string familyGroup, Guid identity, IReadOnlyList<string> labels) : base(name, familyGroup, identity)
        {
            Labels = new List<string>(labels);
        }
    }
}
