using RobotNet10.MapEditor.Shared.DTOs.LayoutData; using RobotNet10.MapEditor.Shared.DTOs.Requests; using RobotNet10.MapEditor.Shared.DTOs.Responses; namespace RobotNet10.MapManager.Services; /// /// Service for retrieving complete layout data (nodes, edges, stations) /// public interface ILayoutDataService { /// /// Get complete layout data for a layout level /// Includes all nodes, edges, and stations with full nested properties /// Task GetLayoutDataAsync(Guid layoutLevelId); /// /// Merge multiple nodes into one node at center position /// Task MergeNodesAsync(MergeNodesRequest request); /// /// Split a node into multiple nodes (one for each connected edge) /// Task SplitNodeAsync(SplitNodeRequest request); /// /// Save all layout changes (nodes and edges) in a batch operation /// Uses transaction to ensure atomicity /// Task SaveLayoutDataAsync(SaveLayoutDataRequest request); /// /// Copy selected nodes and edges with an offset /// Creates new nodes and edges at offset positions /// Task CopyNodesAsync(CopyNodesRequest request); }