namespace Kompas.Mcp.Core.Query;

/// <summary>Сводка по компоненту сборки (деталь или подсборка верхнего уровня).</summary>
public sealed record ComponentInfo
{
    /// <summary>Индекс в коллекции компонентов верхнего уровня.</summary>
    public required int Index { get; init; }

    /// <summary>Имя компонента в дереве.</summary>
    public required string Name { get; init; }

    /// <summary>Обозначение (marking), если задано.</summary>
    public required string Marking { get; init; }

    /// <summary>Путь к файлу-источнику компонента, если есть.</summary>
    public required string FileName { get; init; }

    /// <summary>true — деталь, false — подсборка.</summary>
    public required bool IsDetail { get; init; }

    /// <summary>Габаритные размеры компонента (мм). 0, если габарит недоступен.</summary>
    public required double SizeX { get; init; }
    public required double SizeY { get; init; }
    public required double SizeZ { get; init; }
}
