Files
Papo/src/commands/tickets/status.ts
2025-11-30 11:04:41 +01:00

34 lines
1.3 KiB
TypeScript

import { SlashCommandBuilder, ChatInputCommandInteraction } from 'discord.js';
import { SlashCommand } from '../../utils/types.js';
import { prisma } from '../../database/index.js';
const command: SlashCommand = {
guildOnly: true,
data: new SlashCommandBuilder()
.setName('ticketstatus')
.setDescription('Ändert den Status des aktuellen Tickets.')
.addStringOption((opt) =>
opt
.setName('status')
.setDescription('Neuer Status')
.addChoices(
{ name: 'Offen', value: 'open' },
{ name: 'In Bearbeitung', value: 'in-progress' },
{ name: 'Geschlossen', value: 'closed' }
)
.setRequired(true)
),
async execute(interaction: ChatInputCommandInteraction) {
const status = interaction.options.getString('status', true) as 'open' | 'in-progress' | 'closed';
const ticket = await prisma.ticket.findFirst({ where: { channelId: interaction.channelId } });
if (!ticket) {
await interaction.reply({ content: 'Kein Ticket in diesem Kanal.', ephemeral: true });
return;
}
await prisma.ticket.update({ where: { id: ticket.id }, data: { status } });
await interaction.reply({ content: `Ticket-Status geändert zu **${status}**.` });
}
};
export default command;