From bca3bd0c2aac4b508074a0f52027c7d218b8dac7 Mon Sep 17 00:00:00 2001 From: Raphael Date: Sun, 27 Jul 2025 18:27:46 +0200 Subject: [PATCH] feat(db/prisma): adding the database inplementation / schema --- prisma/schema.prisma | 58 ++++++++++++++++++++++++++++++++++++++++++++ src/lib/prisma.ts | 3 +++ 2 files changed, 61 insertions(+) create mode 100644 prisma/schema.prisma create mode 100644 src/lib/prisma.ts diff --git a/prisma/schema.prisma b/prisma/schema.prisma new file mode 100644 index 0000000..7004953 --- /dev/null +++ b/prisma/schema.prisma @@ -0,0 +1,58 @@ +generator client { + provider = "prisma-client-js" +} + +datasource db { + provider = "sqlite" + url = "file:./dev.db" +} + +model Bot { + id Int @id @default(autoincrement()) + + buyers User[] @relation("Buyers") + owners User[] @relation("Owners") +} + +model User { + id String @id @map("user_id") + isOwner Boolean @default(false) + isBuyer Boolean @default(false) + isDev Boolean @default(false) + isEnium Boolean @default(false) + isPwn Boolean @default(false) + + botsAsBuyer Bot[] @relation("Buyers") + botsAsOwner Bot[] @relation("Owners") + + guildUsers GuildUser[] @relation("UserGuildRelation") +} + +model Guild { + id String @id @map("guild_id") + log Boolean @default(false) + logBot Boolean @default(false) + logChannel Boolean @default(false) + logMember Boolean @default(false) + logMod Boolean @default(false) + logMsg Boolean @default(false) + logServer Boolean @default(false) + + guildUsers GuildUser[] @relation("GuildGuildRelation") +} + +model GuildUser { + id Int @id @default(autoincrement()) + + userId String + guildId String + + xp Int @default(0) + level Int @default(0) + isWlUser Boolean @default(false) + + user User @relation("UserGuildRelation", fields: [userId], references: [id]) + guild Guild @relation("GuildGuildRelation", fields: [guildId], references: [id]) + + @@unique([userId, guildId]) +} diff --git a/src/lib/prisma.ts b/src/lib/prisma.ts new file mode 100644 index 0000000..9b6c4ce --- /dev/null +++ b/src/lib/prisma.ts @@ -0,0 +1,3 @@ +import { PrismaClient } from '@prisma/client'; + +export const prisma = new PrismaClient();