using LANCommander.SDK.Enums; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace LANCommander.Server.Data.Models { [Table("Games")] public class Game : BaseModel { public ICollection? ExternalIds { get; set; } public string Title { get; set; } [Display(Name = "Sort Title")] public string? SortTitle { get; set; } [Display(Name = "Directory Name")] public string? DirectoryName { get; set; } public string? Description { get; set; } public string? Notes { get; set; } [Display(Name = "Released On")] public DateTime? ReleasedOn { get; set; } public virtual ICollection? Actions { get; set; } public KeyAllocationMethod KeyAllocationMethod { get; set; } = KeyAllocationMethod.UserAccount; 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 ICollection? MultiplayerModes { get; set; } public ICollection? Genres { get; set; } = new List(); public ICollection? Tags { get; set; } = new List(); public ICollection? Platforms { get; set; } public ICollection? Categories { get; set; } public ICollection? Publishers { get; set; } public ICollection? Developers { get; set; } public ICollection? Archives { get; set; } public ICollection