mirror of
https://github.com/versia-pub/server.git
synced 2025-12-06 08:28:19 +01:00
Delete old Prisma folder
This commit is contained in:
parent
0b1c1ba128
commit
58cd284a84
|
|
@ -1,286 +0,0 @@
|
|||
-- CreateExtension
|
||||
CREATE EXTENSION IF NOT EXISTS "pg_uuidv7";
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Application" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"name" TEXT NOT NULL,
|
||||
"website" TEXT,
|
||||
"vapid_key" TEXT,
|
||||
"client_id" TEXT NOT NULL,
|
||||
"secret" TEXT NOT NULL,
|
||||
"scopes" TEXT NOT NULL,
|
||||
"redirect_uris" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "Application_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Emoji" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"shortcode" TEXT NOT NULL,
|
||||
"url" TEXT NOT NULL,
|
||||
"visible_in_picker" BOOLEAN NOT NULL,
|
||||
"instanceId" UUID,
|
||||
"alt" TEXT,
|
||||
"content_type" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "Emoji_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Instance" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"base_url" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"version" TEXT NOT NULL,
|
||||
"logo" JSONB NOT NULL,
|
||||
|
||||
CONSTRAINT "Instance_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Like" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"likerId" UUID NOT NULL,
|
||||
"likedId" UUID NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "Like_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "LysandObject" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"remote_id" TEXT NOT NULL,
|
||||
"type" TEXT NOT NULL,
|
||||
"uri" TEXT NOT NULL,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"authorId" UUID,
|
||||
"extra_data" JSONB NOT NULL,
|
||||
"extensions" JSONB NOT NULL,
|
||||
|
||||
CONSTRAINT "LysandObject_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Relationship" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"ownerId" UUID NOT NULL,
|
||||
"subjectId" UUID NOT NULL,
|
||||
"following" BOOLEAN NOT NULL,
|
||||
"showingReblogs" BOOLEAN NOT NULL,
|
||||
"notifying" BOOLEAN NOT NULL,
|
||||
"followedBy" BOOLEAN NOT NULL,
|
||||
"blocking" BOOLEAN NOT NULL,
|
||||
"blockedBy" BOOLEAN NOT NULL,
|
||||
"muting" BOOLEAN NOT NULL,
|
||||
"mutingNotifications" BOOLEAN NOT NULL,
|
||||
"requested" BOOLEAN NOT NULL,
|
||||
"domainBlocking" BOOLEAN NOT NULL,
|
||||
"endorsed" BOOLEAN NOT NULL,
|
||||
"languages" TEXT[],
|
||||
"note" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "Relationship_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Status" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"uri" TEXT NOT NULL,
|
||||
"authorId" UUID NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
"reblogId" UUID,
|
||||
"isReblog" BOOLEAN NOT NULL,
|
||||
"content" TEXT NOT NULL DEFAULT '',
|
||||
"contentType" TEXT NOT NULL DEFAULT 'text/plain',
|
||||
"visibility" TEXT NOT NULL,
|
||||
"inReplyToPostId" UUID,
|
||||
"quotingPostId" UUID,
|
||||
"instanceId" UUID,
|
||||
"sensitive" BOOLEAN NOT NULL,
|
||||
"spoilerText" TEXT NOT NULL DEFAULT '',
|
||||
"applicationId" UUID,
|
||||
|
||||
CONSTRAINT "Status_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Token" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"token_type" TEXT NOT NULL,
|
||||
"scope" TEXT NOT NULL,
|
||||
"access_token" TEXT NOT NULL,
|
||||
"code" TEXT NOT NULL,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"userId" UUID,
|
||||
"applicationId" UUID,
|
||||
|
||||
CONSTRAINT "Token_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "User" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"uri" TEXT NOT NULL,
|
||||
"username" TEXT NOT NULL,
|
||||
"displayName" TEXT NOT NULL,
|
||||
"password" TEXT,
|
||||
"email" TEXT,
|
||||
"note" TEXT NOT NULL DEFAULT '',
|
||||
"isAdmin" BOOLEAN NOT NULL DEFAULT false,
|
||||
"endpoints" JSONB,
|
||||
"source" JSONB NOT NULL,
|
||||
"avatar" TEXT NOT NULL,
|
||||
"header" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
"isBot" BOOLEAN NOT NULL DEFAULT false,
|
||||
"isLocked" BOOLEAN NOT NULL DEFAULT false,
|
||||
"isDiscoverable" BOOLEAN NOT NULL DEFAULT false,
|
||||
"sanctions" TEXT[] DEFAULT ARRAY[]::TEXT[],
|
||||
"publicKey" TEXT NOT NULL,
|
||||
"privateKey" TEXT,
|
||||
"instanceId" UUID,
|
||||
|
||||
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "_EmojiToUser" (
|
||||
"A" UUID NOT NULL,
|
||||
"B" UUID NOT NULL
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "_EmojiToStatus" (
|
||||
"A" UUID NOT NULL,
|
||||
"B" UUID NOT NULL
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "_StatusToUser" (
|
||||
"A" UUID NOT NULL,
|
||||
"B" UUID NOT NULL
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "_UserPinnedNotes" (
|
||||
"A" UUID NOT NULL,
|
||||
"B" UUID NOT NULL
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "LysandObject_remote_id_key" ON "LysandObject"("remote_id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "LysandObject_uri_key" ON "LysandObject"("uri");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Status_uri_key" ON "Status"("uri");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "User_uri_key" ON "User"("uri");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "User_username_key" ON "User"("username");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "_EmojiToUser_AB_unique" ON "_EmojiToUser"("A", "B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_EmojiToUser_B_index" ON "_EmojiToUser"("B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "_EmojiToStatus_AB_unique" ON "_EmojiToStatus"("A", "B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_EmojiToStatus_B_index" ON "_EmojiToStatus"("B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "_StatusToUser_AB_unique" ON "_StatusToUser"("A", "B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_StatusToUser_B_index" ON "_StatusToUser"("B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "_UserPinnedNotes_AB_unique" ON "_UserPinnedNotes"("A", "B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_UserPinnedNotes_B_index" ON "_UserPinnedNotes"("B");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Emoji" ADD CONSTRAINT "Emoji_instanceId_fkey" FOREIGN KEY ("instanceId") REFERENCES "Instance"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Like" ADD CONSTRAINT "Like_likerId_fkey" FOREIGN KEY ("likerId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Like" ADD CONSTRAINT "Like_likedId_fkey" FOREIGN KEY ("likedId") REFERENCES "Status"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "LysandObject" ADD CONSTRAINT "LysandObject_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "LysandObject"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Relationship" ADD CONSTRAINT "Relationship_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Relationship" ADD CONSTRAINT "Relationship_subjectId_fkey" FOREIGN KEY ("subjectId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Status" ADD CONSTRAINT "Status_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Status" ADD CONSTRAINT "Status_reblogId_fkey" FOREIGN KEY ("reblogId") REFERENCES "Status"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Status" ADD CONSTRAINT "Status_inReplyToPostId_fkey" FOREIGN KEY ("inReplyToPostId") REFERENCES "Status"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Status" ADD CONSTRAINT "Status_quotingPostId_fkey" FOREIGN KEY ("quotingPostId") REFERENCES "Status"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Status" ADD CONSTRAINT "Status_instanceId_fkey" FOREIGN KEY ("instanceId") REFERENCES "Instance"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Status" ADD CONSTRAINT "Status_applicationId_fkey" FOREIGN KEY ("applicationId") REFERENCES "Application"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Token" ADD CONSTRAINT "Token_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Token" ADD CONSTRAINT "Token_applicationId_fkey" FOREIGN KEY ("applicationId") REFERENCES "Application"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "User" ADD CONSTRAINT "User_instanceId_fkey" FOREIGN KEY ("instanceId") REFERENCES "Instance"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_EmojiToUser" ADD CONSTRAINT "_EmojiToUser_A_fkey" FOREIGN KEY ("A") REFERENCES "Emoji"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_EmojiToUser" ADD CONSTRAINT "_EmojiToUser_B_fkey" FOREIGN KEY ("B") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_EmojiToStatus" ADD CONSTRAINT "_EmojiToStatus_A_fkey" FOREIGN KEY ("A") REFERENCES "Emoji"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_EmojiToStatus" ADD CONSTRAINT "_EmojiToStatus_B_fkey" FOREIGN KEY ("B") REFERENCES "Status"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_StatusToUser" ADD CONSTRAINT "_StatusToUser_A_fkey" FOREIGN KEY ("A") REFERENCES "Status"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_StatusToUser" ADD CONSTRAINT "_StatusToUser_B_fkey" FOREIGN KEY ("B") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_UserPinnedNotes" ADD CONSTRAINT "_UserPinnedNotes_A_fkey" FOREIGN KEY ("A") REFERENCES "Status"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_UserPinnedNotes" ADD CONSTRAINT "_UserPinnedNotes_B_fkey" FOREIGN KEY ("B") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
-- CreateTable
|
||||
CREATE TABLE "Attachment" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"url" TEXT NOT NULL,
|
||||
"remote_url" TEXT,
|
||||
"thumbnail_url" TEXT,
|
||||
"mime_type" TEXT NOT NULL,
|
||||
"description" TEXT,
|
||||
"blurhash" TEXT,
|
||||
"sha256" TEXT,
|
||||
"fps" INTEGER,
|
||||
"duration" INTEGER,
|
||||
"width" INTEGER,
|
||||
"height" INTEGER,
|
||||
"size" INTEGER,
|
||||
"statusId" UUID,
|
||||
|
||||
CONSTRAINT "Attachment_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Attachment" ADD CONSTRAINT "Attachment_statusId_fkey" FOREIGN KEY ("statusId") REFERENCES "Status"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
-- CreateTable
|
||||
CREATE TABLE "Notification" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"type" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"notifiedId" UUID NOT NULL,
|
||||
"accountId" UUID NOT NULL,
|
||||
"statusId" UUID,
|
||||
|
||||
CONSTRAINT "Notification_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Notification" ADD CONSTRAINT "Notification_notifiedId_fkey" FOREIGN KEY ("notifiedId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Notification" ADD CONSTRAINT "Notification_accountId_fkey" FOREIGN KEY ("accountId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Notification" ADD CONSTRAINT "Notification_statusId_fkey" FOREIGN KEY ("statusId") REFERENCES "Status"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
-- AlterTable
|
||||
ALTER TABLE "Status" ADD COLUMN "contentSource" TEXT NOT NULL DEFAULT '';
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
-- CreateTable
|
||||
CREATE TABLE "OpenIdLoginFlow" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"codeVerifier" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "OpenIdLoginFlow_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "OpenIdAccount" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"userId" UUID,
|
||||
"serverId" TEXT NOT NULL,
|
||||
"issuerId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "OpenIdAccount_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "OpenIdAccount" ADD CONSTRAINT "OpenIdAccount_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `issuerId` to the `OpenIdLoginFlow` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "OpenIdLoginFlow" ADD COLUMN "applicationId" UUID,
|
||||
ADD COLUMN "issuerId" TEXT NOT NULL;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "OpenIdLoginFlow" ADD CONSTRAINT "OpenIdLoginFlow_applicationId_fkey" FOREIGN KEY ("applicationId") REFERENCES "Application"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
/*
|
||||
Warnings:
|
||||
|
||||
- A unique constraint covering the columns `[client_id]` on the table `Application` will be added. If there are existing duplicate values, this will fail.
|
||||
|
||||
*/
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Application_client_id_key" ON "Application"("client_id");
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
-- AlterTable
|
||||
ALTER TABLE "Instance" ADD COLUMN "disableAutomoderation" BOOLEAN NOT NULL DEFAULT false;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "User" ADD COLUMN "disableAutomoderation" BOOLEAN NOT NULL DEFAULT false;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "ModerationData" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"statusId" UUID NOT NULL,
|
||||
"creatorId" UUID NOT NULL,
|
||||
"note" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "ModerationData_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Flag" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"statusId" UUID NOT NULL,
|
||||
"userId" UUID NOT NULL,
|
||||
"flagType" TEXT NOT NULL DEFAULT 'other',
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "Flag_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ModerationData" ADD CONSTRAINT "ModerationData_statusId_fkey" FOREIGN KEY ("statusId") REFERENCES "Status"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ModerationData" ADD CONSTRAINT "ModerationData_creatorId_fkey" FOREIGN KEY ("creatorId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Flag" ADD CONSTRAINT "Flag_statusId_fkey" FOREIGN KEY ("statusId") REFERENCES "Status"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Flag" ADD CONSTRAINT "Flag_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `statusId` on the `Flag` table. All the data in the column will be lost.
|
||||
- You are about to drop the column `userId` on the `Flag` table. All the data in the column will be lost.
|
||||
- You are about to drop the `ModerationData` table. If the table is not empty, all the data it contains will be lost.
|
||||
|
||||
*/
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Flag" DROP CONSTRAINT "Flag_statusId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "Flag" DROP CONSTRAINT "Flag_userId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "ModerationData" DROP CONSTRAINT "ModerationData_creatorId_fkey";
|
||||
|
||||
-- DropForeignKey
|
||||
ALTER TABLE "ModerationData" DROP CONSTRAINT "ModerationData_statusId_fkey";
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "Flag" DROP COLUMN "statusId",
|
||||
DROP COLUMN "userId",
|
||||
ADD COLUMN "flaggeStatusId" UUID,
|
||||
ADD COLUMN "flaggedUserId" UUID;
|
||||
|
||||
-- DropTable
|
||||
DROP TABLE "ModerationData";
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "ModNote" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"notedStatusId" UUID,
|
||||
"notedUserId" UUID,
|
||||
"modId" UUID NOT NULL,
|
||||
"note" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "ModNote_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "ModTag" (
|
||||
"id" UUID NOT NULL DEFAULT uuid_generate_v7(),
|
||||
"taggedStatusId" UUID,
|
||||
"taggedUserId" UUID,
|
||||
"modId" UUID NOT NULL,
|
||||
"tag" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "ModTag_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ModNote" ADD CONSTRAINT "ModNote_notedStatusId_fkey" FOREIGN KEY ("notedStatusId") REFERENCES "Status"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ModNote" ADD CONSTRAINT "ModNote_notedUserId_fkey" FOREIGN KEY ("notedUserId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ModNote" ADD CONSTRAINT "ModNote_modId_fkey" FOREIGN KEY ("modId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ModTag" ADD CONSTRAINT "ModTag_taggedStatusId_fkey" FOREIGN KEY ("taggedStatusId") REFERENCES "Status"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ModTag" ADD CONSTRAINT "ModTag_taggedUserId_fkey" FOREIGN KEY ("taggedUserId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ModTag" ADD CONSTRAINT "ModTag_modId_fkey" FOREIGN KEY ("modId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Flag" ADD CONSTRAINT "Flag_flaggeStatusId_fkey" FOREIGN KEY ("flaggeStatusId") REFERENCES "Status"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Flag" ADD CONSTRAINT "Flag_flaggedUserId_fkey" FOREIGN KEY ("flaggedUserId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
-- AlterTable
|
||||
ALTER TABLE "Status" ALTER COLUMN "uri" DROP NOT NULL;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "User" ALTER COLUMN "uri" DROP NOT NULL;
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `isReblog` on the `Status` table. All the data in the column will be lost.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE "Status" DROP COLUMN "isReblog";
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
# Please do not edit this file manually
|
||||
# It should be added in your version-control system (i.e. Git)
|
||||
provider = "postgresql"
|
||||
|
|
@ -1,278 +0,0 @@
|
|||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
previewFeatures = ["postgresqlExtensions"]
|
||||
// These last two lines are important for Docker!
|
||||
binaryTargets = ["native", "debian-openssl-3.0.x", "linux-arm64-openssl-3.0.x"]
|
||||
}
|
||||
|
||||
generator json {
|
||||
provider = "prisma-json-types-generator"
|
||||
}
|
||||
|
||||
datasource db {
|
||||
provider = "postgresql"
|
||||
url = env("DATABASE_URL")
|
||||
extensions = [pg_uuidv7]
|
||||
}
|
||||
|
||||
model Application {
|
||||
id String @id @default(dbgenerated("uuid_generate_v7()")) @db.Uuid
|
||||
name String
|
||||
website String?
|
||||
vapid_key String?
|
||||
client_id String @unique
|
||||
secret String
|
||||
scopes String
|
||||
redirect_uris String
|
||||
statuses Status[] // One to many relation with Status
|
||||
tokens Token[] // One to many relation with Token
|
||||
openIdLoginFlows OpenIdLoginFlow[]
|
||||
}
|
||||
|
||||
model Emoji {
|
||||
id String @id @default(dbgenerated("uuid_generate_v7()")) @db.Uuid
|
||||
shortcode String
|
||||
url String
|
||||
visible_in_picker Boolean
|
||||
instance Instance? @relation(fields: [instanceId], references: [id], onDelete: Cascade)
|
||||
instanceId String? @db.Uuid
|
||||
alt String?
|
||||
content_type String
|
||||
users User[] // Many to many relation with User
|
||||
statuses Status[] // Many to many relation with Status
|
||||
}
|
||||
|
||||
model Instance {
|
||||
id String @id @default(dbgenerated("uuid_generate_v7()")) @db.Uuid
|
||||
base_url String
|
||||
name String
|
||||
version String
|
||||
/// [InstanceLogo]
|
||||
logo Json
|
||||
emojis Emoji[] // One to many relation with Emoji
|
||||
statuses Status[] // One to many relation with Status
|
||||
users User[] // One to many relation with User
|
||||
disableAutomoderation Boolean @default(false)
|
||||
}
|
||||
|
||||
model Like {
|
||||
id String @id @default(dbgenerated("uuid_generate_v7()")) @db.Uuid
|
||||
liker User @relation("UserLiked", fields: [likerId], references: [id], onDelete: Cascade)
|
||||
likerId String @db.Uuid
|
||||
liked Status @relation("LikedToStatus", fields: [likedId], references: [id], onDelete: Cascade)
|
||||
likedId String @db.Uuid
|
||||
createdAt DateTime @default(now())
|
||||
}
|
||||
|
||||
model LysandObject {
|
||||
id String @id @default(dbgenerated("uuid_generate_v7()")) @db.Uuid
|
||||
remote_id String @unique
|
||||
type String
|
||||
uri String @unique
|
||||
created_at DateTime @default(now())
|
||||
author LysandObject? @relation("LysandObjectToAuthor", fields: [authorId], references: [id], onDelete: Cascade)
|
||||
authorId String? @db.Uuid
|
||||
/// [ObjectData]
|
||||
extra_data Json
|
||||
/// [ObjectExtensions]
|
||||
extensions Json
|
||||
children LysandObject[] @relation("LysandObjectToAuthor")
|
||||
}
|
||||
|
||||
model Relationship {
|
||||
id String @id @default(dbgenerated("uuid_generate_v7()")) @db.Uuid
|
||||
owner User @relation("OwnerToRelationship", fields: [ownerId], references: [id], onDelete: Cascade)
|
||||
ownerId String @db.Uuid
|
||||
subject User @relation("SubjectToRelationship", fields: [subjectId], references: [id], onDelete: Cascade)
|
||||
subjectId String @db.Uuid
|
||||
following Boolean
|
||||
showingReblogs Boolean
|
||||
notifying Boolean
|
||||
followedBy Boolean
|
||||
blocking Boolean
|
||||
blockedBy Boolean
|
||||
muting Boolean
|
||||
mutingNotifications Boolean
|
||||
requested Boolean
|
||||
domainBlocking Boolean
|
||||
endorsed Boolean
|
||||
languages String[]
|
||||
note String
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
}
|
||||
|
||||
model Status {
|
||||
id String @id @default(dbgenerated("uuid_generate_v7()")) @db.Uuid
|
||||
uri String? @unique
|
||||
author User @relation("UserStatuses", fields: [authorId], references: [id], onDelete: Cascade)
|
||||
authorId String @db.Uuid
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
reblog Status? @relation("StatusToStatus", fields: [reblogId], references: [id], onDelete: Cascade)
|
||||
reblogId String? @db.Uuid
|
||||
content String @default("")
|
||||
contentType String @default("text/plain")
|
||||
contentSource String @default("")
|
||||
visibility String
|
||||
inReplyToPost Status? @relation("StatusToStatusReply", fields: [inReplyToPostId], references: [id], onDelete: SetNull)
|
||||
inReplyToPostId String? @db.Uuid
|
||||
quotingPost Status? @relation("StatusToStatusQuote", fields: [quotingPostId], references: [id], onDelete: SetNull)
|
||||
quotingPostId String? @db.Uuid
|
||||
instance Instance? @relation(fields: [instanceId], references: [id], onDelete: Cascade)
|
||||
instanceId String? @db.Uuid
|
||||
sensitive Boolean
|
||||
spoilerText String @default("")
|
||||
application Application? @relation(fields: [applicationId], references: [id], onDelete: SetNull)
|
||||
applicationId String? @db.Uuid
|
||||
emojis Emoji[] @relation
|
||||
mentions User[]
|
||||
likes Like[] @relation("LikedToStatus")
|
||||
reblogs Status[] @relation("StatusToStatus")
|
||||
replies Status[] @relation("StatusToStatusReply")
|
||||
quotes Status[] @relation("StatusToStatusQuote")
|
||||
pinnedBy User[] @relation("UserPinnedNotes")
|
||||
attachments Attachment[]
|
||||
relatedNotifications Notification[]
|
||||
flags Flag[]
|
||||
modNotes ModNote[]
|
||||
modTags ModTag[]
|
||||
}
|
||||
|
||||
model ModNote {
|
||||
id String @id @default(dbgenerated("uuid_generate_v7()")) @db.Uuid
|
||||
notedStatus Status? @relation(fields: [notedStatusId], references: [id], onDelete: Cascade)
|
||||
notedStatusId String? @db.Uuid
|
||||
notedUser User? @relation("ModNoteToUser", fields: [notedUserId], references: [id], onDelete: Cascade)
|
||||
notedUserId String? @db.Uuid
|
||||
mod User @relation("ModNoteToMod", fields: [modId], references: [id], onDelete: Cascade)
|
||||
modId String @db.Uuid
|
||||
note String
|
||||
createdAt DateTime @default(now())
|
||||
}
|
||||
|
||||
model ModTag {
|
||||
id String @id @default(dbgenerated("uuid_generate_v7()")) @db.Uuid
|
||||
taggedStatus Status? @relation(fields: [taggedStatusId], references: [id], onDelete: Cascade)
|
||||
taggedStatusId String? @db.Uuid
|
||||
taggedUser User? @relation("ModNoteToTaggedUser", fields: [taggedUserId], references: [id], onDelete: Cascade)
|
||||
taggedUserId String? @db.Uuid
|
||||
mod User @relation("ModTagToMod", fields: [modId], references: [id], onDelete: Cascade)
|
||||
modId String @db.Uuid
|
||||
tag String
|
||||
createdAt DateTime @default(now())
|
||||
}
|
||||
|
||||
// Used to tag notes and accounts with automatic moderation infractions
|
||||
model Flag {
|
||||
id String @id @default(dbgenerated("uuid_generate_v7()")) @db.Uuid
|
||||
flaggedStatus Status? @relation(fields: [flaggeStatusId], references: [id], onDelete: Cascade)
|
||||
flaggeStatusId String? @db.Uuid
|
||||
flaggedUser User? @relation(fields: [flaggedUserId], references: [id], onDelete: Cascade)
|
||||
flaggedUserId String? @db.Uuid
|
||||
flagType String @default("other")
|
||||
createdAt DateTime @default(now())
|
||||
}
|
||||
|
||||
model Token {
|
||||
id String @id @default(dbgenerated("uuid_generate_v7()")) @db.Uuid
|
||||
token_type String
|
||||
scope String
|
||||
access_token String
|
||||
code String
|
||||
created_at DateTime @default(now())
|
||||
user User? @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
userId String? @db.Uuid
|
||||
application Application? @relation(fields: [applicationId], references: [id], onDelete: Cascade)
|
||||
applicationId String? @db.Uuid
|
||||
}
|
||||
|
||||
model OpenIdLoginFlow {
|
||||
id String @id @default(dbgenerated("uuid_generate_v7()")) @db.Uuid
|
||||
codeVerifier String
|
||||
issuerId String
|
||||
application Application? @relation(fields: [applicationId], references: [id], onDelete: Cascade)
|
||||
applicationId String? @db.Uuid
|
||||
}
|
||||
|
||||
model Attachment {
|
||||
id String @id @default(dbgenerated("uuid_generate_v7()")) @db.Uuid
|
||||
url String
|
||||
remote_url String?
|
||||
thumbnail_url String?
|
||||
mime_type String
|
||||
description String?
|
||||
blurhash String?
|
||||
sha256 String?
|
||||
fps Int?
|
||||
duration Int?
|
||||
width Int?
|
||||
height Int?
|
||||
size Int?
|
||||
status Status? @relation(fields: [statusId], references: [id], onDelete: Cascade)
|
||||
statusId String? @db.Uuid
|
||||
}
|
||||
|
||||
model Notification {
|
||||
id String @id @default(dbgenerated("uuid_generate_v7()")) @db.Uuid
|
||||
type String
|
||||
createdAt DateTime @default(now())
|
||||
notified User @relation("NotificationToNotified", fields: [notifiedId], references: [id], onDelete: Cascade)
|
||||
notifiedId String @db.Uuid
|
||||
account User @relation(fields: [accountId], references: [id], onDelete: Cascade)
|
||||
accountId String @db.Uuid
|
||||
status Status? @relation(fields: [statusId], references: [id], onDelete: Cascade)
|
||||
statusId String? @db.Uuid
|
||||
}
|
||||
|
||||
model User {
|
||||
id String @id @default(dbgenerated("uuid_generate_v7()")) @db.Uuid
|
||||
uri String? @unique
|
||||
username String @unique
|
||||
displayName String
|
||||
password String? // Nullable
|
||||
email String? @unique // Nullable
|
||||
note String @default("")
|
||||
isAdmin Boolean @default(false)
|
||||
/// [UserEndpoints]
|
||||
endpoints Json? // Nullable
|
||||
/// [UserSource]
|
||||
source Json
|
||||
avatar String
|
||||
header String
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
isBot Boolean @default(false)
|
||||
isLocked Boolean @default(false)
|
||||
isDiscoverable Boolean @default(false)
|
||||
sanctions String[] @default([])
|
||||
publicKey String
|
||||
privateKey String? // Nullable
|
||||
relationships Relationship[] @relation("OwnerToRelationship") // One to many relation with Relationship
|
||||
relationshipSubjects Relationship[] @relation("SubjectToRelationship") // One to many relation with Relationship
|
||||
instance Instance? @relation(fields: [instanceId], references: [id], onDelete: Cascade) // Many to one relation with Instance
|
||||
instanceId String? @db.Uuid
|
||||
pinnedNotes Status[] @relation("UserPinnedNotes") // Many to many relation with Status
|
||||
emojis Emoji[] // Many to many relation with Emoji
|
||||
statuses Status[] @relation("UserStatuses") // One to many relation with Status
|
||||
tokens Token[] // One to many relation with Token
|
||||
likes Like[] @relation("UserLiked") // One to many relation with Like
|
||||
statusesMentioned Status[] // Many to many relation with Status
|
||||
notifications Notification[] // One to many relation with Notification
|
||||
notified Notification[] @relation("NotificationToNotified") // One to many relation with Notification
|
||||
linkedOpenIdAccounts OpenIdAccount[] // One to many relation with OpenIdAccount
|
||||
flags Flag[]
|
||||
modNotes ModNote[] @relation("ModNoteToUser")
|
||||
modTags ModTag[] @relation("ModNoteToTaggedUser")
|
||||
disableAutomoderation Boolean @default(false)
|
||||
createdModTags ModTag[] @relation("ModTagToMod")
|
||||
createdModNotes ModNote[] @relation("ModNoteToMod")
|
||||
}
|
||||
|
||||
model OpenIdAccount {
|
||||
id String @id @default(dbgenerated("uuid_generate_v7()")) @db.Uuid
|
||||
User User? @relation(fields: [userId], references: [id])
|
||||
userId String? @db.Uuid
|
||||
serverId String // ID on the authorization server
|
||||
issuerId String
|
||||
}
|
||||
Loading…
Reference in a new issue