Files
BQP/srcs/RobotNet10/Commons/RobotNet10.MapManager/Services/ILayoutService.cs
2026-07-13 09:25:40 +07:00

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