Files
crm/apps/api/prisma/migrations/20260905010000_auth_mobile_otp/migration.sql
T

34 lines
1.3 KiB
SQL

-- 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");