-- CreateEnum CREATE TYPE "StaffStatus" AS ENUM ('ACTIVE', 'SUSPENDED'); -- AlterEnum -- This migration adds more than one value to an enum. -- With PostgreSQL versions 11 and earlier, this is not possible -- in a single migration. This can be worked around by creating -- multiple migrations, each migration adding only one value to -- the enum. ALTER TYPE "StaffRole" ADD VALUE 'OWNER'; ALTER TYPE "StaffRole" ADD VALUE 'MANAGER'; -- AlterTable ALTER TABLE "staff" ADD COLUMN "backup_codes_enc" TEXT, ADD COLUMN "invited_by" TEXT, ADD COLUMN "status" "StaffStatus" NOT NULL DEFAULT 'ACTIVE', ADD COLUMN "two_factor_enabled" BOOLEAN NOT NULL DEFAULT false, ADD COLUMN "two_factor_secret_enc" TEXT, ADD COLUMN "two_factor_verified_at" TIMESTAMP(3); -- AlterTable ALTER TABLE "users" ADD COLUMN "backup_codes_enc" TEXT, ADD COLUMN "two_factor_enabled" BOOLEAN NOT NULL DEFAULT false, ADD COLUMN "two_factor_secret_enc" TEXT, ADD COLUMN "two_factor_verified_at" TIMESTAMP(3); -- CreateTable CREATE TABLE "staff_invitations" ( "id" TEXT NOT NULL, "email" TEXT NOT NULL, "role" "StaffRole" NOT NULL DEFAULT 'SUPPORT', "token" TEXT NOT NULL, "expires_at" TIMESTAMP(3) NOT NULL, "invited_by" TEXT NOT NULL, "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "staff_invitations_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE UNIQUE INDEX "staff_invitations_email_key" ON "staff_invitations"("email"); -- CreateIndex CREATE UNIQUE INDEX "staff_invitations_token_key" ON "staff_invitations"("token");