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);
}
}