@space-cow-media/spellbook-client
Version:
An Open Api generated client for the Commander Spellbook backend REST API.
224 lines (210 loc) • 7.62 kB
text/typescript
/* tslint:disable */
/* eslint-disable */
/**
* Commander Spellbook API
* API for Commander Spellbook, the combo database engine for Magic: The Gathering
*
* The version of the OpenAPI document: 4.8.19
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { mapValues } from '../runtime';
import type { FeatureProducedInVariantSuggestion } from './featureProducedInVariantSuggestion';
import {
FeatureProducedInVariantSuggestionFromJSON,
FeatureProducedInVariantSuggestionFromJSONTyped,
FeatureProducedInVariantSuggestionToJSON,
FeatureProducedInVariantSuggestionToJSONTyped,
} from './featureProducedInVariantSuggestion';
import type { User } from './user';
import {
UserFromJSON,
UserFromJSONTyped,
UserToJSON,
UserToJSONTyped,
} from './user';
import type { CardUsedInVariantSuggestion } from './cardUsedInVariantSuggestion';
import {
CardUsedInVariantSuggestionFromJSON,
CardUsedInVariantSuggestionFromJSONTyped,
CardUsedInVariantSuggestionToJSON,
CardUsedInVariantSuggestionToJSONTyped,
} from './cardUsedInVariantSuggestion';
import type { TemplateRequiredInVariantSuggestion } from './templateRequiredInVariantSuggestion';
import {
TemplateRequiredInVariantSuggestionFromJSON,
TemplateRequiredInVariantSuggestionFromJSONTyped,
TemplateRequiredInVariantSuggestionToJSON,
TemplateRequiredInVariantSuggestionToJSONTyped,
} from './templateRequiredInVariantSuggestion';
import type { SuggestionStatusEnum } from './suggestionStatusEnum';
import {
SuggestionStatusEnumFromJSON,
SuggestionStatusEnumFromJSONTyped,
SuggestionStatusEnumToJSON,
SuggestionStatusEnumToJSONTyped,
} from './suggestionStatusEnum';
/**
*
* @export
* @interface VariantSuggestion
*/
export interface VariantSuggestion {
/**
*
* @type {number}
* @memberof VariantSuggestion
*/
readonly id: number;
/**
* Suggestion status for editors
*
* * `N` - New
* * `AD` - Awaiting Discussion
* * `PA` - Pending Approval
* * `A` - Accepted
* * `R` - Rejected
* @type {SuggestionStatusEnum}
* @memberof VariantSuggestion
*/
readonly status: SuggestionStatusEnum;
/**
*
* @type {Array<CardUsedInVariantSuggestion>}
* @memberof VariantSuggestion
*/
uses: Array<CardUsedInVariantSuggestion>;
/**
*
* @type {Array<TemplateRequiredInVariantSuggestion>}
* @memberof VariantSuggestion
*/
requires: Array<TemplateRequiredInVariantSuggestion>;
/**
*
* @type {Array<FeatureProducedInVariantSuggestion>}
* @memberof VariantSuggestion
*/
produces: Array<FeatureProducedInVariantSuggestion>;
/**
* If this suggestion is a variant of an existing one, link it here.
* @type {string}
* @memberof VariantSuggestion
*/
variantOf: string | null;
/**
* Mana needed for this combo. Use the {1}{W}{U}{B}{R}{G}{B/P}... format.
* @type {string}
* @memberof VariantSuggestion
*/
manaNeeded: string;
/**
* Easily achievable prerequisites for this combo.
* @type {string}
* @memberof VariantSuggestion
*/
easyPrerequisites: string;
/**
* Notable prerequisites for this combo.
* @type {string}
* @memberof VariantSuggestion
*/
notablePrerequisites: string;
/**
* Long description, in steps
* @type {string}
* @memberof VariantSuggestion
*/
description: string;
/**
* Is this combo a spoiler?
* @type {boolean}
* @memberof VariantSuggestion
*/
spoiler: boolean;
/**
* Comment written by the user that suggested this
* @type {string}
* @memberof VariantSuggestion
*/
comment: string;
/**
*
* @type {User}
* @memberof VariantSuggestion
*/
readonly suggestedBy: User;
/**
*
* @type {Date}
* @memberof VariantSuggestion
*/
readonly created: Date;
}
/**
* Check if a given object implements the VariantSuggestion interface.
*/
export function instanceOfVariantSuggestion(value: object): value is VariantSuggestion {
if (!('id' in value) || value['id'] === undefined) return false;
if (!('status' in value) || value['status'] === undefined) return false;
if (!('uses' in value) || value['uses'] === undefined) return false;
if (!('requires' in value) || value['requires'] === undefined) return false;
if (!('produces' in value) || value['produces'] === undefined) return false;
if (!('variantOf' in value) || value['variantOf'] === undefined) return false;
if (!('manaNeeded' in value) || value['manaNeeded'] === undefined) return false;
if (!('easyPrerequisites' in value) || value['easyPrerequisites'] === undefined) return false;
if (!('notablePrerequisites' in value) || value['notablePrerequisites'] === undefined) return false;
if (!('description' in value) || value['description'] === undefined) return false;
if (!('spoiler' in value) || value['spoiler'] === undefined) return false;
if (!('comment' in value) || value['comment'] === undefined) return false;
if (!('suggestedBy' in value) || value['suggestedBy'] === undefined) return false;
if (!('created' in value) || value['created'] === undefined) return false;
return true;
}
export function VariantSuggestionFromJSON(json: any): VariantSuggestion {
return VariantSuggestionFromJSONTyped(json, false);
}
export function VariantSuggestionFromJSONTyped(json: any, ignoreDiscriminator: boolean): VariantSuggestion {
if (json == null) {
return json;
}
return {
'id': json['id'],
'status': SuggestionStatusEnumFromJSON(json['status']),
'uses': ((json['uses'] as Array<any>).map(CardUsedInVariantSuggestionFromJSON)),
'requires': ((json['requires'] as Array<any>).map(TemplateRequiredInVariantSuggestionFromJSON)),
'produces': ((json['produces'] as Array<any>).map(FeatureProducedInVariantSuggestionFromJSON)),
'variantOf': json['variantOf'],
'manaNeeded': json['manaNeeded'],
'easyPrerequisites': json['easyPrerequisites'],
'notablePrerequisites': json['notablePrerequisites'],
'description': json['description'],
'spoiler': json['spoiler'],
'comment': json['comment'],
'suggestedBy': UserFromJSON(json['suggestedBy']),
'created': (new Date(json['created'])),
};
}
export function VariantSuggestionToJSON(json: any): VariantSuggestion {
return VariantSuggestionToJSONTyped(json, false);
}
export function VariantSuggestionToJSONTyped(value?: Omit<VariantSuggestion, 'id'|'status'|'suggestedBy'|'created'> | null, ignoreDiscriminator: boolean = false): any {
if (value == null) {
return value;
}
return {
'uses': ((value['uses'] as Array<any>).map(CardUsedInVariantSuggestionToJSON)),
'requires': ((value['requires'] as Array<any>).map(TemplateRequiredInVariantSuggestionToJSON)),
'produces': ((value['produces'] as Array<any>).map(FeatureProducedInVariantSuggestionToJSON)),
'variantOf': value['variantOf'],
'manaNeeded': value['manaNeeded'],
'easyPrerequisites': value['easyPrerequisites'],
'notablePrerequisites': value['notablePrerequisites'],
'description': value['description'],
'spoiler': value['spoiler'],
'comment': value['comment'],
};
}