Files
Kordant/web/src/server/db/schema/report-schedules.ts
2026-05-25 20:50:45 -04:00

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),
}));