44 lines
995 B
TypeScript
44 lines
995 B
TypeScript
import { SlashCommandBuilder, ChatInputCommandInteraction, PermissionResolvable, Client } from 'discord.js';
|
|
|
|
export interface SlashCommand {
|
|
data: SlashCommandBuilder;
|
|
execute: (interaction: ChatInputCommandInteraction, client: Client) => Promise<void>;
|
|
cooldown?: number;
|
|
requiredPermissions?: PermissionResolvable[];
|
|
guildOnly?: boolean;
|
|
}
|
|
|
|
export interface EventHandler {
|
|
name: string;
|
|
once?: boolean;
|
|
execute: (...args: any[]) => Promise<void> | void;
|
|
}
|
|
|
|
export interface TicketRecord {
|
|
id: string;
|
|
userId: string;
|
|
channelId: string;
|
|
guildId: string;
|
|
topic?: string;
|
|
priority?: 'low' | 'normal' | 'high';
|
|
status: 'open' | 'in-progress' | 'closed';
|
|
claimedBy?: string;
|
|
transcript?: string;
|
|
}
|
|
|
|
export interface ForumUser {
|
|
discordId: string;
|
|
forumUserId: string;
|
|
username?: string;
|
|
}
|
|
|
|
export interface ForumRoleSync {
|
|
discordRoleId: string;
|
|
forumRoleId: string;
|
|
}
|
|
|
|
export interface ForumTicketLink {
|
|
ticketId: string;
|
|
forumThreadId?: string;
|
|
}
|