All checks were successful
Automated Container Build / build-and-push (push) Successful in 1m22s
64 lines
2.7 KiB
SQL
64 lines
2.7 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "SpacedRepetitionSet" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"classId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"description" TEXT,
|
|
"newCardsPerDay" INTEGER NOT NULL DEFAULT 30,
|
|
"sortOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL,
|
|
CONSTRAINT "SpacedRepetitionSet_classId_fkey" FOREIGN KEY ("classId") REFERENCES "Class" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "SpacedRepetitionSetDeck" (
|
|
"setId" TEXT NOT NULL,
|
|
"deckId" TEXT NOT NULL,
|
|
"sortOrder" INTEGER NOT NULL DEFAULT 0,
|
|
"addedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
PRIMARY KEY ("setId", "deckId"),
|
|
CONSTRAINT "SpacedRepetitionSetDeck_setId_fkey" FOREIGN KEY ("setId") REFERENCES "SpacedRepetitionSet" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT "SpacedRepetitionSetDeck_deckId_fkey" FOREIGN KEY ("deckId") REFERENCES "Deck" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "SpacedRepetitionCardState" (
|
|
"id" TEXT NOT NULL PRIMARY KEY,
|
|
"setId" TEXT NOT NULL,
|
|
"flashcardId" TEXT NOT NULL,
|
|
"due" DATETIME NOT NULL,
|
|
"stability" REAL NOT NULL,
|
|
"difficulty" REAL NOT NULL,
|
|
"elapsedDays" INTEGER NOT NULL,
|
|
"scheduledDays" INTEGER NOT NULL,
|
|
"learningSteps" INTEGER NOT NULL DEFAULT 0,
|
|
"reps" INTEGER NOT NULL,
|
|
"lapses" INTEGER NOT NULL,
|
|
"state" INTEGER NOT NULL,
|
|
"firstReviewedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"lastReview" DATETIME,
|
|
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" DATETIME NOT NULL,
|
|
CONSTRAINT "SpacedRepetitionCardState_setId_fkey" FOREIGN KEY ("setId") REFERENCES "SpacedRepetitionSet" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
CONSTRAINT "SpacedRepetitionCardState_flashcardId_fkey" FOREIGN KEY ("flashcardId") REFERENCES "Flashcard" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "SpacedRepetitionSet_classId_sortOrder_idx" ON "SpacedRepetitionSet"("classId", "sortOrder");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "SpacedRepetitionSetDeck_deckId_idx" ON "SpacedRepetitionSetDeck"("deckId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "SpacedRepetitionCardState_setId_due_idx" ON "SpacedRepetitionCardState"("setId", "due");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "SpacedRepetitionCardState_setId_firstReviewedAt_idx" ON "SpacedRepetitionCardState"("setId", "firstReviewedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "SpacedRepetitionCardState_flashcardId_idx" ON "SpacedRepetitionCardState"("flashcardId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "SpacedRepetitionCardState_setId_flashcardId_key" ON "SpacedRepetitionCardState"("setId", "flashcardId");
|