using RobotNet10.MapManager.Data;
namespace RobotNet10.MapManager.Services;
///
/// Service for querying map data (nodes and edges) by VehicleType
///
public interface IMapQueryService
{
///
/// Get nodes filtered by VehicleType
/// Returns only nodes that have NodeVehicleProperties for the specified VehicleType
///
Task> GetNodesByVehicleTypeAsync(Guid vehicleTypeId);
///
/// Get edges filtered by VehicleType
/// Returns only edges that have EdgeVehicleProperties for the specified VehicleType
///
Task> GetEdgesByVehicleTypeAsync(Guid vehicleTypeId);
///
/// Get nodes filtered by VehicleType and LevelId
/// Returns only nodes that have NodeVehicleProperties for the specified VehicleType and belong to the specified level
///
Task> GetNodesByVehicleTypeAndLevelAsync(Guid vehicleTypeId, Guid levelId);
///
/// Get edges filtered by VehicleType and LevelId
/// Returns only edges that have EdgeVehicleProperties for the specified VehicleType and belong to the specified level
///
Task> GetEdgesByVehicleTypeAndLevelAsync(Guid vehicleTypeId, Guid levelId);
///
/// Get total count of nodes across all levels
///
Task GetTotalNodesCountAsync();
///
/// Get total count of edges across all levels
///
Task GetTotalEdgesCountAsync();
}