88 lines
2.9 KiB
SQL
88 lines
2.9 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "MatchingAlgorithms" AS ENUM ('ANY', 'ALL', 'EXACT', 'REGEX', 'FUZZY');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "TextMutator" AS ENUM ('UWUIFY', 'UWUIFY_SFW', 'GOTHIC_SCRIPT', 'EMOJI_SUBSTITUTE', 'ZALGO', 'MORSE_CODE', 'BINARY', 'HEXADECIMAL', 'REMOVE_VOWELS', 'DOUBLE_CHARACTERS', 'SMALL_CASE', 'LEET_SPEAK', 'PIG_LATIN', 'UPSIDE_DOWN', 'ALL_REVERSED', 'REVERSED_WORDS', 'SHUFFLE_WORDS', 'RANDOM_CASE', 'GIBBERISH', 'SHAKESPEAREAN');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Feed" (
|
|
"id" SERIAL NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"url" TEXT NOT NULL,
|
|
"guild_id" TEXT NOT NULL,
|
|
"active" BOOLEAN NOT NULL,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Feed_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Channel" (
|
|
"id" SERIAL NOT NULL,
|
|
"channel_id" TEXT NOT NULL,
|
|
"feedId" INTEGER NOT NULL,
|
|
|
|
CONSTRAINT "Channel_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Filter" (
|
|
"id" SERIAL NOT NULL,
|
|
"guild_id" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"value" TEXT NOT NULL,
|
|
"matching_algorithm" "MatchingAlgorithms" NOT NULL,
|
|
"is_insensitive" BOOLEAN NOT NULL,
|
|
"is_whitelist" BOOLEAN NOT NULL,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Filter_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "MessageStyle" (
|
|
"id" SERIAL NOT NULL,
|
|
"guild_id" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"show_author" BOOLEAN NOT NULL,
|
|
"show_image" BOOLEAN NOT NULL,
|
|
"show_thumbnail" BOOLEAN NOT NULL,
|
|
"show_footer" BOOLEAN NOT NULL,
|
|
"show_timestamp" BOOLEAN NOT NULL,
|
|
"colour" VARCHAR(6) NOT NULL,
|
|
"title_mutator" "TextMutator",
|
|
"description_mutator" "TextMutator",
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "MessageStyle_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "_FeedToFilter" (
|
|
"A" INTEGER NOT NULL,
|
|
"B" INTEGER NOT NULL,
|
|
|
|
CONSTRAINT "_FeedToFilter_AB_pkey" PRIMARY KEY ("A","B")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Feed_guild_id_created_at_idx" ON "Feed"("guild_id", "created_at" DESC);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "Filter_guild_id_created_at_idx" ON "Filter"("guild_id", "created_at" DESC);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "_FeedToFilter_B_index" ON "_FeedToFilter"("B");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Channel" ADD CONSTRAINT "Channel_feedId_fkey" FOREIGN KEY ("feedId") REFERENCES "Feed"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "_FeedToFilter" ADD CONSTRAINT "_FeedToFilter_A_fkey" FOREIGN KEY ("A") REFERENCES "Feed"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "_FeedToFilter" ADD CONSTRAINT "_FeedToFilter_B_fkey" FOREIGN KEY ("B") REFERENCES "Filter"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|