65 lines
2.0 KiB
SQL
65 lines
2.0 KiB
SQL
-- 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;
|