first commit
This commit is contained in:
commit
0e854110d3
49 files changed
+2292
No files matched your search
@@ -0,0 +1,64 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "anatomical_systems" (
|
||||
"id" TEXT NOT NULL,
|
||||
"slug" TEXT NOT NULL,
|
||||
"namePt" TEXT NOT NULL,
|
||||
"nameEn" TEXT NOT NULL,
|
||||
"colorHex" TEXT NOT NULL DEFAULT '#4f7cff',
|
||||
"order" INTEGER NOT NULL DEFAULT 0,
|
||||
|
||||
CONSTRAINT "anatomical_systems_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "structures" (
|
||||
"id" TEXT NOT NULL,
|
||||
"fmaId" TEXT,
|
||||
"slug" TEXT NOT NULL,
|
||||
"namePt" TEXT NOT NULL,
|
||||
"nameEn" TEXT NOT NULL,
|
||||
"synonyms" TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
|
||||
"description" TEXT,
|
||||
"regionPath" TEXT[] NOT NULL DEFAULT ARRAY[]::TEXT[],
|
||||
"modelFile" TEXT NOT NULL,
|
||||
"meshName" TEXT NOT NULL,
|
||||
"systemId" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "structures_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "quiz_cards" (
|
||||
"id" TEXT NOT NULL,
|
||||
"structureId" TEXT NOT NULL,
|
||||
"easeFactor" DOUBLE PRECISION NOT NULL DEFAULT 2.5,
|
||||
"intervalDays" DOUBLE PRECISION NOT NULL DEFAULT 0,
|
||||
"repetitions" INTEGER NOT NULL DEFAULT 0,
|
||||
"dueAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"lastReviewedAt" TIMESTAMP(3),
|
||||
|
||||
CONSTRAINT "quiz_cards_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "anatomical_systems_slug_key" ON "anatomical_systems"("slug");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "structures_fmaId_key" ON "structures"("fmaId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "structures_slug_key" ON "structures"("slug");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "structures_systemId_idx" ON "structures"("systemId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "quiz_cards_structureId_key" ON "quiz_cards"("structureId");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "structures" ADD CONSTRAINT "structures_systemId_fkey" FOREIGN KEY ("systemId") REFERENCES "anatomical_systems"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "quiz_cards" ADD CONSTRAINT "quiz_cards_structureId_fkey" FOREIGN KEY ("structureId") REFERENCES "structures"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
@@ -0,0 +1 @@
|
||||
provider = "postgresql"
|
||||
@@ -0,0 +1,54 @@
|
||||
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 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")
|
||||
}
|
||||
Reference in new issue
Block a user