namespace NexusReader.Application.Abstractions.Services;

/// <summary>
/// General file storage service interface for handling media uploads.
/// Intended to have a Scoped lifetime.
/// </summary>
public interface IStorageService
{
    /// <summary>
    /// Uploads a file stream and returns its public URL/path.
    /// </summary>
    Task<string> UploadFileAsync(Stream fileStream, string fileName, string contentType);

    /// <summary>
    /// Uploads file bytes and returns its public URL/path.
    /// </summary>
    Task<string> UploadFileAsync(byte[] fileBytes, string fileName, string contentType);
}
