2025-11-29 18:24:27 -06:00
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
2024-05-20 19:42:31 -05:00
|
|
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
2025-11-29 18:24:27 -06:00
|
|
|
|
using LANCommander.SDK.Enums;
|
2024-05-20 19:42:31 -05:00
|
|
|
|
|
2024-08-04 17:53:19 -05:00
|
|
|
|
namespace LANCommander.Launcher.Data.Models
|
2024-05-20 19:42:31 -05:00
|
|
|
|
{
|
|
|
|
|
|
[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; }
|
|
|
|
|
|
|
2024-05-20 20:25:50 -05:00
|
|
|
|
public bool Installed { get; set; }
|
|
|
|
|
|
public string? InstallDirectory { get; set; }
|
2024-05-25 15:40:31 -05:00
|
|
|
|
public string? InstalledVersion { get; set; }
|
2024-07-30 19:24:57 -05:00
|
|
|
|
public DateTime? InstalledOn { get; set; }
|
2024-05-25 15:40:31 -05:00
|
|
|
|
public string? LatestVersion { get; set; }
|
2024-05-20 20:25:50 -05:00
|
|
|
|
|
2024-05-20 19:42:31 -05:00
|
|
|
|
[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<MultiplayerMode>? MultiplayerModes { get; set; } = new List<MultiplayerMode>();
|
|
|
|
|
|
public virtual ICollection<Genre>? Genres { get; set; } = new List<Genre>();
|
|
|
|
|
|
public virtual ICollection<Tag>? Tags { get; set; } = new List<Tag>();
|
|
|
|
|
|
public virtual ICollection<Category>? Categories { get; set; } = new List<Category>();
|
|
|
|
|
|
public virtual ICollection<Company>? Publishers { get; set; } = new List<Company>();
|
|
|
|
|
|
public virtual ICollection<Company>? Developers { get; set; } = new List<Company>();
|
2024-07-12 18:34:16 -05:00
|
|
|
|
public virtual ICollection<Platform>? Platforms { get; set; } = new List<Platform>();
|
2024-05-20 19:42:31 -05:00
|
|
|
|
public virtual ICollection<Redistributable>? Redistributables { get; set; } = new List<Redistributable>();
|
|
|
|
|
|
public virtual ICollection<Media>? Media { get; set; } = new List<Media>();
|
|
|
|
|
|
public virtual ICollection<Collection> Collections { get; set; } = new List<Collection>();
|
|
|
|
|
|
public virtual ICollection<Game> DependentGames { get; set; } = new List<Game>();
|
2024-06-02 23:01:37 -05:00
|
|
|
|
public virtual ICollection<PlaySession> PlaySessions { get; set; } = new List<PlaySession>();
|
2025-01-19 00:06:44 -06:00
|
|
|
|
public virtual ICollection<Library> Libraries { get; set; } = new List<Library>();
|
2024-05-20 19:42:31 -05:00
|
|
|
|
}
|
|
|
|
|
|
}
|