-- CreateEnum CREATE TYPE "ComplexUserRole" AS ENUM ('ADMIN'); -- CreateTable CREATE TABLE "complex_users" ( "complex_id" UUID NOT NULL, "user_id" UUID NOT NULL, "role" "ComplexUserRole" NOT NULL DEFAULT 'ADMIN', "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "complex_users_pkey" PRIMARY KEY ("complex_id","user_id") ); -- CreateTable CREATE TABLE "onboarding_requests" ( "id" UUID NOT NULL, "full_name" TEXT NOT NULL, "email" TEXT NOT NULL, "email_verification_token_hash" TEXT NOT NULL, "email_verification_sent_at" TIMESTAMP(3) NOT NULL, "email_verified_at" TIMESTAMP(3), "expires_at" TIMESTAMP(3) NOT NULL, "completed_at" TIMESTAMP(3), "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMP(3) NOT NULL, CONSTRAINT "onboarding_requests_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "users" ( "id" UUID NOT NULL, "supabase_user_id" UUID NOT NULL, "email" TEXT NOT NULL, "full_name" TEXT NOT NULL, "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updated_at" TIMESTAMP(3) NOT NULL, CONSTRAINT "users_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE INDEX "complex_users_user_id_idx" ON "complex_users"("user_id"); -- CreateIndex CREATE UNIQUE INDEX "onboarding_requests_email_verification_token_hash_key" ON "onboarding_requests"("email_verification_token_hash"); -- CreateIndex CREATE INDEX "onboarding_requests_email_idx" ON "onboarding_requests"("email"); -- CreateIndex CREATE INDEX "onboarding_requests_expires_at_idx" ON "onboarding_requests"("expires_at"); -- CreateIndex CREATE UNIQUE INDEX "users_supabase_user_id_key" ON "users"("supabase_user_id"); -- CreateIndex CREATE UNIQUE INDEX "users_email_key" ON "users"("email"); -- AddForeignKey ALTER TABLE "complex_users" ADD CONSTRAINT "complex_users_complex_id_fkey" FOREIGN KEY ("complex_id") REFERENCES "complexes"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "complex_users" ADD CONSTRAINT "complex_users_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;