aboutsummaryrefslogtreecommitdiffstats
path: root/packages/db/prisma/schema.prisma
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-02-08 15:14:23 +0000
committerMohamedBassem <me@mbassem.com>2024-02-08 15:15:21 +0000
commit80bb8a108f29331cdb2f2695f6801beee104dc89 (patch)
treeb1ae2a512963a9c916c4bfed71f7633f508de131 /packages/db/prisma/schema.prisma
parent333429adbaaa592cc96b480a5228f0e3f1de4cc2 (diff)
downloadkarakeep-80bb8a108f29331cdb2f2695f6801beee104dc89.tar.zst
[refactor] Move the different packages to the package subdir
Diffstat (limited to 'packages/db/prisma/schema.prisma')
-rw-r--r--packages/db/prisma/schema.prisma105
1 files changed, 105 insertions, 0 deletions
diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma
new file mode 100644
index 00000000..0e6d080c
--- /dev/null
+++ b/packages/db/prisma/schema.prisma
@@ -0,0 +1,105 @@
+// This is your Prisma schema file,
+// learn more about it in the docs: https://pris.ly/d/prisma-schema
+
+generator client {
+ provider = "prisma-client-js"
+}
+
+datasource db {
+ provider = "sqlite"
+ url = env("DATABASE_URL")
+}
+
+model Account {
+ id String @id @default(cuid())
+ userId String
+ type String
+ provider String
+ providerAccountId String
+ refresh_token String?
+ access_token String?
+ expires_at Int?
+ token_type String?
+ scope String?
+ id_token String?
+ session_state String?
+
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
+
+ @@unique([provider, providerAccountId])
+}
+
+model Session {
+ id String @id @default(cuid())
+ sessionToken String @unique
+ userId String
+ expires DateTime
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
+}
+
+model User {
+ id String @id @default(cuid())
+ name String?
+ email String? @unique
+ emailVerified DateTime?
+ image String?
+ accounts Account[]
+ sessions Session[]
+ links BookmarkedLink[]
+ tags BookmarkTags[]
+}
+
+model VerificationToken {
+ identifier String
+ token String @unique
+ expires DateTime
+
+ @@unique([identifier, token])
+}
+
+model BookmarkedLink {
+ id String @id @default(cuid())
+ url String
+ createdAt DateTime @default(now())
+
+ userId String
+
+ details BookmarkedLinkDetails?
+
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
+ tags TagsOnLinks[]
+}
+
+model BookmarkedLinkDetails {
+ id String @id
+ title String?
+ description String?
+ imageUrl String?
+ favicon String?
+ createdAt DateTime @default(now())
+
+ link BookmarkedLink @relation(fields: [id], references: [id], onDelete: Cascade)
+}
+
+model BookmarkTags {
+ id String @id @default(cuid())
+ name String @unique
+ createdAt DateTime @default(now())
+
+ userId String
+
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
+ attachedLinks TagsOnLinks[]
+}
+
+model TagsOnLinks {
+ link BookmarkedLink @relation(fields: [linkId], references: [id], onDelete: Cascade)
+ linkId String
+
+ tag BookmarkTags @relation(fields: [tagId], references: [id], onDelete: Cascade)
+ tagId String
+
+ attachedAt DateTime @default(now())
+
+ @@unique([linkId, tagId])
+}