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