using Microsoft.EntityFrameworkCore; using Newtonsoft.Json; namespace SQLiteEF; [PrimaryKey("SteamId")] public class Player : IUpdateable { public ulong SteamId { get; init; } public string Name { get; set; } public string ProfileUrl { get; set; } public string AvatarUrl { get; set; } [JsonIgnore] public ICollection Games { get; init; } = null!; [JsonIgnore] public ICollection TrackedTimes { get; init; } = null!; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; public Player(ulong steamId, string name, string profileUrl, string avatarUrl) { this.SteamId = steamId; this.Name = name; this.ProfileUrl = profileUrl; this.AvatarUrl = avatarUrl; this.Games = []; this.TrackedTimes = []; } /// /// EF CORE /// internal Player(ulong steamId, string name, string profileUrl, string avatarUrl, DateTime updatedAt) { this.SteamId = steamId; this.Name = name; this.ProfileUrl = profileUrl; this.AvatarUrl = avatarUrl; this.UpdatedAt = updatedAt; } }