Files
I150/srcs/RobotNet10/Commons/RobotNet10.MapManager/Data/LayoutLevel.cs
2026-07-03 16:37:12 +07:00

52 lines
1.6 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace RobotNet10.MapManager.Data;
/// <summary>
/// Layout level entity - Represents floors/levels within a version
/// Maps to VDMA LIF: layouts[].layoutLevelId
/// </summary>
[Table("LayoutLevels")]
public class LayoutLevel
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
/// <summary>
/// Parent version reference
/// </summary>
[Required]
public Guid VersionId { get; set; }
/// <summary>
/// Level identifier (VDMA LIF: layoutLevelId)
/// Example: "floor_1", "floor_2", "basement"
/// </summary>
[Required]
[StringLength(64)]
public string LayoutLevelId { get; set; } = string.Empty;
/// <summary>
/// Display order (for sorting in UI)
/// Example: Basement=-1, Floor1=0, Floor2=1
/// </summary>
[Required]
public int LevelOrder { get; set; } = 0;
// Navigation properties
[ForeignKey(nameof(VersionId))]
public virtual LayoutVersion Version { get; set; } = null!;
public virtual ICollection<Node> Nodes { get; set; } = new List<Node>();
public virtual ICollection<Edge> Edges { get; set; } = new List<Edge>();
public virtual ICollection<Station> Stations { get; set; } = new List<Station>();
/// <summary>
/// Editor-specific settings (UI extensions, not part of VDMA LIF)
/// </summary>
public virtual LayoutLevelEditorSettings? EditorSettings { get; set; }
}