diff --git a/src/common/databases/migrations/20240417122422_rules_groups/migration.sql b/src/common/databases/migrations/20240417122422_rules_groups/migration.sql new file mode 100644 index 00000000..77df62a3 --- /dev/null +++ b/src/common/databases/migrations/20240417122422_rules_groups/migration.sql @@ -0,0 +1,30 @@ +-- CreateTable +CREATE TABLE "rules_groups" ( + "uid" TEXT NOT NULL, + "name" VARCHAR(255) NOT NULL, + "created_at" TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMP(3), + + CONSTRAINT "rules_groups_pkey" PRIMARY KEY ("uid") +); + +-- CreateTable +CREATE TABLE "_RulesGroupsHasRules" ( + "A" TEXT NOT NULL, + "B" TEXT NOT NULL +); + +-- CreateIndex +CREATE UNIQUE INDEX "rules_groups_uid_key" ON "rules_groups"("uid"); + +-- CreateIndex +CREATE UNIQUE INDEX "_RulesGroupsHasRules_AB_unique" ON "_RulesGroupsHasRules"("A", "B"); + +-- CreateIndex +CREATE INDEX "_RulesGroupsHasRules_B_index" ON "_RulesGroupsHasRules"("B"); + +-- AddForeignKey +ALTER TABLE "_RulesGroupsHasRules" ADD CONSTRAINT "_RulesGroupsHasRules_A_fkey" FOREIGN KEY ("A") REFERENCES "rules"("uid") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "_RulesGroupsHasRules" ADD CONSTRAINT "_RulesGroupsHasRules_B_fkey" FOREIGN KEY ("B") REFERENCES "rules_groups"("uid") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/src/common/databases/schema.prisma b/src/common/databases/schema.prisma index 9f21c34d..3d813215 100644 --- a/src/common/databases/schema.prisma +++ b/src/common/databases/schema.prisma @@ -323,9 +323,19 @@ model Rules { role Roles[] @relation("RolesHasRules") office_roles OfficeRoles[] @relation("OfficeRolesHasRules") namespace String @db.VarChar(255) @default("notary") + groups RulesGroups[] @relation("RulesGroupsHasRules") @@map("rules") } +model RulesGroups { + uid String @id @unique @default(uuid()) + name String @db.VarChar(255) + created_at DateTime? @default(now()) + updated_at DateTime? @updatedAt + rules Rules[] @relation("RulesGroupsHasRules") + @@map("rules_groups") +} + model Emails { uid String @id @unique @default(uuid()) templateName String @db.VarChar(255)