-- AlterTable ALTER TABLE "User" ADD COLUMN "totpEnabledAt" TIMESTAMP(3), ADD COLUMN "totpSecretCipher" TEXT; -- CreateTable CREATE TABLE "RecoveryCode" ( "id" TEXT NOT NULL, "userId" TEXT NOT NULL, "codeHash" TEXT NOT NULL, "usedAt" TIMESTAMP(3), "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "RecoveryCode_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "PendingLogin" ( "id" TEXT NOT NULL, "userId" TEXT NOT NULL, "tokenHash" TEXT NOT NULL, "attempts" INTEGER NOT NULL DEFAULT 0, "expiresAt" TIMESTAMP(3) NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "PendingLogin_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE UNIQUE INDEX "RecoveryCode_codeHash_key" ON "RecoveryCode"("codeHash"); -- CreateIndex CREATE INDEX "RecoveryCode_userId_idx" ON "RecoveryCode"("userId"); -- CreateIndex CREATE UNIQUE INDEX "PendingLogin_tokenHash_key" ON "PendingLogin"("tokenHash"); -- CreateIndex CREATE INDEX "PendingLogin_userId_idx" ON "PendingLogin"("userId"); -- CreateIndex CREATE INDEX "PendingLogin_expiresAt_idx" ON "PendingLogin"("expiresAt"); -- AddForeignKey ALTER TABLE "RecoveryCode" ADD CONSTRAINT "RecoveryCode_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "PendingLogin" ADD CONSTRAINT "PendingLogin_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;