diff options
Diffstat (limited to 'packages/db/schema.ts')
| -rw-r--r-- | packages/db/schema.ts | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/packages/db/schema.ts b/packages/db/schema.ts index 9d742b45..c1706edf 100644 --- a/packages/db/schema.ts +++ b/packages/db/schema.ts @@ -381,6 +381,26 @@ export const rssFeedsTable = sqliteTable( (bl) => [index("rssFeeds_userId_idx").on(bl.userId)], ); +export const webhooksTable = sqliteTable( + "webhooks", + { + id: text("id") + .notNull() + .primaryKey() + .$defaultFn(() => createId()), + createdAt: createdAtField(), + url: text("url").notNull(), + userId: text("userId") + .notNull() + .references(() => users.id, { onDelete: "cascade" }), + events: text("events", { mode: "json" }) + .notNull() + .$type<("created" | "edited" | "crawled")[]>(), + token: text("token"), + }, + (bl) => [index("webhooks_userId_idx").on(bl.userId)], +); + export const rssFeedImportsTable = sqliteTable( "rssFeedImports", { @@ -414,6 +434,7 @@ export const config = sqliteTable("config", { export const userRelations = relations(users, ({ many }) => ({ tags: many(bookmarkTags), bookmarks: many(bookmarks), + webhooks: many(webhooksTable), })); export const bookmarkRelations = relations(bookmarks, ({ many, one }) => ({ @@ -505,3 +526,11 @@ export const bookmarksInListsRelations = relations( }), }), ); + + +export const webhooksRelations = relations(webhooksTable, ({ one }) => ({ + user: one(users, { + fields: [webhooksTable.userId], + references: [users.id], + }), +})); |
