This commit is contained in:
2020-07-08 23:59:56 +00:00
parent 94b57946f3
commit 71ff6e2624

View File

@@ -22,7 +22,10 @@ BACKEND TODO / SYSTEM FOR RAVEN
TODO: need a utility that can hash any adhoc collection of fields to work with various notify related objects
TODO: client and user notify together so any changes required to support that need to be sussed out here as much as possible in advance
TODO: Auto delete APP notifications older than 90 days automatically by some kind of sweeper job
TODO: auto delete notifyeventlog entries older than 90 days automatically by job
todo:
CREATING NOTIFICATIONS
OBJECTS Saving an object triggers notification processing for that object:
@@ -64,29 +67,21 @@ OBJECTS Saving an object triggers notification processing for that object:
SMTP
APP (meaning in notifications system inside application basically the old POPUP)
TABLES WORKSHEET
v7
aNotifyEventOfInterest - subscribercount, ayatype, eventtype, "guidvalue" (extra info),created/creator/updated/updater
v8
similar but with hash maybe for faster checking? and no created/modifed stuff, guid value would maybe be some other thing to accomodate RAVEN as it seems to deal with id of specific or maybe things like status
v7 this is the main table where events are stored and delivered from (saved message is for quick notification)
anotifyevent - ayatype, objectid, eventtype, appliestouserid (single subscriber event), aEventDate, ASAVEDMESSAGE
v7 all subscriptions - used to process deliveries (checks for generic event to see who subscribes to it)
anotifysubscription - aNotifySubscription (aID, aUserID, aRootObjectType, aEventType, aPendingSpan, aPendingSpanUnit, aGuidValue, aCreated, aModified, aCreator,aModifier)
v8 (timespan can be a single value, no need for units and shit in the db, just days or whatever the smallest unit is)
v7 - logs deliveries, removes any older than 7 days (that's short!?)
aNotifyDeliveryLog (aRootObjectType, aRootObjectID, aEventType,aGuidValue, aDeliveryDate, aToUserID, aDeliveryMethod, aDelivered, aErrorMessage, aToClientID )
v7 - NotifyPopup contains UI deliveries
aNotifyPopUp (aID, aRootObjectType, aRootObjectID, aDeliveryDate, aToUserID, aMessage )
UI TODO
Subscription form for user
Subscription form for client (personal or set by administrator, probably set by administrator)
Mass set for many users at once
V8 TABLES / OBJECTS
JOBS
NotifySweeper
APP notifications - deletes all unreceived APP notifications older than 90 days
NotifyEvent -
deletes any notifyevent with no event date created more than 90 days ago
If has event date and it's passed then deletes it if created more than 90 days ago (pretty sure there are no back dated events, once it's passed it's past)
ALL COREBIZ
Need CRUD check for notification events
Need to handle check of new tags vs existing tags (delta of tags) for any notification type
@@ -131,7 +126,7 @@ notifysubscription table - contains all user (and customer) subscriptions to eve
(aID, subscriberId, subscriberAyaType, ayatype, aEventType, advancenoticetimespan, aGuidValue, aDeliveryMethod, deliveryaddress, attachreportid, intags, outtags, HASH)
Notifyevent table - contains all events, created by updating objects or directly in some cases and used by generator for processing as deliveries
ayatype, objectid, eventtype, appliestouserid (single subscriber event), aEventDate, ASAVEDMESSAGE, HASH?
created (timestamp used to clean out old stuck events), ayatype, objectid, eventtype, appliestouserid (single subscriber event), aEventDate, ASAVEDMESSAGE, HASH?
notifydeliverylog table - intended for troubleshooting, logs deliveries with a cap on how many records it retains. Keeping this as a separate and distinct OPS ui thing
(aRootObjectType, aRootObjectID, aEventType,aGuidValue, aDeliveryDate, aToUserID, aDeliveryMethod, aDelivered, aErrorMessage, aToClientID )