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();
}