-- CreateTable CREATE TABLE "Post" ( "id" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, "title" TEXT, "content" TEXT NOT NULL, "authorID" TEXT NOT NULL, "points" INTEGER NOT NULL DEFAULT 0 ); -- CreateTable CREATE TABLE "User" ( "id" TEXT NOT NULL, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, "username" TEXT NOT NULL, "password" TEXT NOT NULL, "email" TEXT, CONSTRAINT "User_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "Upvote" ( "userID" TEXT NOT NULL, "postID" TEXT NOT NULL ); -- CreateTable CREATE TABLE "Downvote" ( "userID" TEXT NOT NULL, "postID" TEXT NOT NULL ); -- CreateTable CREATE TABLE "ResetPasswordToken" ( "id" TEXT NOT NULL, "userID" TEXT NOT NULL, "value" TEXT NOT NULL, CONSTRAINT "ResetPasswordToken_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE UNIQUE INDEX "Post_id_key" ON "Post"("id"); -- CreateIndex CREATE UNIQUE INDEX "Post_createdAt_key" ON "Post"("createdAt"); -- CreateIndex CREATE UNIQUE INDEX "Post_updatedAt_key" ON "Post"("updatedAt"); -- CreateIndex CREATE UNIQUE INDEX "User_username_key" ON "User"("username"); -- CreateIndex CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); -- CreateIndex CREATE UNIQUE INDEX "Upvote_userID_postID_key" ON "Upvote"("userID", "postID"); -- CreateIndex CREATE UNIQUE INDEX "Downvote_userID_postID_key" ON "Downvote"("userID", "postID"); -- CreateIndex CREATE UNIQUE INDEX "ResetPasswordToken_value_key" ON "ResetPasswordToken"("value"); -- CreateIndex CREATE UNIQUE INDEX "ResetPasswordToken_userID_value_key" ON "ResetPasswordToken"("userID", "value"); -- AddForeignKey ALTER TABLE "Post" ADD CONSTRAINT "Post_authorID_fkey" FOREIGN KEY ("authorID") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;