feat: initial Papo bot scaffold

This commit is contained in:
Pascal.P
2025-11-30 11:04:41 +01:00
commit 000481a3b0
12168 changed files with 1584750 additions and 0 deletions

5
src/utils/logger.ts Normal file
View File

@@ -0,0 +1,5 @@
export const logger = {
info: (msg: string) => console.log(`[INFO] ${msg}`),
warn: (msg: string) => console.warn(`[WARN] ${msg}`),
error: (msg: string, err?: unknown) => console.error(`[ERROR] ${msg}`, err)
};

43
src/utils/types.ts Normal file
View File

@@ -0,0 +1,43 @@
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;
}