using RobotNet10.MapEditor.Shared.DTOs.Requests; using RobotNet10.MapManager.Data; namespace RobotNet10.MapManager.Services; /// /// Service for managing layouts, versions, and levels /// public interface ILayoutService { // ========================================== // LAYOUT OPERATIONS // ========================================== Task CreateLayoutAsync(CreateLayoutRequest request); Task> SearchLayoutsAsync(string? searchText); Task GetLayoutByIdAsync(Guid layoutId); Task GetLayoutByLayoutIdAsync(string layoutId); Task GetLayoutByNameAsync(string layoutName); Task UpdateLayoutAsync(Guid layoutId, UpdateLayoutRequest request); Task DeleteLayoutAsync(Guid layoutId); Task ActivateLayoutAsync(Guid layoutId); Task DeactivateLayoutAsync(Guid layoutId); // ========================================== // VERSION OPERATIONS // ========================================== Task CreateVersionAsync(Guid layoutId, CreateLayoutVersionRequest request); Task> GetVersionsAsync(Guid layoutId); Task GetVersionAsync(Guid versionId); Task UpdateVersionAsync(Guid versionId, UpdateLayoutRequest request); Task DeleteVersionAsync(Guid versionId); // ========================================== // LEVEL OPERATIONS // ========================================== Task CreateLevelAsync(Guid versionId, CreateLayoutLevelRequest request); Task> GetLevelsAsync(Guid versionId); Task GetLevelAsync(Guid levelId); Task UpdateLevelAsync(Guid levelId, UpdateLayoutLevelRequest request); Task DeleteLevelAsync(Guid levelId); }