-- 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;