-- AlterTable ALTER TABLE "User" ADD COLUMN IF NOT EXISTS "mobile" TEXT; ALTER TABLE "User" ADD COLUMN IF NOT EXISTS "emailVerifiedAt" TIMESTAMP(3); ALTER TABLE "User" ADD COLUMN IF NOT EXISTS "mobileVerifiedAt" TIMESTAMP(3); -- CreateIndex CREATE UNIQUE INDEX IF NOT EXISTS "User_mobile_key" ON "User"("mobile"); CREATE INDEX IF NOT EXISTS "User_email_idx" ON "User"("email"); -- CreateTable CREATE TABLE IF NOT EXISTS "AuthChallenge" ( "id" TEXT NOT NULL, "kind" TEXT NOT NULL, "channel" TEXT, "email" TEXT, "mobile" TEXT, "passwordHash" TEXT, "payload" JSONB NOT NULL DEFAULT '{}', "emailCode" TEXT, "mobileCode" TEXT, "emailVerified" BOOLEAN NOT NULL DEFAULT false, "mobileVerified" BOOLEAN NOT NULL DEFAULT false, "expiresAt" TIMESTAMP(3) NOT NULL, "consumedAt" TIMESTAMP(3), "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "AuthChallenge_pkey" PRIMARY KEY ("id") ); CREATE INDEX IF NOT EXISTS "AuthChallenge_kind_createdAt_idx" ON "AuthChallenge"("kind", "createdAt"); CREATE INDEX IF NOT EXISTS "AuthChallenge_expiresAt_idx" ON "AuthChallenge"("expiresAt"); CREATE INDEX IF NOT EXISTS "AuthChallenge_email_idx" ON "AuthChallenge"("email"); CREATE INDEX IF NOT EXISTS "AuthChallenge_mobile_idx" ON "AuthChallenge"("mobile");