using Azaion.Repository.DTO.Configs; using Azaion.Video.DTO; using Microsoft.Extensions.Options; using IOPath = System.IO.Path; namespace Azaion.Repository.Entities; public class Media { public Guid Id { get; set; } public string Path { get; set; } = null!; public int Resolution { get; set; } public int Bitrate { get; set; } public Guid? AnnotatorId { get; set; } public MediaStatusEnum Status { get; set; } public DateTime CreatedDate { get; set; } private string MediaName => IOPath.GetFileNameWithoutExtension(Path); private string OutDir(IOptions config) => Directory.CreateDirectory(IOPath.Combine(config.Value.HlsFolder, MediaName)).FullName; public string M3U8File(IOptions config) => IOPath.Combine(OutDir(config), $"{MediaName}.{Constants.M3_U8_EXT}"); public string SegmentFile(IOptions config) => IOPath.Combine(OutDir(config), $"{MediaName}%03d.{Constants.TS_EXT}"); }