using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using static System.Runtime.InteropServices.JavaScript.JSType; namespace GameServer { namespace NFT { public class NFTInfo { [JsonProperty("id")] public string Id { get; set; } = string.Empty; // NFT Asset 내부 관리 DB의 Key (DB 저장 시 Incremental) [JsonProperty("projectName")] public string ProjectName { get; set; } = string.Empty; // 프로젝트 고유 식별자 [JsonProperty("contractAddress")] public string ContractAddress { get; set; } = string.Empty; // 컨트랙트 주소 [JsonProperty("blockchainNetwork")] public string BlockchainNetwork { get; set; } = string.Empty; // 블록체인 네트워크 (메인넷 또는 테스트넷) [JsonProperty("tokenId")] public Int32 TokenId { get; set; } = 0; // 토큰 ID [JsonProperty("owner")] public string Owner { get; set; } = string.Empty; // 소유자 [JsonProperty("name")] public string Name { get; set; } = string.Empty; // NFT명 [JsonProperty("description")] public string Description { get; set; } = string.Empty; // 설명 [JsonProperty("imageUrl")] public string ImageUrl { get; set; } = string.Empty; // Image Resource Url [JsonProperty("isStaked")] public Int32 IsStaked { get; set; } = 0; // Staking 상태: 1, 보유 상태: 0 [JsonProperty("attributes")] public List Attributes { get; set; } = new List(); // 속성 목록 [JsonProperty("unstakingDisabled")] public Int32 UnstakingDisabled { get; set; } = 0; // 인벤토리의 NFT를 외부지갑으로 전송가능: 1, 인벤토리의 NFT를 외부지갑으로 전송 불가능: 0 } public class Attribute { [JsonProperty("trait_type")] public string TraitType { get; set; } = string.Empty; // 속성명 [JsonProperty("value")] public string Value { get; set; } = string.Empty; // 속성값 } } }