-- CreateEnum CREATE TYPE "roles" AS ENUM ('ADMIN', 'USER'); -- CreateTable CREATE TABLE "accounts" ( "id" TEXT NOT NULL, "phone" TEXT, "email" TEXT, "is_phone_verified" BOOLEAN NOT NULL DEFAULT false, "is_email_verified" BOOLEAN NOT NULL DEFAULT false, "role" "roles" NOT NULL DEFAULT 'USER', "telegram_id" TEXT, "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMP(3) NOT NULL, CONSTRAINT "accounts_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "pending_contact_changes" ( "id" TEXT NOT NULL, "type" TEXT NOT NULL, "value" TEXT NOT NULL, "code_hash" TEXT NOT NULL, "expires_at" TIMESTAMP(3) NOT NULL, "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMP(3) NOT NULL, "account_id" TEXT NOT NULL, CONSTRAINT "pending_contact_changes_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE UNIQUE INDEX "accounts_phone_key" ON "accounts"("phone"); -- CreateIndex CREATE UNIQUE INDEX "accounts_email_key" ON "accounts"("email"); -- CreateIndex CREATE UNIQUE INDEX "accounts_telegram_id_key" ON "accounts"("telegram_id"); -- CreateIndex CREATE UNIQUE INDEX "pending_contact_changes_account_id_type_key" ON "pending_contact_changes"("account_id", "type"); -- AddForeignKey ALTER TABLE "pending_contact_changes" ADD CONSTRAINT "pending_contact_changes_account_id_fkey" FOREIGN KEY ("account_id") REFERENCES "accounts"("id") ON DELETE CASCADE ON UPDATE CASCADE;