Initial commit
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user