-- CreateEnum CREATE TYPE "Role" AS ENUM ('SUPER_ADMIN', 'ADMIN'); -- CreateTable CREATE TABLE "AdminUser" ( "id" TEXT NOT NULL, "username" TEXT NOT NULL, "passwordHash" TEXT NOT NULL, "role" "Role" NOT NULL DEFAULT 'ADMIN', "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "AdminUser_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "Code" ( "id" TEXT NOT NULL, "code" TEXT NOT NULL, "createdById" TEXT NOT NULL, "usedByUserId" TEXT, "usedAt" TIMESTAMP(3), "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "Code_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE UNIQUE INDEX "AdminUser_username_key" ON "AdminUser"("username"); -- CreateIndex CREATE UNIQUE INDEX "Code_code_key" ON "Code"("code"); -- CreateIndex CREATE INDEX "Code_code_idx" ON "Code"("code"); -- CreateIndex CREATE INDEX "Code_usedByUserId_idx" ON "Code"("usedByUserId"); -- AddForeignKey ALTER TABLE "Code" ADD CONSTRAINT "Code_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "AdminUser"("id") ON DELETE RESTRICT ON UPDATE CASCADE;