-- CreateTable CREATE TABLE "Song" ( "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "title" TEXT NOT NULL, "artist" TEXT NOT NULL, "filename" TEXT NOT NULL, "coverImage" TEXT, "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ); -- CreateTable CREATE TABLE "Genre" ( "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "name" TEXT NOT NULL ); -- CreateTable CREATE TABLE "DailyPuzzle" ( "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "date" TEXT NOT NULL, "songId" INTEGER NOT NULL, "genreId" INTEGER, CONSTRAINT "DailyPuzzle_songId_fkey" FOREIGN KEY ("songId") REFERENCES "Song" ("id") ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT "DailyPuzzle_genreId_fkey" FOREIGN KEY ("genreId") REFERENCES "Genre" ("id") ON DELETE SET NULL ON UPDATE CASCADE ); -- CreateTable CREATE TABLE "_GenreToSong" ( "A" INTEGER NOT NULL, "B" INTEGER NOT NULL, CONSTRAINT "_GenreToSong_A_fkey" FOREIGN KEY ("A") REFERENCES "Genre" ("id") ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT "_GenreToSong_B_fkey" FOREIGN KEY ("B") REFERENCES "Song" ("id") ON DELETE CASCADE ON UPDATE CASCADE ); -- CreateIndex CREATE UNIQUE INDEX "Genre_name_key" ON "Genre"("name"); -- CreateIndex CREATE UNIQUE INDEX "DailyPuzzle_date_genreId_key" ON "DailyPuzzle"("date", "genreId"); -- CreateIndex CREATE UNIQUE INDEX "_GenreToSong_AB_unique" ON "_GenreToSong"("A", "B"); -- CreateIndex CREATE INDEX "_GenreToSong_B_index" ON "_GenreToSong"("B");