-- AlterTable ALTER TABLE "team" ADD COLUMN "two_factor_required" BOOLEAN NOT NULL DEFAULT false; -- AlterTable ALTER TABLE "user" ADD COLUMN "two_factor_required" BOOLEAN NOT NULL DEFAULT false; -- CreateTable CREATE TABLE "two_factor_auth" ( "id" TEXT NOT NULL, "user_id" UUID NOT NULL, "secret" TEXT NOT NULL, "is_enabled" BOOLEAN NOT NULL DEFAULT false, "created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMPTZ(6) NOT NULL, CONSTRAINT "two_factor_auth_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "two_factor_backup_code" ( "id" TEXT NOT NULL, "user_id" UUID NOT NULL, "code_hash" TEXT NOT NULL, "used" BOOLEAN NOT NULL DEFAULT false, "created_at" TIMESTAMPTZ(6) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "two_factor_backup_code_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "two_factor_otp_used" ( "id" TEXT NOT NULL, "user_id" UUID NOT NULL, "otp" TEXT NOT NULL, "expires_at" TIMESTAMPTZ(6) NOT NULL, CONSTRAINT "two_factor_otp_used_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "two_factor_rate_limit" ( "id" TEXT NOT NULL, "user_id" UUID NOT NULL, "attempts" INTEGER NOT NULL DEFAULT 0, "locked_until" TIMESTAMPTZ(6), "updated_at" TIMESTAMPTZ(6) NOT NULL, CONSTRAINT "two_factor_rate_limit_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "app_setting" ( "key" TEXT NOT NULL, "value" TEXT NOT NULL, CONSTRAINT "app_setting_pkey" PRIMARY KEY ("key") ); -- CreateIndex CREATE UNIQUE INDEX "two_factor_auth_user_id_key" ON "two_factor_auth"("user_id"); -- CreateIndex CREATE INDEX "two_factor_backup_code_user_id_idx" ON "two_factor_backup_code"("user_id"); -- CreateIndex CREATE UNIQUE INDEX "two_factor_otp_used_user_id_otp_key" ON "two_factor_otp_used"("user_id", "otp"); -- CreateIndex CREATE UNIQUE INDEX "two_factor_rate_limit_user_id_key" ON "two_factor_rate_limit"("user_id"); -- CreateIndex CREATE INDEX "session_replay_visit_id_idx" ON "session_replay"("visit_id");