diff --git a/.changeset/tricky-cheetahs-eat.md b/.changeset/tricky-cheetahs-eat.md new file mode 100644 index 0000000..7aad637 --- /dev/null +++ b/.changeset/tricky-cheetahs-eat.md @@ -0,0 +1,5 @@ +--- +"@gw2api/types": patch +--- + +Add types for `/v2/guild/upgrades` diff --git a/packages/types/data/guild.ts b/packages/types/data/guild.ts new file mode 100644 index 0000000..335bbe3 --- /dev/null +++ b/packages/types/data/guild.ts @@ -0,0 +1,55 @@ +/** + * GuildUpgrade as returned by `/v2/guild/upgrades` + * @see + */ +export interface GuildUpgrade { + /** The guild upgrade id */ + id: number; + + /** The name of the guild upgrade */ + name: string; + + /** The description of the guild upgrade */ + description: string; + + /** The icon of the guild upgrade */ + icon: string; + + /** The type of guild upgrade */ + type: 'Unlock' | 'Consumable' | 'BankBag' | 'AccumulatingCurrency' | 'Decoration' | 'Boost' | 'Claimable' | 'Hub' | 'GuildHall' | 'Queue' | 'GuildHallExpedition'; + + /** Guild experience awarded upon building the upgrade */ + experience: number; + + /** Required guild upgrade ids */ + prerequisites: number[]; + + /** Required guild level */ + required_level: number; + + // TODO: what unit is this? + /** The time it takes to build this upgrade */ + build_time: number; + + /** Maximum item slots of the guild bank (Only for `BankBag`) */ + bag_max_items?: number; + + /** Maximum coins of the guild bank (Only for `BankBag`)*/ + bag_max_coins?: number; + + /** The cost of building this upgrade */ + costs: { + /** The type of cost */ + type: 'Collectible' | 'Item' | 'Currency' | 'Coins'; + + /** Item id (if type = `Item`) */ + item_id?: number; + + /** The name of this cost */ + name?: string; + + /** The count of this cost */ + count: number; + }[]; + +} diff --git a/packages/types/endpoints.ts b/packages/types/endpoints.ts index 4a9f067..f204358 100644 --- a/packages/types/endpoints.ts +++ b/packages/types/endpoints.ts @@ -10,6 +10,7 @@ import type { Color } from './data/color'; import type { Listing, Price, TransactionCurrent, TransactionHistoric } from './data/commerce'; import type { Createsubtoken } from './data/createsubtoken'; import type { Currency } from './data/currency'; +import type { GuildUpgrade } from './data/guild'; import type { Item } from './data/item'; import type { MaterialCategory } from './data/material'; import type { Quaggan } from './data/quaggan'; @@ -416,6 +417,7 @@ export type EndpointType ? Createsubtoken : Url extends BulkExpandedEndpointUrl<'/v2/colors', number> ? BulkExpandedResponseType<'/v2/colors', Url, number, Color> : Url extends BulkExpandedEndpointUrl<'/v2/currencies', number> ? BulkExpandedResponseType<'/v2/currencies', Url, number, Currency> : + Url extends BulkExpandedEndpointUrl<'/v2/guild/upgrades', number> ? BulkExpandedResponseType<'/v2/guild/upgrades', Url, number, GuildUpgrade> : Url extends BulkExpandedEndpointUrl<'/v2/items', number> ? BulkExpandedResponseType<'/v2/items', Url, number, Item> : Url extends BulkExpandedEndpointUrl<'/v2/materials', number> ? BulkExpandedResponseType<'/v2/materials', Url, number, MaterialCategory> : Url extends BulkExpandedEndpointUrl<'/v2/quaggans', string> ? BulkExpandedResponseType<'/v2/quaggans', Url, string, Quaggan> :