Initial commit

This commit is contained in:
2026-07-13 09:25:40 +07:00
parent c08ff54676
commit bccfb156d7
1938 changed files with 641646 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
namespace RobotNet10.MapManager.Services;
/// <summary>
/// Interface for image storage operations (Minio or FileSystem)
/// </summary>
public interface IImageStorageService
{
/// <summary>
/// Save image for a layout level
/// </summary>
/// <param name="layoutLevelId">Layout level ID</param>
/// <param name="imageStream">Image stream (PNG format)</param>
/// <param name="cancellationToken">Cancellation token</param>
Task SaveImageAsync(Guid layoutLevelId, Stream imageStream, CancellationToken cancellationToken = default);
/// <summary>
/// Get image for a layout level
/// </summary>
/// <param name="layoutLevelId">Layout level ID</param>
/// <param name="cancellationToken">Cancellation token</param>
/// <returns>Image stream or null if not found</returns>
Task<Stream?> GetImageAsync(Guid layoutLevelId, CancellationToken cancellationToken = default);
/// <summary>
/// Delete image for a layout level
/// </summary>
/// <param name="layoutLevelId">Layout level ID</param>
/// <param name="cancellationToken">Cancellation token</param>
Task<bool> DeleteImageAsync(Guid layoutLevelId, CancellationToken cancellationToken = default);
/// <summary>
/// Check if image exists for a layout level
/// </summary>
/// <param name="layoutLevelId">Layout level ID</param>
/// <param name="cancellationToken">Cancellation token</param>
Task<bool> ImageExistsAsync(Guid layoutLevelId, CancellationToken cancellationToken = default);
/// <summary>
/// Extract image dimensions from stream
/// </summary>
/// <param name="imageStream">Image stream (PNG format)</param>
/// <param name="cancellationToken">Cancellation token</param>
/// <returns>Tuple of (width, height) in pixels</returns>
Task<(int width, int height)> GetImageDimensionsAsync(Stream imageStream, CancellationToken cancellationToken = default);
}