44 lines
1.1 KiB
SQL
44 lines
1.1 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "roles" AS ENUM ('admin', 'staff', 'user');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "users" (
|
|
"id" TEXT NOT NULL,
|
|
"email" TEXT NOT NULL,
|
|
"emailVerified" BOOLEAN NOT NULL DEFAULT false,
|
|
"password" TEXT,
|
|
"firstName" TEXT,
|
|
"lastName" TEXT,
|
|
"avatar" TEXT,
|
|
"role" "roles" NOT NULL DEFAULT 'user',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
"lastSignedIn" TIMESTAMP(3),
|
|
"metadata" JSONB,
|
|
|
|
CONSTRAINT "users_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "profiles" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"bio" TEXT,
|
|
"phone" TEXT,
|
|
"address" TEXT,
|
|
"city" TEXT,
|
|
"country" TEXT,
|
|
"birthDate" TIMESTAMP(3),
|
|
|
|
CONSTRAINT "profiles_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "users_email_key" ON "users"("email");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "profiles_userId_key" ON "profiles"("userId");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "profiles" ADD CONSTRAINT "profiles_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|