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