using RobotNet10.MapEditor.Shared.DTOs.Node;
using RobotNet10.MapEditor.Shared.DTOs.Requests;
using RobotNet10.MapManager.Data;
namespace RobotNet10.MapManager.Services;
///
/// Service for managing nodes
///
public interface INodeService
{
///
/// Get all nodes for a layout level
///
Task> GetNodesByLevelAsync(Guid layoutLevelId, bool includeVehicleProperties = true);
///
/// Get node by ID
///
Task GetByIdAsync(Guid nodeId, bool includeVehicleProperties = true);
///
/// Update node
///
Task UpdateAsync(Guid nodeId, UpdateNodeRequest request);
///
/// Validate if coordinates are within bounds
///
Task ValidateCoordinatesAsync(Guid layoutLevelId, double x, double y);
///
/// Find nodes within proximity radius of given coordinates
///
Task> FindNodesNearCoordinatesAsync(Guid layoutLevelId, double x, double y, double radius);
}