62 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.ComponentModel.DataAnnotations;
 | |
| using System.ComponentModel.DataAnnotations.Schema;
 | |
| using System.Text.Json;
 | |
| using System.Text.Json.Serialization;
 | |
| using NodaTime;
 | |
| 
 | |
| namespace DysonNetwork.Drive.Models;
 | |
| 
 | |
| public class CloudFileReference : ModelBase
 | |
| {
 | |
|     public Guid Id { get; set; } = Guid.NewGuid();
 | |
|     
 | |
|     [MaxLength(2048)]
 | |
|     public string ResourceId { get; set; } = null!;
 | |
|     
 | |
|     [MaxLength(256)]
 | |
|     public string ResourceType { get; set; } = null!;
 | |
|     
 | |
|     [MaxLength(256)]
 | |
|     public string ReferenceType { get; set; } = null!;
 | |
|     
 | |
|     [MaxLength(256)]
 | |
|     public string? ReferenceId { get; set; }
 | |
|     
 | |
|     [MaxLength(256)]
 | |
|     public string? ReferenceName { get; set; }
 | |
|     
 | |
|     [MaxLength(256)]
 | |
|     public string? ReferenceMimeType { get; set; }
 | |
|     
 | |
|     public long? ReferenceSize { get; set; }
 | |
|     
 | |
|     [MaxLength(1024)]
 | |
|     public string? ReferenceUrl { get; set; }
 | |
|     
 | |
|     [MaxLength(1024)]
 | |
|     public string? ReferenceThumbnailUrl { get; set; }
 | |
|     
 | |
|     [MaxLength(1024)]
 | |
|     public string? ReferencePreviewUrl { get; set; }
 | |
|     
 | |
|     [MaxLength(1024)]
 | |
|     public string? ReferenceMetadata { get; set; }
 | |
|     
 | |
|     [Column(TypeName = "jsonb")]
 | |
|     public JsonDocument? Metadata { get; set; }
 | |
|     
 | |
|     public bool IsActive { get; set; } = true;
 | |
|     
 | |
|     public Instant? ExpiresAt { get; set; }
 | |
|     
 | |
|     public Guid FileId { get; set; }
 | |
|     public virtual CloudFile File { get; set; } = null!;
 | |
|     
 | |
|     public void Dispose()
 | |
|     {
 | |
|         Metadata?.Dispose();
 | |
|         GC.SuppressFinalize(this);
 | |
|     }
 | |
| }
 |