CREATE TYPE "GlobalRole" AS ENUM ('GUEST', 'CUSTOMER', 'ADMIN', 'SUPER_ADMIN');
CREATE TABLE "Session" (
"id" TEXT NOT NULL,
"sessionId" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"expiresAt" TIMESTAMP(3),
"data" JSONB,
"detectedUserAgent" TEXT NOT NULL DEFAULT E'',
"detectedIPAddress" TEXT NOT NULL DEFAULT E'',
CONSTRAINT "Session_pkey" PRIMARY KEY ("id")
);
CREATE TABLE "User" (
"id" TEXT NOT NULL,
"role" "GlobalRole" NOT NULL DEFAULT E'CUSTOMER',
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
"username" TEXT NOT NULL,
"email" TEXT NOT NULL,
"hashedPassword" TEXT NOT NULL,
"displayName" TEXT,
"avatarUri" TEXT,
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "Session_sessionId_key" ON "Session"("sessionId");
CREATE UNIQUE INDEX "User_username_key" ON "User"("username");
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");