|
|
|
|
|
|
|
generator client { |
|
provider = "prisma-client-js" |
|
} |
|
|
|
datasource db { |
|
provider = "postgresql" |
|
url = env("DATABASE_URL") |
|
} |
|
|
|
model User { |
|
id Int @id @default(autoincrement()) |
|
name String |
|
voiceId String? |
|
avatar String? |
|
audioUrl String? |
|
createdAt DateTime @default(now()) |
|
updatedAt DateTime @updatedAt |
|
players Player[] |
|
createdGroups Group[] @relation("GroupCreator") |
|
} |
|
|
|
model Group { |
|
id Int @id @default(autoincrement()) |
|
name String |
|
inviteCode String @unique |
|
status String @default("WAITING") |
|
currentRound Int @default(0) |
|
totalRounds Int @default(3) |
|
imposteurId Int? |
|
creatorId Int |
|
creator User @relation("GroupCreator", fields: [creatorId], references: [id]) |
|
createdAt DateTime @default(now()) |
|
updatedAt DateTime @updatedAt |
|
players Player[] |
|
} |
|
|
|
model Player { |
|
id Int @id @default(autoincrement()) |
|
userId Int |
|
groupId Int |
|
isReady Boolean @default(false) |
|
user User @relation(fields: [userId], references: [id]) |
|
group Group @relation(fields: [groupId], references: [id]) |
|
joinedAt DateTime @default(now()) |
|
|
|
@@unique([groupId, userId]) |
|
} |