diff options
| author | Kush Thaker <[email protected]> | 2024-07-31 10:56:40 +0530 |
|---|---|---|
| committer | Kush Thaker <[email protected]> | 2024-07-31 10:56:40 +0530 |
| commit | 6e1d53e28a056e429c54e1e6af45eaa7939daa41 (patch) | |
| tree | 21dfd3c64742d9e9405e68b1695acbb95f5fdde2 /apps/web/server | |
| parent | fix ids not present in storecontent (diff) | |
| download | supermemory-6e1d53e28a056e429c54e1e6af45eaa7939daa41.tar.xz supermemory-6e1d53e28a056e429c54e1e6af45eaa7939daa41.zip | |
queues so far
Co-authored-by: Dhravya Shah <[email protected]>
Diffstat (limited to 'apps/web/server')
| -rw-r--r-- | apps/web/server/db/schema.ts | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/apps/web/server/db/schema.ts b/apps/web/server/db/schema.ts index 32b80719..11711997 100644 --- a/apps/web/server/db/schema.ts +++ b/apps/web/server/db/schema.ts @@ -7,6 +7,7 @@ import { sqliteTableCreator, text, integer, + blob, } from "drizzle-orm/sqlite-core"; import type { AdapterAccountType } from "next-auth/adapters"; @@ -242,3 +243,28 @@ export const canvas = createTable( export type ChatThread = typeof chatThreads.$inferSelect; export type ChatHistory = typeof chatHistory.$inferSelect; + +export const jobs = createTable( + "jobs", + { + id: integer("id").notNull().primaryKey({ autoIncrement: true }), + userId: text("userId") + .notNull() + .references(() => users.id, { onDelete: "cascade" }), + url: text("url").notNull(), + status: text("status").notNull(), + attempts: integer("attempts").notNull().default(0), + lastAttemptAt: integer("lastAttemptAt"), + error: blob("error"), + createdAt: integer("createdAt").notNull(), + updatedAt: integer("updatedAt").notNull(), + }, + (job) => ({ + userIdx: index("jobs_userId_idx").on(job.userId), + statusIdx: index("jobs_status_idx").on(job.status), + createdAtIdx: index("jobs_createdAt_idx").on(job.createdAt), + urlIdx: index("jobs_url_idx").on(job.url), + }), +); + +export type Job = typeof jobs.$inferSelect; |