Spaces:
Sleeping
Sleeping
| -- CreateEnum | |
| CREATE TYPE "MessageRole" AS ENUM ('system', 'user', 'assistant'); | |
| -- CreateTable | |
| CREATE TABLE "user" ( | |
| "id" TEXT NOT NULL, | |
| "name" TEXT NOT NULL, | |
| "email" TEXT NOT NULL, | |
| "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, | |
| "updated_at" TIMESTAMP(3) NOT NULL, | |
| CONSTRAINT "user_pkey" PRIMARY KEY ("id") | |
| ); | |
| -- CreateTable | |
| CREATE TABLE "chat" ( | |
| "id" TEXT NOT NULL, | |
| "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, | |
| "updated_at" TIMESTAMP(3) NOT NULL, | |
| "title" TEXT NOT NULL DEFAULT '(no title)', | |
| "userId" TEXT, | |
| "mediaUrl" TEXT NOT NULL, | |
| CONSTRAINT "chat_pkey" PRIMARY KEY ("id") | |
| ); | |
| -- CreateTable | |
| CREATE TABLE "message" ( | |
| "id" TEXT NOT NULL, | |
| "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, | |
| "updated_at" TIMESTAMP(3) NOT NULL, | |
| "userId" TEXT, | |
| "chatId" TEXT NOT NULL, | |
| "content" TEXT NOT NULL, | |
| "result" JSONB, | |
| "role" "MessageRole" NOT NULL, | |
| CONSTRAINT "message_pkey" PRIMARY KEY ("id") | |
| ); | |
| -- CreateIndex | |
| CREATE UNIQUE INDEX "user_email_key" ON "user"("email"); | |
| -- AddForeignKey | |
| ALTER TABLE "chat" ADD CONSTRAINT "chat_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE CASCADE; | |
| -- AddForeignKey | |
| ALTER TABLE "message" ADD CONSTRAINT "message_chatId_fkey" FOREIGN KEY ("chatId") REFERENCES "chat"("id") ON DELETE CASCADE ON UPDATE CASCADE; | |
| -- AddForeignKey | |
| ALTER TABLE "message" ADD CONSTRAINT "message_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE CASCADE; | |