feat: per channel chat moderator

This commit is contained in:
2026-02-21 16:44:00 +01:00
parent 5fca354c58
commit f4f653614d
10 changed files with 992 additions and 197 deletions

View File

@@ -0,0 +1,33 @@
-- CreateTable
CREATE TABLE "_ChannelChatModerators" (
"A" TEXT NOT NULL,
"B" TEXT NOT NULL,
CONSTRAINT "_ChannelChatModerators_AB_pkey" PRIMARY KEY ("A","B")
);
-- CreateTable
CREATE TABLE "_ChannelChatBotModerators" (
"A" TEXT NOT NULL,
"B" TEXT NOT NULL,
CONSTRAINT "_ChannelChatBotModerators_AB_pkey" PRIMARY KEY ("A","B")
);
-- CreateIndex
CREATE INDEX "_ChannelChatModerators_B_index" ON "_ChannelChatModerators"("B");
-- CreateIndex
CREATE INDEX "_ChannelChatBotModerators_B_index" ON "_ChannelChatBotModerators"("B");
-- AddForeignKey
ALTER TABLE "_ChannelChatModerators" ADD CONSTRAINT "_ChannelChatModerators_A_fkey" FOREIGN KEY ("A") REFERENCES "Channel"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "_ChannelChatModerators" ADD CONSTRAINT "_ChannelChatModerators_B_fkey" FOREIGN KEY ("B") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "_ChannelChatBotModerators" ADD CONSTRAINT "_ChannelChatBotModerators_A_fkey" FOREIGN KEY ("A") REFERENCES "BotAccount"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "_ChannelChatBotModerators" ADD CONSTRAINT "_ChannelChatBotModerators_B_fkey" FOREIGN KEY ("B") REFERENCES "Channel"("id") ON DELETE CASCADE ON UPDATE CASCADE;

View File

@@ -30,6 +30,7 @@ model User {
ownedChannels Channel[] @relation("ChannelOwner")
managedChannels Channel[] @relation("ChannelManagers")
chatModeratedChannels Channel[] @relation("ChannelChatModerators")
sessions Session[]
streams StreamInfo[]
followers Follow[] @relation("UserFollows")
@@ -62,6 +63,8 @@ model Channel {
owner User @relation("ChannelOwner", fields: [ownerId], references: [id])
ownerId String
managers User[] @relation("ChannelManagers")
chatModerators User[] @relation("ChannelChatModerators")
chatModeratorBots BotAccount[] @relation("ChannelChatBotModerators")
streamInfo StreamInfo[]
followers Follow[] @relation("ChannelFollowers")
streamKey StreamKey?
@@ -138,6 +141,7 @@ model BotAccount {
pfpUrl String
owner User @relation(fields: [ownerId], references: [id])
ownerId String
moderatingChannels Channel[] @relation("ChannelChatBotModerators")
apiKeys BotApiKey[]
createdAt DateTime @default(now())