import { Embed, EmbedImage } from "@fosscord/server-util"; import { Length } from "../util/instanceOf"; export const MessageCreateSchema = { $content: new Length(String, 0, 2000), $nonce: String, $tts: Boolean, $embed: { $title: new Length(String, 0, 256), //title of embed $type: String, // type of embed (always "rich" for webhook embeds) $description: new Length(String, 0, 2048), // description of embed $url: String, // url of embed $timestamp: String, // ISO8601 timestamp $color: Number, // color code of the embed $footer: { text: new Length(String, 0, 2048), icon_url: String, proxy_icon_url: String, }, // footer object footer information $image: EmbedImage, // image object image information $thumbnail: EmbedImage, // thumbnail object thumbnail information $video: EmbedImage, // video object video information $provider: { name: String, url: String, }, // provider object provider information $author: { name: new Length(String, 0, 256), url: String, icon_url: String, proxy_icon_url: String, }, // author object author information $fields: new Length( [ { name: new Length(String, 0, 256), value: new Length(String, 0, 1024), $inline: Boolean, }, ], 0, 25 ), }, $allowed_mentions: [], $message_reference: { message_id: String, channel_id: String, $guild_id: String, $fail_if_not_exists: Boolean, }, $payload_json: String, $file: Object, }; export interface MessageCreateSchema { content?: string; nonce?: string; tts?: boolean; embed?: Embed & { timestamp?: string }; allowed_mentions?: []; message_reference?: { message_id: string; channel_id: string; guild_id?: string; fail_if_not_exists: boolean; }; payload_json?: string; }