using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using ServerCore; using ServerBase; using ACCOUNT_ID = System.String; using ACCOUNT_ID_STRING = System.String; using USER_GUID = System.String; using META_ID = System.UInt32; namespace ServerCommon.BusinessLogDomain { public class SnapShotItemLogInfo { [JsonProperty] public META_ID ItemMetaId { get; set; } = 0; [JsonProperty] public UInt16 ItemStackCount { get; set; } = 0; } public class GameLogInOutSnapShotLogInfo : ILogInvoker.IInfo { [JsonProperty] public ACCOUNT_ID AccountId { get; set; } = string.Empty; [JsonProperty] public ACCOUNT_ID_STRING AccountIdString { get; set; } = string.Empty; [JsonProperty] public USER_GUID UserGuid { get; set; } = string.Empty; [JsonProperty] public double Gold { get; set; } = 0; [JsonProperty] public double Sapphire { get; set; } = 0; [JsonProperty] public double Calium { get; set; } = 0; [JsonProperty] public double Ruby { get; set; } = 0; [JsonProperty] public List items { get; set; } = new(); //===================================================================================== // 로그 생성용 객체 정의 //===================================================================================== public GameLogInOutSnapShotLogInfo() : base() { } public void setInfo(GameLogInOutSnapShotLogInfo logInfo) { ArgumentNullReferenceCheckHelper.throwIfNull(logInfo, () => "logInfo is null !!!"); AccountId = logInfo.AccountId; AccountIdString = logInfo.AccountIdString; UserGuid = logInfo.UserGuid; Gold = logInfo.Gold; Sapphire = logInfo.Sapphire; Calium = logInfo.Calium; Ruby = logInfo.Ruby; items = logInfo.items; } //===================================================================================== // 로그 출력용 객체 정의 //===================================================================================== public GameLogInOutSnapShotLogInfo(ILogInvoker parent, GameLogInOutSnapShotLogInfo itemParam) : base(parent) { if (null != itemParam) { setInfo(itemParam); } } } }