using RobotNet10.FleetManager.Shared.DTOs.RobotModel; using RobotNet10.MapManager.Data; namespace RobotNet10.FleetManager.Services; /// /// Service for managing robot model map data based on VehicleType filtering /// public interface IRobotModelMapService { /// /// Get filtered nodes for a robot model based on VehicleType properties /// Returns only nodes that have NodeVehicleProperties for the robot model's VehicleType /// Task> GetFilteredNodesAsync(Guid robotModelId); /// /// Get filtered edges for a robot model based on VehicleType properties /// Returns only edges that have EdgeVehicleProperties for the robot model's VehicleType /// Task> GetFilteredEdgesAsync(Guid robotModelId); /// /// Get filtered nodes for a robot model based on VehicleType properties and LevelId /// Returns only nodes that have NodeVehicleProperties for the robot model's VehicleType and belong to the specified level /// Task> GetFilteredNodesByLevelAsync(Guid robotModelId, Guid levelId); /// /// Get filtered edges for a robot model based on VehicleType properties and LevelId /// Returns only edges that have EdgeVehicleProperties for the robot model's VehicleType and belong to the specified level /// Task> GetFilteredEdgesByLevelAsync(Guid robotModelId, Guid levelId); /// /// Get validated map data (nodes + edges) for a robot model /// Returns only valid nodes/edges after validation (nodes with edges, edges with both nodes) /// Task GetValidatedMapDataAsync(Guid robotModelId); /// /// Validate map data for a robot model /// Returns validation result with errors/warnings /// Task ValidateMapForRobotModelAsync(Guid robotModelId); /// /// Check if robot model has valid map configuration /// Returns true if VehicleTypeId and MapId are set and map data is valid /// Task HasValidMapConfigurationAsync(Guid robotModelId); }