58 lines
2.1 KiB
SQL
58 lines
2.1 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "ConnectionStatus" AS ENUM ('PENDING', 'ACCEPTED', 'REJECTED');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "ConnectionType" AS ENUM ('FRIEND', 'FAMILY');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "UserConnection" (
|
|
"id" TEXT NOT NULL,
|
|
"requesterId" TEXT NOT NULL,
|
|
"receiverId" TEXT NOT NULL,
|
|
"status" "ConnectionStatus" NOT NULL DEFAULT 'PENDING',
|
|
"type" "ConnectionType" NOT NULL DEFAULT 'FRIEND',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "UserConnection_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "DirectMessage" (
|
|
"id" TEXT NOT NULL,
|
|
"senderId" TEXT NOT NULL,
|
|
"receiverId" TEXT NOT NULL,
|
|
"content" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "DirectMessage_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "UserConnection_requesterId_idx" ON "UserConnection"("requesterId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "UserConnection_receiverId_idx" ON "UserConnection"("receiverId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "UserConnection_requesterId_receiverId_key" ON "UserConnection"("requesterId", "receiverId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "DirectMessage_senderId_idx" ON "DirectMessage"("senderId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "DirectMessage_receiverId_idx" ON "DirectMessage"("receiverId");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "UserConnection" ADD CONSTRAINT "UserConnection_requesterId_fkey" FOREIGN KEY ("requesterId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "UserConnection" ADD CONSTRAINT "UserConnection_receiverId_fkey" FOREIGN KEY ("receiverId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "DirectMessage" ADD CONSTRAINT "DirectMessage_senderId_fkey" FOREIGN KEY ("senderId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "DirectMessage" ADD CONSTRAINT "DirectMessage_receiverId_fkey" FOREIGN KEY ("receiverId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|