Files
2025-05-18 02:27:17 -04:00

65 lines
1.9 KiB
C#

using System.ComponentModel.DataAnnotations.Schema;
using DCGEngine.Database.Models;
using Microsoft.EntityFrameworkCore;
namespace SVSim.Database.Models;
/// <summary>
/// A user within the game system.
/// </summary>
[Index(nameof(ShortUdid))]
public class Viewer : BaseEntity<long>
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public override long Id { get; set; }
/// <summary>
/// This user's name displayed in game.
/// </summary>
public string DisplayName { get; set; } = String.Empty;
/// <summary>
/// This user's short identifier.
/// </summary>
public long ShortUdid { get; set; }
public DateTime LastLogin { get; set; }
#region Owned
public ViewerInfo Info { get; set; } = new ViewerInfo();
public ViewerMissionData MissionData { get; set; } = new ViewerMissionData();
public ViewerCurrency Currency { get; set; } = new ViewerCurrency();
public List<ViewerClassData> Classes { get; set; } = new List<ViewerClassData>();
#endregion
#region Collection
public List<ShadowverseDeckEntry> Decks { get; set; } = new List<ShadowverseDeckEntry>();
public List<OwnedCardEntry> Cards { get; set; } = new List<OwnedCardEntry>();
public List<LeaderSkinEntry> LeaderSkins { get; set; } = new List<LeaderSkinEntry>();
public List<DegreeEntry> Degrees { get; set; } = new List<DegreeEntry>();
public List<EmblemEntry> Emblems { get; set; } = new List<EmblemEntry>();
public List<OwnedItemEntry> Items { get; set; } = new List<OwnedItemEntry>();
public List<SleeveEntry> Sleeves { get; set; } = new List<SleeveEntry>();
public List<MyPageBackgroundEntry> MyPageBackgrounds { get; set; } = new List<MyPageBackgroundEntry>();
#endregion
#region Navigation Properties
public List<SocialAccountConnection> SocialAccountConnections { get; set; } = new List<SocialAccountConnection>();
#endregion
}