export interface ForeignData { flavorText: string; language: string; multiverseId: number; name: string; text: string; type: string; } export interface Legalities { commander: string; duel: string; legacy: string; modern: string; vintage: string; } export interface Prices { mtgo: Record; mtgoFoil: Record; paper: Record; paperFoil: Record; } export interface PurchaseUrls { cardmarket: string; tcgplayer: string; } export interface MCMCard { artist: string; borderColor: string; colorIdentity: string[]; colors: string[]; convertedManaCost: number; edhrecRank: number; flavorText: string; foreignData: ForeignData[]; frameVersion: string; hasFoil: boolean; hasNonFoil: boolean; isMtgo: boolean; isPaper: boolean; layout: string; legalities: Legalities; manaCost: string; mcmId: number; mcmMetaId: number; mtgoFoilId: number; mtgoId: number; multiverseId: number; name: string; number: string; originalText: string; originalType: string; power: string; prices: Prices; printings: string[]; purchaseUrls: PurchaseUrls; rarity: string; rulings: any[]; scryfallId: string; scryfallIllustrationId: string; scryfallOracleId: string; subtypes: string[]; supertypes: any[]; tcgplayerProductId: number; text: string; toughness: string; type: string; types: string[]; uuid: string; set: string; } export type MCMDB = Record; // Lighther version of MCMCard without a lot of useless information export interface LeanMCMCard { colorIdentity: string[]; colors: string[]; convertedManaCost: number; edhrecRank: number; manaCost: string; mcmId: number; name: string; rarity: string; scryfallId: string; subtypes: string[]; supertypes: any[]; text: string; type: string; types: string[]; set: string; } export interface Language { idLanguage: number; languageName: string; } export interface Link { rel: string; href: string; method: string; action: string; idArticle?: number; } export interface Article { idArticle: number; idProduct: number; language: Language; comments: string; price: number; count: number; inShoppingCart: boolean; condition: string; isFoil: boolean; isSigned: boolean; isPlayset: boolean; isAltered: boolean; links: Link[]; } export interface LeanArticle { idArticle: number; language: string; comments: string; price: number; count: number; condition: string; } export type CardItem = LeanMCMCard & LeanArticle;