84 lines
1.9 KiB
Plaintext
84 lines
1.9 KiB
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
model AnatomicalSystem {
|
|
id String @id @default(cuid())
|
|
slug String @unique
|
|
namePt String
|
|
nameEn String
|
|
colorHex String @default("#4f7cff")
|
|
order Int @default(0)
|
|
structures Structure[]
|
|
|
|
@@map("anatomical_systems")
|
|
}
|
|
|
|
model Structure {
|
|
id String @id @default(cuid())
|
|
fmaId String? @unique
|
|
slug String @unique
|
|
namePt String
|
|
nameEn String
|
|
synonyms String[] @default([])
|
|
description String?
|
|
regionPath String[] @default([])
|
|
modelFile String
|
|
meshName String
|
|
systemId String
|
|
system AnatomicalSystem @relation(fields: [systemId], references: [id])
|
|
quizCard QuizCard?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
@@index([systemId])
|
|
@@map("structures")
|
|
}
|
|
|
|
model PageVisit {
|
|
id String @id @default(cuid())
|
|
path String
|
|
system String?
|
|
ip String
|
|
port Int?
|
|
country String?
|
|
city String?
|
|
userAgent String?
|
|
createdAt DateTime @default(now())
|
|
|
|
@@index([createdAt])
|
|
@@index([system])
|
|
@@map("page_visits")
|
|
}
|
|
|
|
model Feedback {
|
|
id String @id @default(cuid())
|
|
message String
|
|
email String?
|
|
rating Int?
|
|
page String?
|
|
ip String?
|
|
createdAt DateTime @default(now())
|
|
|
|
@@index([createdAt])
|
|
@@map("feedback")
|
|
}
|
|
|
|
model QuizCard {
|
|
id String @id @default(cuid())
|
|
structureId String @unique
|
|
structure Structure @relation(fields: [structureId], references: [id])
|
|
easeFactor Float @default(2.5)
|
|
intervalDays Float @default(0)
|
|
repetitions Int @default(0)
|
|
dueAt DateTime @default(now())
|
|
lastReviewedAt DateTime?
|
|
|
|
@@map("quiz_cards")
|
|
}
|