using Lagerbestand.Models; namespace Lagerbestand.Services; /// /// Service interface for file storage operations (disk/NFS based) /// public interface IFileStorageService { /// /// Gets the current storage settings /// Task GetSettingsAsync(); /// /// Updates the storage settings /// Task SaveSettingsAsync(FileStorageSettings settings); /// /// Validates if the storage path is accessible and writable /// Task<(bool IsValid, string? ErrorMessage)> ValidateStoragePathAsync(string path); /// /// Saves a file to storage and returns the relative path /// Task SaveFileAsync(byte[] content, string fileName, string subDirectory = "attachments"); /// /// Reads a file from storage /// Task ReadFileAsync(string relativePath); /// /// Deletes a file from storage /// Task DeleteFileAsync(string relativePath); /// /// Checks if a file exists in storage /// Task FileExistsAsync(string relativePath); /// /// Gets the file size in bytes /// Task GetFileSizeAsync(string relativePath); }