using RobotNet.VDA5050.Type; using System.ComponentModel.DataAnnotations; using System.Text.Json.Serialization; namespace RobotNet.VDA5050.Order; public class Edge { [Required] [JsonPropertyName("edgeId")] public string EdgeId { get; set; } = string.Empty; [Required] [JsonPropertyName("sequenceId")] public int SequenceId { get; set; } [JsonPropertyName("edgeDescription")] public string? EdgeDescription { get; set; } [Required] [JsonPropertyName("released")] public bool Released { get; set; } [Required] [JsonPropertyName("startNodeId")] public string StartNodeId { get; set; } = string.Empty; [Required] [JsonPropertyName("endNodeId")] public string EndNodeId { get; set; } = string.Empty; [JsonPropertyName("maxSpeed")] public double? MaxSpeed { get; set; } [JsonPropertyName("maxHeight")] public double? MaxHeight { get; set; } [JsonPropertyName("minHeight")] public double? MinHeight { get; set; } [JsonPropertyName("orientation")] public double? Orientation { get; set; } [JsonPropertyName("orientationType")] public OrientationType? OrientationType { get; set; } [JsonPropertyName("direction")] public string? Direction { get; set; } [JsonPropertyName("rotationAllowed")] public bool? RotationAllowed { get; set; } [JsonPropertyName("maxRotationSpeed")] public double? MaxRotationSpeed { get; set; } [JsonPropertyName("trajectory")] public Trajectory? Trajectory { get; set; } [JsonPropertyName("length")] public double? Length { get; set; } [JsonPropertyName("corridor")] public Corridor? Corridor { get; set; } [Required] [JsonPropertyName("actions")] public InstantAction.Action[] Actions { get; set; } = []; }