aboutsummaryrefslogtreecommitdiffstats
path: root/packages/db/prisma/schema.prisma
diff options
context:
space:
mode:
Diffstat (limited to 'packages/db/prisma/schema.prisma')
-rw-r--r--packages/db/prisma/schema.prisma54
1 files changed, 31 insertions, 23 deletions
diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma
index 0e6d080c..623a9f13 100644
--- a/packages/db/prisma/schema.prisma
+++ b/packages/db/prisma/schema.prisma
@@ -38,15 +38,15 @@ model Session {
}
model User {
- id String @id @default(cuid())
+ id String @id @default(cuid())
name String?
- email String? @unique
+ email String? @unique
emailVerified DateTime?
image String?
accounts Account[]
sessions Session[]
- links BookmarkedLink[]
tags BookmarkTags[]
+ bookmarks Bookmark[]
}
model VerificationToken {
@@ -57,28 +57,34 @@ model VerificationToken {
@@unique([identifier, token])
}
-model BookmarkedLink {
- id String @id @default(cuid())
- url String
- createdAt DateTime @default(now())
+model Bookmark {
+ id String @id @default(cuid())
+ createdAt DateTime @default(now())
+ archived Boolean @default(false)
+ favourited Boolean @default(false)
+ userId String
- userId String
+ // Content relation
+ link BookmarkedLink?
- details BookmarkedLinkDetails?
-
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
- tags TagsOnLinks[]
+ // Other relations
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
+ tags TagsOnBookmarks[]
}
-model BookmarkedLinkDetails {
- id String @id
+model BookmarkedLink {
+ id String @id
+ url String
+
+ // Crawled info
title String?
description String?
imageUrl String?
favicon String?
- createdAt DateTime @default(now())
+ crawledAt DateTime?
- link BookmarkedLink @relation(fields: [id], references: [id], onDelete: Cascade)
+ // Relations
+ parentBookmark Bookmark @relation(fields: [id], references: [id], onDelete: Cascade)
}
model BookmarkTags {
@@ -88,18 +94,20 @@ model BookmarkTags {
userId String
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
- attachedLinks TagsOnLinks[]
+ // Relations
+ user User @relation(fields: [userId], references: [id], onDelete: Cascade)
+ bookmarks TagsOnBookmarks[]
}
-model TagsOnLinks {
- link BookmarkedLink @relation(fields: [linkId], references: [id], onDelete: Cascade)
- linkId String
+model TagsOnBookmarks {
+ bookmark Bookmark @relation(fields: [bookmarkId], references: [id], onDelete: Cascade)
+ bookmarkId String
tag BookmarkTags @relation(fields: [tagId], references: [id], onDelete: Cascade)
tagId String
- attachedAt DateTime @default(now())
+ attachedAt DateTime @default(now())
+ attachedBy String // "human" or "ai" (if only prisma sqlite supported enums)
- @@unique([linkId, tagId])
+ @@unique([bookmarkId, tagId])
}