namespace FlatRender.ContentSvc.Domain.Entities; public class Category { public Guid Id { get; set; } = Guid.NewGuid(); public Guid? ParentId { get; set; } public Category? Parent { get; set; } public string Name { get; set; } = default!; public string Slug { get; set; } = default!; public string? Description { get; set; } public string? ImageUrl { get; set; } public string? Icon { get; set; } public string? MetaTitle { get; set; } public string? MetaDescription { get; set; } public string? MetaKeywords { get; set; } public bool BotFollow { get; set; } = true; public int Sort { get; set; } public bool IsActive { get; set; } = true; public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; public DateTime? DeletedAt { get; set; } public ICollection Children { get; set; } = []; } public class Tag { public Guid Id { get; set; } = Guid.NewGuid(); public string Name { get; set; } = default!; public string? LatinName { get; set; } public string Slug { get; set; } = default!; public string? AppliesToMode { get; set; } public bool IsActive { get; set; } = true; public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; public DateTime? DeletedAt { get; set; } } public class Font { public Guid Id { get; set; } = Guid.NewGuid(); public string Name { get; set; } = default!; public string? OriginalName { get; set; } public string? SystemName { get; set; } public string? Family { get; set; } public int? Weight { get; set; } public string? Style { get; set; } public string Direction { get; set; } = "LTR"; public string? FileUrl { get; set; } public string? SampleImageUrl { get; set; } public bool IsPremium { get; set; } public bool IsActive { get; set; } = true; public bool InstalledOnNodes { get; set; } public int Sort { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; public DateTime? DeletedAt { get; set; } } public class MusicTrack { public Guid Id { get; set; } = Guid.NewGuid(); public string Name { get; set; } = default!; public string? Caption { get; set; } public string? Keywords { get; set; } public string Url { get; set; } = default!; public string? WaveformData { get; set; } public decimal DurationSec { get; set; } public int? Bpm { get; set; } public string? Genre { get; set; } public string? Mood { get; set; } public bool IsPremium { get; set; } public bool IsActive { get; set; } = true; public int Sort { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; public DateTime? DeletedAt { get; set; } } public class ProjectServer { public Guid Id { get; set; } = Guid.NewGuid(); public string Name { get; set; } = default!; public string Region { get; set; } = default!; public string? Ip { get; set; } public string? PhysicalPathOutput { get; set; } public string? DefaultProjectAddress { get; set; } public string? RenderOutputLocation { get; set; } public string? PreNeedFolderAddress { get; set; } public string? MinioEndpoint { get; set; } public string? MinioBucketTemplates { get; set; } public string? MinioBucketOutputs { get; set; } public bool IsActive { get; set; } = true; public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; } public class AdminFile { public Guid Id { get; set; } = Guid.NewGuid(); public string? Name { get; set; } public string Url { get; set; } = default!; public string? ThumbnailUrl { get; set; } public string? FileType { get; set; } public long? SizeBytes { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; }