using System;
namespace Umbraco.Core.IO
{
///
/// Represents a media file path scheme.
///
public interface IMediaPathScheme
{
///
/// Gets a media file path.
///
/// The media filesystem.
/// The (content, media) item unique identifier.
/// The property type unique identifier.
/// The file name.
/// A previous filename.
/// The filesystem-relative complete file path.
string GetFilePath(IMediaFileSystem fileSystem, Guid itemGuid, Guid propertyGuid, string filename, string previous = null);
///
/// Gets the directory that can be deleted when the file is deleted.
///
/// The media filesystem.
/// The filesystem-relative path of the file.
/// The filesystem-relative path of the directory.
///
/// The directory, and anything below it, will be deleted.
/// Can return null (or empty) when no directory should be deleted.
///
string GetDeleteDirectory(IMediaFileSystem fileSystem, string filepath);
}
}