mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 10:06:30 +00:00
52 lines
1.3 KiB
C#
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
|
|
} |