Files
anatomia/backend/prisma/schema.prisma
T

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")
}