Livre US-FLASHCARDS avec decks, session de révision, stats et migration Prisma. Finalise le Web Clipper (i18n 15 langues) et corrige les erreurs ESLint bloquant la CI. Co-authored-by: Cursor <cursoragent@cursor.com>
75 lines
2.5 KiB
SQL
75 lines
2.5 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "FlashcardDeck" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"notebookId" TEXT,
|
|
"name" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "FlashcardDeck_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Flashcard" (
|
|
"id" TEXT NOT NULL,
|
|
"deckId" TEXT NOT NULL,
|
|
"noteId" TEXT,
|
|
"front" TEXT NOT NULL,
|
|
"back" TEXT NOT NULL,
|
|
"type" TEXT NOT NULL DEFAULT 'qa',
|
|
"interval" INTEGER NOT NULL DEFAULT 1,
|
|
"easinessFactor" DOUBLE PRECISION NOT NULL DEFAULT 2.5,
|
|
"nextReviewAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Flashcard_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "FlashcardReview" (
|
|
"id" TEXT NOT NULL,
|
|
"cardId" TEXT NOT NULL,
|
|
"grade" INTEGER NOT NULL,
|
|
"reviewedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "FlashcardReview_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "FlashcardDeck_notebookId_key" ON "FlashcardDeck"("notebookId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "FlashcardDeck_userId_idx" ON "FlashcardDeck"("userId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Flashcard_deckId_idx" ON "Flashcard"("deckId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Flashcard_noteId_idx" ON "Flashcard"("noteId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Flashcard_nextReviewAt_idx" ON "Flashcard"("nextReviewAt");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "FlashcardReview_cardId_idx" ON "FlashcardReview"("cardId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "FlashcardReview_reviewedAt_idx" ON "FlashcardReview"("reviewedAt");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "FlashcardDeck" ADD CONSTRAINT "FlashcardDeck_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "FlashcardDeck" ADD CONSTRAINT "FlashcardDeck_notebookId_fkey" FOREIGN KEY ("notebookId") REFERENCES "Notebook"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Flashcard" ADD CONSTRAINT "Flashcard_deckId_fkey" FOREIGN KEY ("deckId") REFERENCES "FlashcardDeck"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Flashcard" ADD CONSTRAINT "Flashcard_noteId_fkey" FOREIGN KEY ("noteId") REFERENCES "Note"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "FlashcardReview" ADD CONSTRAINT "FlashcardReview_cardId_fkey" FOREIGN KEY ("cardId") REFERENCES "Flashcard"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|