using RobotNet10.MapEditor.Shared.DTOs.Edge; using RobotNet10.MapEditor.Shared.DTOs.Node; namespace RobotNet10.FleetManager.Shared.DTOs.RobotModel; /// /// Validated map data for a robot model /// Contains filtered and validated nodes/edges based on VehicleType properties /// public class RobotModelMapDataDto { /// /// Robot model ID /// public Guid RobotModelId { get; set; } /// /// Robot model name /// public string RobotModelName { get; set; } = string.Empty; /// /// Vehicle type ID (from MapManager) /// public Guid? VehicleTypeId { get; set; } /// /// Vehicle type name (for display) /// public string? VehicleTypeName { get; set; } /// /// Layout level ID (MapId from RobotModel) /// public Guid? LevelId { get; set; } /// /// Layout level identifier (for display) /// public string? LevelName { get; set; } /// /// Valid nodes after filtering and validation /// public List ValidNodes { get; set; } = []; /// /// Valid edges after filtering and validation /// public List ValidEdges { get; set; } = []; /// /// Total number of nodes in the level (before filtering) /// public int TotalNodesInLevel { get; set; } /// /// Total number of edges in the level (before filtering) /// public int TotalEdgesInLevel { get; set; } /// /// Number of nodes after filtering by VehicleType (before validation) /// public int FilteredNodesCount { get; set; } /// /// Number of edges after filtering by VehicleType (before validation) /// public int FilteredEdgesCount { get; set; } /// /// Number of valid nodes after validation /// public int ValidNodesCount => ValidNodes.Count; /// /// Number of valid edges after validation /// public int ValidEdgesCount => ValidEdges.Count; /// /// Validation result with errors and warnings /// public MapValidationResultDto ValidationResult { get; set; } = new(); }