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