DTOs for index mostly done, doing DB models
This commit is contained in:
@@ -1,6 +1,286 @@
|
||||
using MessagePack;
|
||||
using SVSim.Database.Enums;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Responses;
|
||||
|
||||
[MessagePackObject]
|
||||
public class IndexResponse
|
||||
{
|
||||
#region Primitive Returns
|
||||
|
||||
[Key("ts_card_rotation")]
|
||||
public string TsCardRotation { get; set; } = string.Empty;
|
||||
[Key("is_beginner_mission")]
|
||||
public int IsBeginnerMission { get; set; }
|
||||
[Key("spot_point")]
|
||||
public int SpotPoint { get; set; }
|
||||
[Key("is_available_colosseum_free_entry")]
|
||||
public bool IsAvailableColosseumFreeEntry { get; set; }
|
||||
[Key("friend_battle_invite_count")]
|
||||
public int FriendBattleInviteCount { get; set; }
|
||||
[Key("battle_recovery_status")]
|
||||
public int BattleRecoveryStatus { get; set; }
|
||||
[Key("room_recovery_status")]
|
||||
public int RoomRecoveryStatus { get; set; }
|
||||
[Key("is_battle_pass_period")]
|
||||
public bool IsBattlePassPeriod { get; set; }
|
||||
[Key("card_set_id_for_resource_dl_view")]
|
||||
public int CardSetIdForResourceDlView { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Basic User Data
|
||||
|
||||
/// <summary>
|
||||
/// The user's tutorial progress state.
|
||||
/// </summary>
|
||||
[Key("user_tutorial")]
|
||||
public UserTutorial UserTutorial { get; set; } = new UserTutorial();
|
||||
|
||||
/// <summary>
|
||||
/// Basic information about the user.
|
||||
/// </summary>
|
||||
[Key("user_info")]
|
||||
public UserInfo UserInfo { get; set; } = new UserInfo();
|
||||
|
||||
/// <summary>
|
||||
/// The in-game currency information for this user.
|
||||
/// </summary>
|
||||
[Key("user_crystal_count")]
|
||||
public UserCurrency UserCurrency { get; set; } = new UserCurrency();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Inventory Data
|
||||
|
||||
/// <summary>
|
||||
/// Items that the user has and how many of each.
|
||||
/// </summary>
|
||||
[Key("user_item_list")]
|
||||
public List<UserItem> UserItems { get; set; } = new List<UserItem>();
|
||||
|
||||
/// <summary>
|
||||
/// Decks for the rotation format.
|
||||
/// </summary>
|
||||
[Key("user_deck_rotation")]
|
||||
public UserFormatDeckInfo UserRotationDecks { get; set; } = new UserFormatDeckInfo();
|
||||
|
||||
/// <summary>
|
||||
/// Decks for the unlimited format.
|
||||
/// </summary>
|
||||
[Key("user_deck_unlimited")]
|
||||
public UserFormatDeckInfo UserUnlimitedDecks { get; set; } = new UserFormatDeckInfo();
|
||||
|
||||
/// <summary>
|
||||
/// Decks for the unlimited format.
|
||||
/// </summary>
|
||||
[Key("user_deck_my_rotation")]
|
||||
public UserFormatDeckInfo UserMyRotationDecks { get; set; } = new UserFormatDeckInfo();
|
||||
|
||||
/// <summary>
|
||||
/// The list of cards and how many of each this user has.
|
||||
/// </summary>
|
||||
[Key("user_card_list")]
|
||||
public List<UserCard> UserCards { get; set; } = new List<UserCard>();
|
||||
|
||||
/// <summary>
|
||||
/// The classes a user has and their stats.
|
||||
/// </summary>
|
||||
[Key("user_class_list")]
|
||||
public List<UserClass> UserClasses { get; set; } = new List<UserClass>();
|
||||
|
||||
/// <summary>
|
||||
/// Mapping of SleeveId to a <see cref="SleeveIdentifier"/> object.
|
||||
/// </summary>
|
||||
[Key("user_sleeve_list")]
|
||||
public Dictionary<string, SleeveIdentifier> Sleeves { get; set; } = new Dictionary<string, SleeveIdentifier>();
|
||||
|
||||
/// <summary>
|
||||
/// The emblems available to this user.
|
||||
/// </summary>
|
||||
[Key("user_emblem_list")]
|
||||
public List<EmblemIdentifier> UserEmblems { get; set; } = new List<EmblemIdentifier>();
|
||||
|
||||
/// <summary>
|
||||
/// The degrees available to this user.
|
||||
/// </summary>
|
||||
[Key("degree_id")]
|
||||
public List<DegreeIdentifier> UserDegrees { get; set; } = new List<DegreeIdentifier>();
|
||||
|
||||
/// <summary>
|
||||
/// Leader skins available to the leader.
|
||||
/// </summary>
|
||||
[Key("user_leader_skin_list")]
|
||||
public Dictionary<string, UserLeaderSkin> LeaderSkins { get; set; } = new Dictionary<string, UserLeaderSkin>();
|
||||
|
||||
/// <summary>
|
||||
/// Backgrounds for 'My Page' the user has collected.
|
||||
/// </summary>
|
||||
[Key("user_mypage_list")]
|
||||
public List<ulong> MyPageBackgrounds { get; set; } = new List<ulong>();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Advanced Player Data
|
||||
|
||||
/// <summary>
|
||||
/// Maps a deck format (as a string) to info about ranked for that format.
|
||||
/// </summary>
|
||||
[Key("user_rank")]
|
||||
public Dictionary<string, UserRankInfo> UserRankInfo { get; set; } = new Dictionary<string, UserRankInfo>();
|
||||
|
||||
/// <summary>
|
||||
/// The number of ranked matches for each class the user has played.
|
||||
/// </summary>
|
||||
[Key("user_rank_match_list")]
|
||||
public List<UserRankedMatches> UserRankedMatches { get; set; } = new List<UserRankedMatches>();
|
||||
|
||||
/// <summary>
|
||||
/// The daily login bonuses currently going on, including if the player should receive the next reward for any.
|
||||
/// </summary>
|
||||
[Key("daily_login_bonus")]
|
||||
public DailyLoginBonus DailyLoginBonus { get; set; } = new DailyLoginBonus();
|
||||
|
||||
/// <summary>
|
||||
/// User configuration for the arena.
|
||||
/// </summary>
|
||||
[Key("challenge_config")]
|
||||
public ArenaConfig ArenaConfig { get; set; } = new ArenaConfig();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Global Data
|
||||
|
||||
/// <summary>
|
||||
/// Cards that have had their red ether values overriden.
|
||||
/// </summary>
|
||||
[Key("red_ether_overwrite_list")]
|
||||
public List<RedEtherOverride> RedEtherOverrides { get; set; } = new List<RedEtherOverride>();
|
||||
|
||||
/// <summary>
|
||||
/// Cards that are currently undergoing maintenance.
|
||||
/// </summary>
|
||||
[Key("maintenance_card_list")]
|
||||
public List<CardIdentifier> MaintenanceCards { get; set; } = new List<CardIdentifier>();
|
||||
|
||||
/// <summary>
|
||||
/// The arena formats currently available.
|
||||
/// </summary>
|
||||
[Key("arena_info")]
|
||||
public List<ArenaInfo> ArenaInfos { get; set; } = new List<ArenaInfo>();
|
||||
|
||||
/// <summary>
|
||||
/// Dictionary of rank id to information about that rank.
|
||||
/// </summary>
|
||||
[Key("rank_info")]
|
||||
public Dictionary<string, RankInfo> RankInfo { get; set; } = new Dictionary<string, RankInfo>();
|
||||
|
||||
/// <summary>
|
||||
/// Dictionary mapping a class level to information about that level.
|
||||
/// </summary>
|
||||
[Key("class_exp")]
|
||||
public Dictionary<string, ClassExp> ClassExp { get; set; } = new Dictionary<string, ClassExp>();
|
||||
|
||||
/// <summary>
|
||||
/// Card ids that should not show up on loading screen tips.
|
||||
/// </summary>
|
||||
[Key("loading_exclusion_card_list")]
|
||||
public List<long> LoadingTipCardExclusions { get; set; } = new List<long>();
|
||||
|
||||
/// <summary>
|
||||
/// The default settings for every user.
|
||||
/// </summary>
|
||||
[Key("default_setting")]
|
||||
public DefaultSettings DefaultSettings { get; set; } = new DefaultSettings();
|
||||
|
||||
/// <summary>
|
||||
/// Any cards that are restricted in unlimited, and the maximum count that can be run of the card.
|
||||
/// </summary>
|
||||
[Key("unlimited_restricted_base_card_id_list")]
|
||||
public Dictionary<string, int> UnlimitedBanList { get; set; } = new Dictionary<string, int>();
|
||||
|
||||
/// <summary>
|
||||
/// Sets currently available in rotation.
|
||||
/// </summary>
|
||||
[Key("rotation_card_set_id_list")]
|
||||
public List<CardSetIdentifier> RotationSets { get; set; } = new List<CardSetIdentifier>();
|
||||
|
||||
/// <summary>
|
||||
/// Allows cards out of your 'My Rotation' to still be used. TODO investigate
|
||||
/// </summary>
|
||||
[Key("reprinted_base_card_ids")]
|
||||
public Dictionary<string, long> ReprintedCards { get; set; } = new Dictionary<string, long>();
|
||||
|
||||
/// <summary>
|
||||
/// Something to do with destroying cards. TODO investigate
|
||||
/// </summary>
|
||||
[Key("spot_cards")]
|
||||
public Dictionary<string, int> SpotCards { get; set; } = new Dictionary<string, int>();
|
||||
|
||||
/// <summary>
|
||||
/// Info about the next set to be released? TODO investigate
|
||||
/// </summary>
|
||||
[Key("pre_release_info")]
|
||||
public PreReleaseInfo? PreReleaseInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Information for the 'My Rotation' mode.
|
||||
/// </summary>
|
||||
[Key("my_rotation_info")]
|
||||
public MyRotationInfo? MyRotationInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Information about some avatar mode? TODO investigate
|
||||
/// </summary>
|
||||
[Key("avatar_info")]
|
||||
public MyRotationInfo? AvatarRotationInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// List of features that are undergoing maintenance.
|
||||
/// </summary>
|
||||
[Key("feature_maintenance_list")]
|
||||
public List<FeatureMaintenance> FeatureMaintenances { get; set; } = new List<FeatureMaintenance>();
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Special deals on crystal purchases.
|
||||
/// </summary>
|
||||
[Key("special_crystal_info")]
|
||||
public List<SpecialCrystalInfo> SpecialCrystalInfos { get; set; } = new List<SpecialCrystalInfo>();
|
||||
|
||||
/// <summary>
|
||||
/// Current battle pass levels and required points for each.
|
||||
/// </summary>
|
||||
[Key("battle_pass_level_info")]
|
||||
public Dictionary<string, BattlePassLevel>? BattlePassLevelInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Battlefields that can currently be picked.
|
||||
/// </summary>
|
||||
[Key("open_battle_field_id_list")]
|
||||
public Dictionary<string, int> OpenBattlefieldIds { get; set; } = new Dictionary<string, int>();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Misc Data
|
||||
|
||||
/// <summary>
|
||||
/// What loot box features are disabled for this user.
|
||||
/// </summary>
|
||||
[Key("loot_box_regulation")]
|
||||
public LootBoxRegulations LootBoxRegulations { get; set; } = new LootBoxRegulations();
|
||||
|
||||
/// <summary>
|
||||
/// Something about whether the user has an invite notification.
|
||||
/// </summary>
|
||||
[Key("gathering_info")]
|
||||
public GatheringInfo GatheringInfo { get; set; } = new GatheringInfo();
|
||||
|
||||
/// <summary>
|
||||
/// User configuration.
|
||||
/// </summary>
|
||||
[Key("user_config")]
|
||||
public UserConfig UserConfig { get; set; } = new UserConfig();
|
||||
|
||||
#endregion
|
||||
}
|
||||
Reference in New Issue
Block a user