Files
anatomia/backend/prisma/schema.prisma
T

87 lines
2.1 KiB
Plaintext

generator client {
provider = "prisma-client"
output = "../src/generated/prisma"
}
// A URL de conexão não mora mais aqui (Prisma 7) — fica só em
// prisma.config.ts, usada tanto pelo Migrate/CLI quanto pelo adapter que o
// PrismaClient recebe em runtime (ver src/lib/prisma.ts).
datasource db {
provider = "postgresql"
}
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")
}