18 lines
1006 B
TypeScript
18 lines
1006 B
TypeScript
import { sqliteTable, text, integer, index } from "drizzle-orm/sqlite-core";
|
|
import { users } from "./auth";
|
|
|
|
export const reportSchedules = sqliteTable("report_schedules", {
|
|
id: text("id").primaryKey().$defaultFn(() => crypto.randomUUID()),
|
|
userId: text("user_id").notNull().references(() => users.id, { onDelete: "cascade" }),
|
|
enabled: integer("enabled", { mode: "boolean" }).default(true).notNull(),
|
|
frequency: text("frequency").notNull(),
|
|
reportType: text("report_type").notNull(),
|
|
lastGeneratedAt: integer("last_generated_at", { mode: "timestamp_ms" }),
|
|
nextScheduledAt: integer("next_scheduled_at", { mode: "timestamp_ms" }),
|
|
createdAt: integer("created_at", { mode: "timestamp_ms" }).defaultNow().notNull(),
|
|
updatedAt: integer("updated_at", { mode: "timestamp_ms" }).defaultNow().notNull().$onUpdate(() => new Date()),
|
|
}, (table) => ({
|
|
userIdIdx: index("report_schedules_user_id_idx").on(table.userId),
|
|
enabledIdx: index("report_schedules_enabled_idx").on(table.enabled),
|
|
}));
|