56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using NodaTime;
 | |
| 
 | |
| namespace DysonNetwork.Sphere.Storage;
 | |
| 
 | |
| /// <summary>
 | |
| /// Common interface for cloud file entities that can be used in file operations.
 | |
| /// This interface exposes the essential properties needed for file operations
 | |
| /// and is implemented by both CloudFile and CloudFileReferenceObject.
 | |
| /// </summary>
 | |
| public interface ICloudFile
 | |
| {
 | |
|     public Instant CreatedAt { get; }
 | |
|     public Instant UpdatedAt { get; }
 | |
|     public Instant? DeletedAt { get; }
 | |
|     
 | |
|     /// <summary>
 | |
|     /// Gets the unique identifier of the cloud file.
 | |
|     /// </summary>
 | |
|     string Id { get; }
 | |
| 
 | |
|     /// <summary>
 | |
|     /// Gets the name of the cloud file.
 | |
|     /// </summary>
 | |
|     string Name { get; }
 | |
| 
 | |
|     /// <summary>
 | |
|     /// Gets the file metadata dictionary.
 | |
|     /// </summary>
 | |
|     Dictionary<string, object>? FileMeta { get; }
 | |
| 
 | |
|     /// <summary>
 | |
|     /// Gets the user metadata dictionary.
 | |
|     /// </summary>
 | |
|     Dictionary<string, object>? UserMeta { get; }
 | |
| 
 | |
|     /// <summary>
 | |
|     /// Gets the MIME type of the file.
 | |
|     /// </summary>
 | |
|     string? MimeType { get; }
 | |
| 
 | |
|     /// <summary>
 | |
|     /// Gets the hash of the file content.
 | |
|     /// </summary>
 | |
|     string? Hash { get; }
 | |
| 
 | |
|     /// <summary>
 | |
|     /// Gets the size of the file in bytes.
 | |
|     /// </summary>
 | |
|     long Size { get; }
 | |
| 
 | |
|     /// <summary>
 | |
|     /// Gets whether the file has a compressed version available.
 | |
|     /// </summary>
 | |
|     bool HasCompression { get; }
 | |
| }
 |