namespace PARR.Domain.DTOs.UnitDto
{
    /// <summary>
    /// Юнит с ЕСПП атрибутами, детьми и родителями и их атрибутами
    /// </summary>
    public record UnitInfo : UnitInfoBase
    {
        /// <summary>
        /// Родительские юниты
        /// </summary>
        public IReadOnlyCollection<UnitInfoBase> ParentUnits { get; init; } = [];

        /// <summary>
        /// Дочерние юниты
        /// </summary>
        public IReadOnlyCollection<UnitInfoBase> ChildUnits { get; init; } = [];
    }

    public record UnitInfoBase
    {
        /// <summary>
        /// Id юнита
        /// </summary>
        public Guid Id { get; init; }

        /// <summary>
        /// ЭК
        /// </summary>
        public required string Name { get; init; }

        /// <summary>
        /// Атрибуты из ЕСПП
        /// </summary>
        public IReadOnlyCollection<UnitInfoAttribute> Values { get; init; } = [];
    }

    /// <summary>
    /// Атрибут ЕСПП
    /// </summary>
    public record UnitInfoAttribute
    {
        /// <summary>
        /// ИД поля
        /// </summary>
        public Guid FieldId { get; init; }

        /// <summary>
        /// Значение
        /// </summary>
        public string? Value { get; init; }
    }
}
