summary refs log tree commit diff
path: root/rtc/src/models/Application.ts
diff options
context:
space:
mode:
Diffstat (limited to 'rtc/src/models/Application.ts')
-rw-r--r--rtc/src/models/Application.ts67
1 files changed, 67 insertions, 0 deletions
diff --git a/rtc/src/models/Application.ts b/rtc/src/models/Application.ts
new file mode 100644

index 00000000..fae6e8db --- /dev/null +++ b/rtc/src/models/Application.ts
@@ -0,0 +1,67 @@ +import { Team } from "./Team"; + +export interface Application { + id: string; + name: string; + icon: string | null; + description: string; + rpc_origins: string[] | null; + bot_public: boolean; + bot_require_code_grant: boolean; + terms_of_service_url: string | null; + privacy_policy_url: string | null; + owner_id: string; + summary: string | null; + verify_key: string; + team: Team | null; + guild_id: string; // if this application is a game sold on Discord, this field will be the guild to which it has been linked + primary_sku_id: string | null; // if this application is a game sold on Discord, this field will be the id of the "Game SKU" that is created, if exists + slug: string | null; // if this application is a game sold on Discord, this field will be the URL slug that links to the store page + cover_image: string | null; // the application's default rich presence invite cover image hash + flags: number; // the application's public flags +} + +export interface ApplicationCommand { + id: string; + application_id: string; + name: string; + description: string; + options?: ApplicationCommandOption[]; +} + +export interface ApplicationCommandOption { + type: ApplicationCommandOptionType; + name: string; + description: string; + required?: boolean; + choices?: ApplicationCommandOptionChoice[]; + options?: ApplicationCommandOption[]; +} + +export interface ApplicationCommandOptionChoice { + name: string; + value: string | number; +} + +export enum ApplicationCommandOptionType { + SUB_COMMAND = 1, + SUB_COMMAND_GROUP = 2, + STRING = 3, + INTEGER = 4, + BOOLEAN = 5, + USER = 6, + CHANNEL = 7, + ROLE = 8, +} + +export interface ApplicationCommandInteractionData { + id: string; + name: string; + options?: ApplicationCommandInteractionDataOption[]; +} + +export interface ApplicationCommandInteractionDataOption { + name: string; + value?: any; + options?: ApplicationCommandInteractionDataOption[]; +}