export interface DiscordCommand { name: string; description: string; options?: DiscordCommandOption[]; } export interface DiscordCommandOption { type: number; name: string; description: string; required?: boolean; choices?: DiscordCommandChoice[]; } export interface DiscordCommandChoice { name: string; value: string; } export type TimePeriod = 'hour' | 'day' | 'week' | 'month' | 'year' | 'all'; export const HOT_COMMAND: DiscordCommand = { name: 'hot', description: 'Fetch a random hot post from r/okbuddyumamusume', }; export const ROLEPLAY_COMMAND: DiscordCommand = { name: 'roleplay', description: 'Fetch a random hot roleplay post from r/okbuddyumamusume', }; export const NSFW_COMMAND: DiscordCommand = { name: 'nsfw', description: 'Fetch a random NSFW post from r/okbuddyumamusume (NSFW channels only)', }; export const TOP_COMMAND: DiscordCommand = { name: 'top', description: 'Fetch a random top post from r/okbuddyumamusume (defaults to today)', options: [ { type: 3, name: 'time', description: 'Time period for top posts (defaults to today)', required: false, choices: [ { name: 'Now', value: 'hour', }, { name: 'Today', value: 'day', }, { name: 'This Week', value: 'week', }, { name: 'This Month', value: 'month', }, { name: 'This Year', value: 'year', }, { name: 'All Time', value: 'all', }, ], }, ], };