using LANCommander.Launcher.Data.Enums; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace LANCommander.Launcher.Data.Models { [Table("Games")] public class Game : BaseModel { public long? IGDBId { get; set; } public string Title { get; set; } [Display(Name = "Sort Title")] public string? SortTitle { get; set; } [Display(Name = "Directory Name")] public string? Description { get; set; } public string? Notes { get; set; } public bool Installed { get; set; } public string? InstallDirectory { get; set; } public string? InstalledVersion { get; set; } public DateTime? InstalledOn { get; set; } public string? LatestVersion { get; set; } [Display(Name = "Released On")] public DateTime? ReleasedOn { get; set; } public GameType Type { get; set; } public Guid? BaseGameId { get; set; } [ForeignKey(nameof(BaseGameId))] public virtual Game? BaseGame { get; set; } public bool Singleplayer { get; set; } = false; public Guid? EngineId { get; set; } [ForeignKey(nameof(EngineId))] public virtual Engine Engine { get; set; } public virtual ICollection? MultiplayerModes { get; set; } = new List(); public virtual ICollection? Genres { get; set; } = new List(); public virtual ICollection? Tags { get; set; } = new List(); public virtual ICollection? Categories { get; set; } = new List(); public virtual ICollection? Publishers { get; set; } = new List(); public virtual ICollection? Developers { get; set; } = new List(); public virtual ICollection? Platforms { get; set; } = new List(); public virtual ICollection? Redistributables { get; set; } = new List(); public virtual ICollection? Media { get; set; } = new List(); public virtual ICollection Collections { get; set; } = new List(); public virtual ICollection DependentGames { get; set; } = new List(); public virtual ICollection PlaySessions { get; set; } = new List(); public virtual ICollection Libraries { get; set; } = new List(); } }