- Implemented AutoMod capabilities including spam filtering, anti-raid, and anti-nuke actions. - Added Logging module to track moderation actions and events across the bot. - Introduced Welcome module for customizable welcome messages and autoroles. - Developed Verification system with captcha and role assignment features. - Updated Prisma schema to include new models for AutoMod, Logging, Welcome, and Verification. - Enhanced command localization for new features in both German and English. - Improved health server to handle captcha verification requests. - Added new environment variable for public base URL to support captcha links.
149 lines
5.2 KiB
SQL
149 lines
5.2 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "AutoModConfig" (
|
|
"id" TEXT NOT NULL,
|
|
"guildId" TEXT NOT NULL,
|
|
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
|
"antiRaidEnabled" BOOLEAN NOT NULL DEFAULT false,
|
|
"antiRaidJoinThreshold" INTEGER NOT NULL DEFAULT 10,
|
|
"antiRaidWindowSeconds" INTEGER NOT NULL DEFAULT 10,
|
|
"antiRaidAction" TEXT NOT NULL DEFAULT 'LOCKDOWN',
|
|
"antiNukeEnabled" BOOLEAN NOT NULL DEFAULT false,
|
|
"antiNukeBanThreshold" INTEGER NOT NULL DEFAULT 5,
|
|
"antiNukeChannelThreshold" INTEGER NOT NULL DEFAULT 3,
|
|
"antiNukeWindowSeconds" INTEGER NOT NULL DEFAULT 60,
|
|
"lockdownActive" BOOLEAN NOT NULL DEFAULT false,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "AutoModConfig_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "AutoModRule" (
|
|
"id" TEXT NOT NULL,
|
|
"guildId" TEXT NOT NULL,
|
|
"ruleType" TEXT NOT NULL,
|
|
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
|
"action" TEXT NOT NULL DEFAULT 'DELETE',
|
|
"threshold" JSONB,
|
|
"exceptions" JSONB,
|
|
"wordList" JSONB,
|
|
"durationMs" INTEGER,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "AutoModRule_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "LoggingConfig" (
|
|
"id" TEXT NOT NULL,
|
|
"guildId" TEXT NOT NULL,
|
|
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
|
"ignoreBots" BOOLEAN NOT NULL DEFAULT true,
|
|
"ignoredChannelIds" TEXT[] DEFAULT ARRAY[]::TEXT[],
|
|
"ignoredRoleIds" TEXT[] DEFAULT ARRAY[]::TEXT[],
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "LoggingConfig_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "LogChannel" (
|
|
"id" TEXT NOT NULL,
|
|
"guildId" TEXT NOT NULL,
|
|
"eventType" TEXT NOT NULL,
|
|
"channelId" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "LogChannel_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "WelcomeConfig" (
|
|
"id" TEXT NOT NULL,
|
|
"guildId" TEXT NOT NULL,
|
|
"welcomeEnabled" BOOLEAN NOT NULL DEFAULT false,
|
|
"leaveEnabled" BOOLEAN NOT NULL DEFAULT false,
|
|
"welcomeChannelId" TEXT,
|
|
"leaveChannelId" TEXT,
|
|
"welcomeType" TEXT NOT NULL DEFAULT 'TEXT',
|
|
"welcomeContent" TEXT,
|
|
"welcomeEmbed" JSONB,
|
|
"leaveContent" TEXT,
|
|
"leaveEmbed" JSONB,
|
|
"welcomeDmEnabled" BOOLEAN NOT NULL DEFAULT false,
|
|
"welcomeDmContent" TEXT,
|
|
"userAutoroleIds" TEXT[] DEFAULT ARRAY[]::TEXT[],
|
|
"botAutoroleIds" TEXT[] DEFAULT ARRAY[]::TEXT[],
|
|
"imageTitle" TEXT,
|
|
"imageSubtitle" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "WelcomeConfig_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "VerificationConfig" (
|
|
"id" TEXT NOT NULL,
|
|
"guildId" TEXT NOT NULL,
|
|
"enabled" BOOLEAN NOT NULL DEFAULT false,
|
|
"channelId" TEXT,
|
|
"verifiedRoleId" TEXT,
|
|
"unverifiedRoleId" TEXT,
|
|
"mode" TEXT NOT NULL DEFAULT 'BUTTON',
|
|
"minAccountAgeDays" INTEGER NOT NULL DEFAULT 0,
|
|
"failAction" TEXT NOT NULL DEFAULT 'KICK',
|
|
"panelChannelId" TEXT,
|
|
"panelMessageId" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "VerificationConfig_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "AutoModConfig_guildId_key" ON "AutoModConfig"("guildId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "AutoModRule_guildId_enabled_idx" ON "AutoModRule"("guildId", "enabled");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "AutoModRule_guildId_ruleType_key" ON "AutoModRule"("guildId", "ruleType");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "LoggingConfig_guildId_key" ON "LoggingConfig"("guildId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "LogChannel_guildId_idx" ON "LogChannel"("guildId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "LogChannel_guildId_eventType_key" ON "LogChannel"("guildId", "eventType");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "WelcomeConfig_guildId_key" ON "WelcomeConfig"("guildId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "VerificationConfig_guildId_key" ON "VerificationConfig"("guildId");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "AutoModConfig" ADD CONSTRAINT "AutoModConfig_guildId_fkey" FOREIGN KEY ("guildId") REFERENCES "Guild"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "AutoModRule" ADD CONSTRAINT "AutoModRule_guildId_fkey" FOREIGN KEY ("guildId") REFERENCES "Guild"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "LoggingConfig" ADD CONSTRAINT "LoggingConfig_guildId_fkey" FOREIGN KEY ("guildId") REFERENCES "Guild"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "LogChannel" ADD CONSTRAINT "LogChannel_guildId_fkey" FOREIGN KEY ("guildId") REFERENCES "Guild"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "WelcomeConfig" ADD CONSTRAINT "WelcomeConfig_guildId_fkey" FOREIGN KEY ("guildId") REFERENCES "Guild"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "VerificationConfig" ADD CONSTRAINT "VerificationConfig_guildId_fkey" FOREIGN KEY ("guildId") REFERENCES "Guild"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|