using System.IO; using System.Threading.Tasks; namespace Nop.Plugin.Misc.FruitBankPlugin.Services.FileStorage { /// /// Interface for file storage providers (local, Azure, S3, etc.) /// public interface IFileStorageProvider { /// /// Saves a file stream to the specified relative path /// /// The file stream to save /// Relative path from storage root (e.g., "123/AIdocumentprocessing/ShippingDocuments-456/file.pdf") /// The full path where the file was saved Task SaveFileAsync(Stream fileStream, string relativePath); /// /// Retrieves a file stream from the specified relative path /// /// Relative path from storage root /// File stream Task GetFileAsync(string relativePath); /// /// Deletes a file at the specified relative path /// /// Relative path from storage root /// True if deleted successfully Task DeleteFileAsync(string relativePath); /// /// Checks if a file exists at the specified relative path /// /// Relative path from storage root /// True if file exists Task FileExistsAsync(string relativePath); } }