//using Amazon.DynamoDBv2.DocumentModel; //using Google.Protobuf.WellKnownTypes; //using Newtonsoft.Json; //namespace ServerCommon.DB //{ // public class ItemAttr // { // public string Owner = string.Empty; // public string ItemGuid = string.Empty; // public int ItemId = 0; // public int Count = 0; // public int Level = 0; // public List AttributeIds = new(); // public Timestamp CreateTime = new(); // public Timestamp UpdateTime = new(); // } // public class ItemEntity // { // / // / DB PK에 사용되는 ItemGuid // / // public string PK_Guid { get; private set; } = string.Empty; // / // / DB SK에 사용되는 ItemGuid // / // public string SK_Guid { get; private set; } = string.Empty; // public ItemAttr Attr { get; private set; } = new(); // public ItemEntity(int itemId, int itemCount, int level, List attributeIds) // { // var itemGuid = Guid.NewGuid().ToString("N"); // PK_Guid = itemGuid; // SK_Guid = itemGuid; // Attr.ItemGuid = itemGuid; // Attr.ItemId = itemId; // Attr.Count = itemCount; // Attr.Level = level; // Attr.AttributeIds = attributeIds; // Attr.CreateTime = Timestamp.FromDateTime(DateTime.UtcNow); // Attr.UpdateTime = Timestamp.FromDateTime(DateTime.UtcNow); // } // public ItemEntity(Document document) // { // ReadFrom(document); // } // public void ReadFrom(Document document) // { // PK_Guid = document["PK"].AsString().Replace(MainDB.GetPKPrefix(EEntityType.Item), ""); // SK_Guid = document["SK"].AsString().Replace(MainDB.GetSKPrefix(EEntityType.Item), ""); // var attr = JsonConvert.DeserializeObject(document["Attr"].AsString()); // if (attr == null) // throw new Exception("Attr DeserializeObject error"); // Attr = attr; // } // public Document DocumentForUpdate() // { // var document = new Document(); // document["PK"] = MainDB.MakePK(EEntityType.Item, PK_Guid); // document["SK"] = MainDB.MakeSK(EEntityType.Item, SK_Guid); // document["Attr"] = JsonConvert.SerializeObject(Attr); // return document; // } // public ItemBase ConvetToItem() // { // ItemBase item = new Item(); // item.ItemGuid = Attr.ItemGuid; // item.ItemId = Attr.ItemId; // item.Count = Attr.Count; // item.Level = Attr.Level; // item.Attributeids.AddRange(Attr.AttributeIds); // item.CreateTime = Attr.CreateTime; // item.UpdateTime = Attr.UpdateTime; // return item; // } // } //}