Improve meeting reminders with new scheduler and improved push notifications
Add a new background scheduler to trigger meeting reminders, implement atomic claims for push notifications to prevent duplicates, and add an `ignoreConnected` option to push notifications. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 77cfe984-2c65-4152-bb7a-0df28274fe66 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: a63187bd-4947-4e1f-8959-e8d68ff96a8c Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/c3c252e4-c83d-40ca-9fff-99a3ea60701e/77cfe984-2c65-4152-bb7a-0df28274fe66/97ZFaoX Replit-Helium-Checkpoint-Created: true
This commit is contained in:
@@ -252,6 +252,11 @@ export const executiveMeetingAlertStateTable = pgTable(
|
||||
.references(() => usersTable.id, { onDelete: "cascade" }),
|
||||
dismissed: boolean("dismissed").notNull().default(false),
|
||||
acknowledged: boolean("acknowledged").notNull().default(false),
|
||||
// #558: Set once by the server-side scheduler the moment a Web
|
||||
// Push reminder has been fired for this (meeting, user) pair, so a
|
||||
// single tick (or any later tick that re-runs the same query) does
|
||||
// not double-ring the iPad. NULL = no push has been sent yet.
|
||||
pushedAt: timestamp("pushed_at", { withTimezone: true }),
|
||||
updatedAt: timestamp("updated_at", { withTimezone: true })
|
||||
.notNull()
|
||||
.defaultNow()
|
||||
|
||||
Reference in New Issue
Block a user