我尝试在票证中的模型公会中创建多个记录。它是一个数据库,其中包含来自公会的所有有效开放门票。
但是,如果我想创建第二条记录,因为打开了第二张票证,它只会更新票证中已存在的条目,但我想创建一个新记录。
我现在不知道做错了什么,请寻求帮助......
async function storeTicketData(guildId, ticketChannelID, ticketData) {
try {
await prisma.ticket.create({
data: {
guild: {
connect: { guildId: guildId.toString() }
},
ticketId: ticketData.ticketId || 0,
channel: BigInt(ticketChannelID),
owner: BigInt(ticketData.ticketOwner),
state: ticketData.state || 'open',
claimedBy: ticketData.claimedBy || null,
addedUsers: ticketData.addedUsers || [],
interactions: ticketData.interactions || [],
history: ticketData.history || [],
timer: ticketData.timer || false,
timerEnd: ticketData.timerEnd || null,
transcriptPermissions: ticketData.transcriptPermissions || ["private"],
transcriptUrl: ticketData.transcriptUrl || "",
panelId: ticketData.ticketPanelId,
}
});
} catch (error) {
if (error.code === 'P2002') {
console.error('Ticket with channel-id already exist in ticket database:', error);
} else {
console.error('Error on saving ticket to ticket database:', error);
}
}
}
model Guild {
id Int @id @default(autoincrement())
guildId String @unique
locale String @default("en-US")
createdAt DateTime @default(now())
updatedAt DateTime? @updatedAt
TicketModule TicketModule[]
Tickets Ticket[]
StatisticsModule StatisticsModule[]
GuildMemberAdd GuildMemberAdd[]
GuildMemberLeave GuildMemberLeave[]
GuildMemberKick GuildMemberKick[]
GuildMemberBan GuildMemberBan[]
GuildStatistics GuildStatistics[]
@@schema("public")
}
model Ticket {
id String @id @default(uuid())
ticketId BigInt
panelId String
guild Guild @relation(fields: [guildId], references: [id])
guildId Int
owner BigInt
channel BigInt @unique
state String @default("open")
claimedBy BigInt?
addedUsers Int[]
interactions Json[] // buttons modals etc
history Json[] // messages etc
timer Boolean
timerEnd DateTime?
transcriptPermissions String[] @default(["private"]) // public, private, role, user
transcriptUrl String? @default("")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@schema("tickets")
}
" guild Id String @unique " 由于公会ID是唯一的,所以不能用不同的公会ID创建多条记录