Initial commit
This commit is contained in:
70
srcs/RobotNet10/Commons/RobotNet10.MapManager/Data/Node.cs
Normal file
70
srcs/RobotNet10/Commons/RobotNet10.MapManager/Data/Node.cs
Normal file
@@ -0,0 +1,70 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace RobotNet10.MapManager.Data;
|
||||
|
||||
/// <summary>
|
||||
/// Node entity - Waypoints/nodes on the map
|
||||
/// Maps to VDMA LIF: layouts[].nodes[]
|
||||
/// </summary>
|
||||
[Table("Nodes")]
|
||||
public class Node
|
||||
{
|
||||
[Key]
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Parent level reference
|
||||
/// </summary>
|
||||
[Required]
|
||||
public Guid LevelId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Node identifier (VDMA LIF: nodeId) - Required
|
||||
/// Unique within level
|
||||
/// </summary>
|
||||
[Required]
|
||||
[StringLength(128)]
|
||||
public string NodeId { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// Node name (VDMA LIF: nodeName) - Optional
|
||||
/// </summary>
|
||||
[StringLength(256)]
|
||||
public string? NodeName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Node description (VDMA LIF: nodeDescription) - Optional
|
||||
/// </summary>
|
||||
public string? NodeDescription { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Map identifier (VDMA LIF: mapId) - Optional
|
||||
/// Reference to map image or data
|
||||
/// </summary>
|
||||
[StringLength(128)]
|
||||
public string? MapId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// X coordinate in meters (VDMA LIF: nodePosition.x) - Required
|
||||
/// </summary>
|
||||
[Required]
|
||||
public double X { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Y coordinate in meters (VDMA LIF: nodePosition.y) - Required
|
||||
/// </summary>
|
||||
[Required]
|
||||
public double Y { get; set; }
|
||||
|
||||
// Navigation properties
|
||||
[ForeignKey(nameof(LevelId))]
|
||||
public virtual LayoutLevel Level { get; set; } = null!;
|
||||
|
||||
public virtual ICollection<NodeVehicleProperty> VehicleProperties { get; set; } = new List<NodeVehicleProperty>();
|
||||
public virtual ICollection<Edge> OutgoingEdges { get; set; } = new List<Edge>();
|
||||
public virtual ICollection<Edge> IncomingEdges { get; set; } = new List<Edge>();
|
||||
public virtual ICollection<StationInteractionNode> StationInteractions { get; set; } = new List<StationInteractionNode>();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user