using RobotNet10.MapEditor.Shared.DTOs.Requests;
using RobotNet10.MapManager.Data;
namespace RobotNet10.MapManager.Services;
///
/// Service for managing edges
///
public interface IEdgeService
{
///
/// Create edge with automatic node detection/creation
///
Task CreateAsync(CreateEdgeRequest request);
///
/// Get all edges for a layout level
///
Task> GetEdgesByLevelAsync(Guid layoutLevelId, bool includeNodes = true, bool includeVehicleProperties = true);
///
/// Get edge by ID
///
Task GetByIdAsync(Guid edgeId, bool includeNodes = true, bool includeVehicleProperties = true);
///
/// Update edge
///
Task UpdateAsync(Guid edgeId, UpdateEdgeRequest request);
///
/// Delete edge (cascade delete orphan nodes)
///
Task DeleteAsync(Guid edgeId);
///
/// Delete multiple edges in a transaction
///
Task DeleteBatchAsync(List edgeIds);
}