using System.Collections.Generic; using System.Text.Json.Serialization; using JpnCardsPokemon.Sdk.Utils.JsonConverter; namespace JpnCardsPokemon.Sdk.Api; /// /// Represents a card object from the web api. /// public class Card { /// /// The name of the card. /// public string? Name { get; set; } /// /// The internal identification number that the card is given. Used to query for this single card. /// public int Id { get; set; } /// /// Reduced information about the set the card belongs to. /// /// May contain basic information only. It´s recommended to fetch the fully separately. [JsonPropertyName("setData")] public Set? Set { get; set; } /// /// The energy type of types the card is. /// /// Almost always will be a single value. public string[]? Types { get; set; } /// /// The amount of HP the card has. /// /// If the card does not have HP, the value will be -1. public int Hp { get; set; } = -1; /// /// If the card evolves from another card, this field will denote the name of the pre-evolution. /// public string? EvolvesFrom { get; set; } // TODO: Type of property is not documented. Has to be evaluated at a later time. // public Effect? Effect { get; set; } // TODO: Type of property is not documented. Has to be evaluated at a later time. // public Attack[]? Attacks { get; set; } /// /// Describes rules the card is bound to. Mainly for cards with a rule box and certain Trainers. /// public string[]? Rules { get; set; } // TODO: Type of property is not documented. Has to be evaluated at a later time. // public Weakness[]? Weaknesses { get; set; } // TODO: Type of property is not documented. Has to be evaluated at a later time. // public Resistance[]? Resistances { get; set; } /// /// A list of known prices for this card. /// /// May contain entries from different sellers, versions and conditions. [JsonConverter(typeof(CardPricesJsonConverter))] public IEnumerable? Prices { get; set; } /// /// List of the energies required to retreat. /// [JsonPropertyName("retreatCost")] public string[]? RetreatCosts { get; set; } /// /// The total number of energies needed to retreat. /// public int? ConvertedRetreatCost { get; set; } /// /// The supertype the card is. /// /// Only possibilities are 'Pokemon', 'Trainer' or 'Energy'. public string? Supertype { get; set; } /// /// The subsets that the card falls into. For example 'Single Strike Pokemon', 'Pokemon VMAX', etc. /// public string[]? Subtypes { get; set; } /// /// The rarity of the card. /// public string? Rarity { get; set; } // TODO: Type of property is not documented. Has to be evaluated at a later time. // public Legality[]? Legalities { get; set; } /// /// The card art's artist. /// public string? Artist { get; set; } /// /// The url pointing to the card's image. /// /// /// If there is no card image, then this will instead point to /// https://assets.tcgcollector.com/build/images/default-card-image.789f6232.png. /// public string? ImageUrl { get; set; } /// /// The URL which leads to the original card URL data. /// public string? CardUrl { get; set; } /// /// The sequential number of the card (applicable to Secret Rares). /// [JsonPropertyName("sequenceNumber")] public int Number { get; set; } /// /// The number printed on the card. Will be the same as almost always. Is relevant for /// promotional cards, such as SWSH001. /// public string? PrintedNumber { get; set; } /// /// A stable id for earch card. Output is an eight digit integer which is unique for each card. While the cards' /// may change over time, the uuid should always remain stable and constant. /// public int Uuid { get; set; } }