Add named reminders with multiple times and day schedules
This commit is contained in:
@@ -71,6 +71,7 @@ export const reminderSettings = sqliteTable('reminder_settings', {
|
||||
userId: text('user_id').primaryKey().references(() => users.id, { onDelete: 'cascade' }),
|
||||
enabled: integer('enabled', { mode: 'boolean' }).notNull().default(false),
|
||||
time: text('time').notNull().default('20:00'),
|
||||
reminders: text('reminders', { mode: 'json' }).$type<import('../reminders/contracts').ReminderEntry[]>(),
|
||||
quietStart: text('quiet_start').notNull().default('22:00'),
|
||||
quietEnd: text('quiet_end').notNull().default('08:00'),
|
||||
updatedAt: integer('updated_at').notNull(),
|
||||
@@ -78,9 +79,10 @@ export const reminderSettings = sqliteTable('reminder_settings', {
|
||||
export const reminderDeliveries = sqliteTable('reminder_deliveries', {
|
||||
id: text('id').primaryKey(),
|
||||
userId: text('user_id').notNull().references(() => users.id, { onDelete: 'cascade' }),
|
||||
slot: text('slot').notNull().default('*'),
|
||||
date: text('date').notNull(), status: text('status').notNull(),
|
||||
retryAt: integer('retry_at'), updatedAt: integer('updated_at').notNull(),
|
||||
}, t => [uniqueIndex('reminder_deliveries_user_date_idx').on(t.userId, t.date)]);
|
||||
}, t => [uniqueIndex('reminder_deliveries_user_date_slot_idx').on(t.userId, t.date, t.slot)]);
|
||||
export const reminderWorkerState = sqliteTable('reminder_worker_state', {
|
||||
id: text('id').primaryKey(), blockedUntil: integer('blocked_until').notNull(),
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user