44 lines
1.2 KiB
SQL
44 lines
1.2 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "UserRole" AS ENUM ('USER', 'ADMIN');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "users" (
|
|
"id" SERIAL NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"email" TEXT NOT NULL,
|
|
"password" TEXT NOT NULL,
|
|
"phone" TEXT,
|
|
"role" "UserRole" NOT NULL DEFAULT 'USER',
|
|
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "users_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "addresses" (
|
|
"id" SERIAL NOT NULL,
|
|
"userId" INTEGER NOT NULL,
|
|
"label" TEXT NOT NULL,
|
|
"street" TEXT NOT NULL,
|
|
"neighborhood" TEXT,
|
|
"postalCode" TEXT,
|
|
"latitude" DOUBLE PRECISION,
|
|
"longitude" DOUBLE PRECISION,
|
|
"isDefault" BOOLEAN NOT NULL DEFAULT false,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "addresses_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "users_email_key" ON "users"("email");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "users_phone_key" ON "users"("phone");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "addresses" ADD CONSTRAINT "addresses_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|