[deploy] fix register schema sortOrder

This commit is contained in:
Pascal Prießnitz
2025-12-03 18:11:44 +01:00
parent a8b4713ffe
commit 86282fbe07
3 changed files with 22 additions and 20 deletions

View File

@@ -177,12 +177,12 @@ model RegisterForm {
} }
model RegisterFormField { model RegisterFormField {
id String @id @default(cuid()) id String @id @default(cuid())
formId String formId String
label String label String
type String type String
required Boolean @default(false) required Boolean @default(false)
"order" Int @default(0) sortOrder Int @default(0)
form RegisterForm @relation(fields: [formId], references: [id], onDelete: Cascade) form RegisterForm @relation(fields: [formId], references: [id], onDelete: Cascade)
} }

View File

@@ -179,12 +179,12 @@ model RegisterForm {
} }
model RegisterFormField { model RegisterFormField {
id String @id @default(cuid()) id String @id @default(cuid())
formId String formId String
label String label String
type String type String
required Boolean @default(false) required Boolean @default(false)
"order" Int @default(0) sortOrder Int @default(0)
form RegisterForm @relation(fields: [formId], references: [id], onDelete: Cascade) form RegisterForm @relation(fields: [formId], references: [id], onDelete: Cascade)
} }

View File

@@ -23,7 +23,7 @@ export class RegisterService {
} }
public async listForms(guildId: string) { public async listForms(guildId: string) {
return prisma.registerForm.findMany({ where: { guildId }, include: { fields: { orderBy: { order: 'asc' } } }, orderBy: { createdAt: 'desc' } }); return prisma.registerForm.findMany({ where: { guildId }, include: { fields: { orderBy: { sortOrder: 'asc' } } }, orderBy: { createdAt: 'desc' } });
} }
public async saveForm(form: { public async saveForm(form: {
@@ -55,10 +55,10 @@ export class RegisterService {
label: f.label, label: f.label,
type: f.type, type: f.type,
required: f.required ?? false, required: f.required ?? false,
order: f.order ?? idx sortOrder: f.order ?? idx
})) }))
}); });
return prisma.registerForm.findUnique({ where: { id: form.id }, include: { fields: { orderBy: { order: 'asc' } } } }); return prisma.registerForm.findUnique({ where: { id: form.id }, include: { fields: { orderBy: { sortOrder: 'asc' } } } });
} }
const created = await prisma.registerForm.create({ const created = await prisma.registerForm.create({
data: { data: {
@@ -73,11 +73,11 @@ export class RegisterService {
label: f.label, label: f.label,
type: f.type, type: f.type,
required: f.required ?? false, required: f.required ?? false,
order: f.order ?? idx sortOrder: f.order ?? idx
})) }))
} }
}, },
include: { fields: { orderBy: { order: 'asc' } } } include: { fields: { orderBy: { sortOrder: 'asc' } } }
}); });
return created; return created;
} }
@@ -113,7 +113,7 @@ export class RegisterService {
public async handleButton(interaction: ButtonInteraction) { public async handleButton(interaction: ButtonInteraction) {
if (interaction.customId.startsWith('register:form:')) { if (interaction.customId.startsWith('register:form:')) {
const formId = interaction.customId.split(':')[2]; const formId = interaction.customId.split(':')[2];
const form = await prisma.registerForm.findFirst({ where: { id: formId }, include: { fields: { orderBy: { order: 'asc' } } } }); const form = await prisma.registerForm.findFirst({ where: { id: formId }, include: { fields: { orderBy: { sortOrder: 'asc' } } } });
if (!form) return interaction.reply({ content: 'Formular nicht gefunden.', ephemeral: true }); if (!form) return interaction.reply({ content: 'Formular nicht gefunden.', ephemeral: true });
const modal = new ModalBuilder().setTitle(form.name).setCustomId(`register:submit:${form.id}`); const modal = new ModalBuilder().setTitle(form.name).setCustomId(`register:submit:${form.id}`);
const components: any[] = []; const components: any[] = [];
@@ -164,7 +164,7 @@ export class RegisterService {
const formId = interaction.customId.split(':')[2]; const formId = interaction.customId.split(':')[2];
const form = await prisma.registerForm.findFirst({ const form = await prisma.registerForm.findFirst({
where: { id: formId }, where: { id: formId },
include: { fields: { orderBy: { order: 'asc' } } } include: { fields: { orderBy: { sortOrder: 'asc' } } }
}); });
if (!form) { if (!form) {
await interaction.reply({ content: 'Formular nicht gefunden.', ephemeral: true }); await interaction.reply({ content: 'Formular nicht gefunden.', ephemeral: true });
@@ -200,7 +200,7 @@ export class RegisterService {
const channel = await guild.channels.fetch(channelId).catch(() => null); const channel = await guild.channels.fetch(channelId).catch(() => null);
if (!channel || !channel.isTextBased()) return; if (!channel || !channel.isTextBased()) return;
const member = await guild.members.fetch(userId).catch(() => null); const member = await guild.members.fetch(userId).catch(() => null);
const fields = await prisma.registerFormField.findMany({ where: { formId: form.id }, orderBy: { order: 'asc' } }); const fields = await prisma.registerFormField.findMany({ where: { formId: form.id }, orderBy: { sortOrder: 'asc' } });
const answers = await prisma.registerApplicationAnswer.findMany({ where: { applicationId: app.id } }); const answers = await prisma.registerApplicationAnswer.findMany({ where: { applicationId: app.id } });
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle(`Registrierung: ${form.name}`) .setTitle(`Registrierung: ${form.name}`)
@@ -254,3 +254,5 @@ export class RegisterService {
}); });
} }
} }