using MessagePack; using SVSim.Database.Models; namespace SVSim.EmulatedEntrypoint.Models.Dtos; [MessagePackObject] public class UserInfo { [Key("device_type")] public int DeviceType { get; set; } [Key("name")] public string Name { get; set; } = string.Empty; [Key("country_code")] public string CountryCode { get; set; } = string.Empty; [Key("max_friend")] public int MaxFriend { get; set; } [Key("last_play_time")] public DateTime LastPlayTime { get; set; } [Key("is_received_two_pick_mission")] public int HasReceivedPickTwoMission { get; set; } [Key("birth")] public long Birthday { get; set; } [Key("selected_emblem_id")] public long SelectedEmblemId { get; set; } [Key("selected_degree_id")] public int SelectedDegreeId { get; set; } [Key("mission_change_time")] public DateTime MissionChangeTime { get; set; } [Key("mission_receive_type")] public int MissionReceiveType { get; set; } [Key("is_official")] public int IsOfficial { get; set; } [Key("is_official_mark_displayed")] public int IsOfficialMarkDisplayed { get; set; } public UserInfo() { } public UserInfo(int deviceType, Viewer viewer) { this.DeviceType = deviceType; this.Name = viewer.DisplayName; this.CountryCode = viewer.Info.CountryCode; this.MaxFriend = viewer.Info.MaxFriends; this.LastPlayTime = viewer.LastLogin; this.HasReceivedPickTwoMission = viewer.MissionData.HasReceivedPickTwoMission ? 1 : 0; this.Birthday = viewer.Info.BirthDate.Ticks; this.SelectedEmblemId = viewer.Info.SelectedEmblem.Id; this.SelectedDegreeId = viewer.Info.SelectedDegree.Id; this.MissionChangeTime = viewer.MissionData.MissionChangeTime; this.MissionReceiveType = viewer.MissionData.MissionReceiveType; this.IsOfficial = viewer.Info.IsOfficial ? 1 : 0; this.IsOfficialMarkDisplayed = viewer.Info.IsOfficialMarkDisplayed ? 1 : 0; } }