File size: 1,557 Bytes
811126d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
// This is your Prisma schema file
// learn more about it in the docs: https://pris.ly/d/prisma-schema
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? // ID ElevenLabs pour la voix clonée
avatar String? // URL de l'avatar du joueur
audioUrl String? // URL de l'enregistrement original
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") // WAITING, PLAYING, FINISHED
currentRound Int @default(0)
totalRounds Int @default(3)
imposteurId Int? // ID du joueur qui est l'imposteur
creatorId Int // ID de l'utilisateur qui a créé le groupe
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])
} |