Files
annotations/Azaion.Common/Database/MediaFile.cs
T
Oleksandr Bezdieniezhnykh fd95d2ba2c add MediaHash. Step1
2025-11-17 07:46:05 +02:00

52 lines
1.3 KiB
C#

using System.IO;
using Azaion.Common.Extensions;
using Azaion.Common.Services;
namespace Azaion.Common.Database;
public class MediaFile
{
public string Hash { get; set; } = null!;
public string MediaUrl { get; set; } = null!;
public string Name { get; set; } = null!;
public DateTime? LastProcessedDate { get; set; }
public MediaTypes MediaType { get; set; } = MediaTypes.None;
public MediaStatus Status { get; set; } = MediaStatus.None;
public IEnumerable<Annotation> Annotations { get; set; } = null!;
public MediaFile() { }
public MediaFile(string path)
{
var fileInfo = new FileInfo(path);
var mediaType = Constants.DefaultVideoFormats.Contains(fileInfo.Extension, StringComparer.OrdinalIgnoreCase)
? MediaTypes.Video
: Constants.DefaultImageFormats.Contains(fileInfo.Extension, StringComparer.OrdinalIgnoreCase)
? MediaTypes.Image
: MediaTypes.None;
Hash = fileInfo.CalcHash();
MediaUrl = path;
Name = path.ToFName();
MediaType = mediaType;
Status = MediaStatus.New;
LastProcessedDate = null;
}
}
public enum MediaTypes
{
None = 0,
Video = 1,
Image = 2
}
public enum MediaStatus
{
None,
New,
AIProcessing,
AIProcessed,
ManualCreated,
Confirmed,
Error
}