108 lines
3.5 KiB
Go
108 lines
3.5 KiB
Go
package main
|
|
|
|
// Card represents the structure of a card in the API response.
|
|
type Card struct {
|
|
ID string `json:"id"`
|
|
Slug string `json:"slug"`
|
|
Name string `json:"name"`
|
|
Hotscore int `json:"hotscore"`
|
|
Guardian Guardian `json:"guardian"`
|
|
Elements []Element `json:"elements"`
|
|
Variants []Variant `json:"variants"`
|
|
}
|
|
|
|
// Guardian represents the structure of a guardian in the card details.
|
|
type Guardian struct {
|
|
ID string `json:"id"`
|
|
Type string `json:"type"`
|
|
Rarity string `json:"rarity"`
|
|
TypeText string `json:"typeText"`
|
|
SubType string `json:"subType"`
|
|
RulesText string `json:"rulesText"`
|
|
Cost int `json:"cost"`
|
|
Attack *int `json:"attack"`
|
|
Defense *int `json:"defense"`
|
|
Life *int `json:"life"`
|
|
WaterThreshold int `json:"waterThreshold"`
|
|
EarthThreshold int `json:"earthThreshold"`
|
|
FireThreshold int `json:"fireThreshold"`
|
|
AirThreshold int `json:"airThreshold"`
|
|
CardID string `json:"cardId"`
|
|
}
|
|
|
|
// Element represents the structure of an element in the card details.
|
|
type Element struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
// Variant represents the structure of a variant in the card details.
|
|
type Variant struct {
|
|
ID string `json:"id"`
|
|
Slug string `json:"slug"`
|
|
Src string `json:"src"`
|
|
Finish string `json:"finish"`
|
|
Product string `json:"product"`
|
|
Artist string `json:"artist"`
|
|
FlavorText string `json:"flavorText"`
|
|
CardID string `json:"cardId"`
|
|
SetCardID string `json:"setCardId"`
|
|
SetCard SetCard `json:"setCard"`
|
|
}
|
|
|
|
// SetCard represents the structure of a set card in the card details.
|
|
type SetCard struct {
|
|
ID string `json:"id"`
|
|
Slug string `json:"slug"`
|
|
SetID string `json:"setId"`
|
|
CardID string `json:"cardId"`
|
|
Meta MetaData `json:"meta"`
|
|
SetDetails SetDetails `json:"set"`
|
|
}
|
|
|
|
// MetaData represents the structure of meta data in the set card details.
|
|
type MetaData struct {
|
|
ID string `json:"id"`
|
|
Type string `json:"type"`
|
|
Rarity string `json:"rarity"`
|
|
TypeText string `json:"typeText"`
|
|
SubType string `json:"subType"`
|
|
RulesText string `json:"rulesText"`
|
|
Cost int `json:"cost"`
|
|
Attack *int `json:"attack"`
|
|
Defense *int `json:"defense"`
|
|
Life *int `json:"life"`
|
|
WaterThreshold int `json:"waterThreshold"`
|
|
EarthThreshold int `json:"earthThreshold"`
|
|
FireThreshold int `json:"fireThreshold"`
|
|
AirThreshold int `json:"airThreshold"`
|
|
SetCardID string `json:"setCardId"`
|
|
}
|
|
|
|
// SetDetails represents the structure of set details in the set card.
|
|
type SetDetails struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
ReleaseDate string `json:"releaseDate"`
|
|
}
|
|
|
|
// JSONPayload represents the structure of the nested JSON for the API request.
|
|
type JSONPayload struct {
|
|
Query string `json:"query"`
|
|
Sort string `json:"sort"`
|
|
Set string `json:"set"`
|
|
Filters []interface{} `json:"filters"`
|
|
Limit int `json:"limit"`
|
|
VariantLimit bool `json:"variantLimit"`
|
|
CollectionLimit bool `json:"collectionLimit"`
|
|
Cursor int `json:"cursor"`
|
|
Direction string `json:"direction"`
|
|
}
|
|
|
|
// Input represents the top-level structure of the input JSON for the API request.
|
|
type Input struct {
|
|
Part0 struct {
|
|
JSON JSONPayload `json:"json"`
|
|
} `json:"0"`
|
|
}
|