Files
Denso/srcs/RobotNet10/Commons/RobotNet10.MapManager/Services/ILayoutDataService.cs
2026-07-03 16:31:37 +07:00

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);
}