User:Brion VIBBER/Notification notes

It may be useful to generalize the message notification systems. This would cover several uses:


 * Per-user event notifications
 * "You have new messages"
 * "Your user accounts have been merged"
 * "A page you created was deleted"
 * "You've been blocked"
 * "Your (user) rights have changed"
 * Global site-notice style announcements
 * "Server downtime coming for maintenance"
 * "Register for the election"
 * "Donate to the fund drive"
 * Consistent appearance and dismissable behavior
 * Past notifications could be reviewed in a consistent way
 * Site notices could be more easily managed on-wiki
 * The localization system could be used for on-wiki notifications

Since it would be prohibitive to bulk-insert global messages for every user, most likely there would be two queue tables:
 * per-user queue
 * global queue
 * new items from the global queue are copied into per-user queues as needed to mark them as seen or dismissed

Fields...
 * unique id
 * posted timestamp
 * seen timestamp
 * dismissed timestamp
 * expiry timestamp
 * custom text field
 * message key for localizable text(?)


 * Add a BLOB column to store a serialised array of "parameters", akin to logging.log_params - these could be used as parameters to the message, or whatever, to provide information when building the notification back up in the UI language. robchurch | talk 15:44, 20 June 2007 (UTC)