48 lines
1.9 KiB
C#
48 lines
1.9 KiB
C#
namespace Lattice.Serialization.Docking;
|
|
|
|
/// <summary>
|
|
/// Data Transfer Object (DTO) для сериализации состояния макета док-системы.
|
|
/// Содержит все необходимые данные для сохранения и восстановления состояния макета.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Этот DTO является независимым от формата сериализации (JSON, XML, Binary) и используется
|
|
/// как промежуточное представление между объектной моделью и сериализованными данными.
|
|
/// </remarks>
|
|
public class LayoutDto
|
|
{
|
|
/// <summary>
|
|
/// Версия формата DTO для контроля совместимости.
|
|
/// </summary>
|
|
public string Version { get; set; } = "1.0";
|
|
|
|
/// <summary>
|
|
/// Дата и время создания DTO в UTC.
|
|
/// </summary>
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
|
|
/// <summary>
|
|
/// Идентификатор приложения, создавшего DTO.
|
|
/// </summary>
|
|
public string? ApplicationId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Корневой элемент дерева компоновки.
|
|
/// </summary>
|
|
public ElementDto? Root { get; set; }
|
|
|
|
/// <summary>
|
|
/// Список плавающих окон.
|
|
/// </summary>
|
|
public List<WindowDto> FloatingWindows { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Список автоскрываемых панелей.
|
|
/// </summary>
|
|
public List<AutoHidePanelDto> AutoHidePanels { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Дополнительные метаданные, специфичные для приложения.
|
|
/// </summary>
|
|
public Dictionary<string, string> Metadata { get; set; } = new();
|
|
}
|