diff options
Diffstat (limited to 'api/src/schema/Guild.ts')
-rw-r--r-- | api/src/schema/Guild.ts | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/api/src/schema/Guild.ts b/api/src/schema/Guild.ts new file mode 100644 index 00000000..0443e64c --- /dev/null +++ b/api/src/schema/Guild.ts @@ -0,0 +1,131 @@ +import { ChannelSchema, GuildChannel } from "@fosscord/server-util"; +import { Length } from "../util/instanceOf"; + +export const GuildCreateSchema = { + name: new Length(String, 2, 100), + $region: String, // auto complete voice region of the user + $icon: String, + $channels: [Object], + $guild_template_code: String, + $system_channel_id: String, + $rules_channel_id: String +}; + +export interface GuildCreateSchema { + name: string; + region?: string; + icon?: string; + channels?: GuildChannel[]; + guild_template_code?: string; + system_channel_id?: string; + rules_channel_id?: string; +} + +export const GuildUpdateSchema = { + ...GuildCreateSchema, + name: undefined, + $name: new Length(String, 2, 100), + $banner: String, + $splash: String, + $description: String, + $features: [String], + $icon: String, + $verification_level: Number, + $default_message_notifications: Number, + $system_channel_flags: Number, + $system_channel_id: String, + $explicit_content_filter: Number, + $public_updates_channel_id: String, + $afk_timeout: Number, + $afk_channel_id: String, + $preferred_locale: String +}; +// @ts-ignore +delete GuildUpdateSchema.$channels; + +export interface GuildUpdateSchema extends Omit<GuildCreateSchema, "channels"> { + banner?: string; + splash?: string; + description?: string; + features?: [string]; + verification_level?: number; + default_message_notifications?: number; + system_channel_flags?: number; + explicit_content_filter?: number; + public_updates_channel_id?: string; + afk_timeout?: number; + afk_channel_id?: string; + preferred_locale?: string; +} + +export const GuildGetSchema = { + id: true, + name: true, + icon: true, + splash: true, + discovery_splash: true, + owner: true, + owner_id: true, + permissions: true, + region: true, + afk_channel_id: true, + afk_timeout: true, + widget_enabled: true, + widget_channel_id: true, + verification_level: true, + default_message_notifications: true, + explicit_content_filter: true, + roles: true, + emojis: true, + features: true, + mfa_level: true, + application_id: true, + system_channel_id: true, + system_channel_flags: true, + rules_channel_id: true, + joined_at: true, + // large: true, + // unavailable: true, + member_count: true, + // voice_states: true, + // members: true, + // channels: true, + // presences: true, + max_presences: true, + max_members: true, + vanity_url_code: true, + description: true, + banner: true, + premium_tier: true, + premium_subscription_count: true, + preferred_locale: true, + public_updates_channel_id: true, + max_video_channel_users: true, + approximate_member_count: true, + approximate_presence_count: true + // welcome_screen: true, +}; + +export const GuildTemplateCreateSchema = { + name: String, + $avatar: String +}; + +export interface GuildTemplateCreateSchema { + name: string; + avatar?: string; +} + +export const GuildAddChannelToWelcomeScreenSchema = { + channel_id: String, + description: String, + $emoji_id: String, + emoji_name: String +}; + +export interface GuildAddChannelToWelcomeScreenSchema { + channel_id: string; + description: string; + emoji_id?: string; + emoji_name: string; +} |