mirror of
https://github.com/ershisan99/flashcards-api.git
synced 2025-12-16 20:59:26 +00:00
initial commit
This commit is contained in:
112
prisma/schema.prisma
Normal file
112
prisma/schema.prisma
Normal file
@@ -0,0 +1,112 @@
|
||||
datasource db {
|
||||
provider = "mysql"
|
||||
url = env("DATABASE_URL")
|
||||
relationMode = "prisma"
|
||||
}
|
||||
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
}
|
||||
|
||||
model User {
|
||||
id String @id @default(cuid())
|
||||
email String @unique
|
||||
password String
|
||||
isAdmin Boolean @default(false)
|
||||
name String @db.VarChar(40)
|
||||
isVerified Boolean @default(false)
|
||||
avatar String?
|
||||
deckCount Int @default(0)
|
||||
isDeleted Boolean? @default(false)
|
||||
deleteTime Int?
|
||||
created DateTime @default(now())
|
||||
updated DateTime @updatedAt
|
||||
cards Card[] // One-to-many relation
|
||||
decks Deck[] // One-to-many relation
|
||||
grades Grade[] // One-to-many relation
|
||||
generalChatMessages GeneralChatMessage[] // One-to-many relation
|
||||
}
|
||||
|
||||
model Card {
|
||||
id String @id @default(cuid())
|
||||
deckId String
|
||||
userId String
|
||||
question String
|
||||
answer String
|
||||
grade Int
|
||||
shots Int
|
||||
questionImg String?
|
||||
answerImg String?
|
||||
answerVideo String?
|
||||
questionVideo String?
|
||||
comments String?
|
||||
type String?
|
||||
rating Int
|
||||
moreId String?
|
||||
created DateTime @default(now())
|
||||
updated DateTime @updatedAt
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
decks Deck @relation(fields: [deckId], references: [id])
|
||||
grades Grade[] // One-to-many relation
|
||||
|
||||
@@index([userId])
|
||||
@@index([deckId])
|
||||
}
|
||||
|
||||
model Deck {
|
||||
id String @id @default(cuid())
|
||||
userId String
|
||||
userName String
|
||||
name String
|
||||
private Boolean
|
||||
path String
|
||||
grade Int
|
||||
shots Int
|
||||
cardsCount Int
|
||||
deckCover String?
|
||||
type String
|
||||
rating Int
|
||||
moreId String?
|
||||
isDeleted Boolean?
|
||||
isBlocked Boolean?
|
||||
created DateTime @default(now())
|
||||
updated DateTime @updatedAt
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
Card Card[] // One-to-many relation
|
||||
Grade Grade[]
|
||||
|
||||
@@index([userId])
|
||||
}
|
||||
|
||||
model Grade {
|
||||
id String @id @default(cuid())
|
||||
deckId String
|
||||
cardId String
|
||||
userId String
|
||||
grade Int
|
||||
shots Int
|
||||
moreId String?
|
||||
created DateTime @default(now())
|
||||
updated DateTime @updatedAt
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
card Card @relation(fields: [cardId], references: [id])
|
||||
decks Deck @relation(fields: [deckId], references: [id])
|
||||
|
||||
@@index([userId])
|
||||
@@index([deckId])
|
||||
@@index([cardId])
|
||||
}
|
||||
|
||||
model GeneralChatMessage {
|
||||
id String @id @default(cuid())
|
||||
userId String
|
||||
userName String
|
||||
isAdmin Boolean
|
||||
avatar String?
|
||||
message String
|
||||
created DateTime @default(now())
|
||||
updated DateTime @updatedAt
|
||||
user User @relation(fields: [userId], references: [id])
|
||||
|
||||
@@index([userId])
|
||||
}
|
||||
Reference in New Issue
Block a user