This commit is contained in:
2020-05-15 19:57:07 +00:00
parent fc335c5f72
commit 64848c2a3e
3 changed files with 58 additions and 24 deletions

View File

@@ -1,5 +1,16 @@
# Notification specifications
############### LAST STATE OF THIS 2020-05-15 12:56:44:
Had gone over cases and triaged them, not super fleshed out yet how it works behind the scenes but basically
same as v7, object save triggers notification check which puts items into and takes them out of notify event table
recurring job processes them
Ideally would like to see event of interest check with cached data but need to consider how many different things would be in that, could be huge
since I will be adding so many new notification types and they are more complex.
Important cases:
client viewing ui (was popup in v7) https://rockfish.ayanova.com/default.htm#!/rfcaseEdit/3783
Restrict to involved people only: https://rockfish.ayanova.com/default.htm#!/rfcaseEdit/892
@@ -7,8 +18,10 @@ Restrict to involved people only: https://rockfish.ayanova.com/default.htm#!/rfc
ALL EVENT TYPES INITIAL RELEASE
================================
## OLD
WorkOrderStatusChange [PERSONAL, GENERAL]
WorkOrderStatusChange [GENERAL]
ContractExiring (User notify, add more notify before time frames in cases) [GENERAL]
CSRAccepted [CUSTOMER]
CSRRejected [CUSTOMER]
@@ -26,11 +39,12 @@ ScheduleMarkerImminent (will rename) [PERSONAL]
ScheduleMarkerCreated (will rename) [PERSONAL]
WorkorderItemScheduledUserCreatedUpdated [PERSONAL]
WorkorderItemScheduledUserEventImminent [PERSONAL]
WorkorderCloseByDatePassed (user) [personal?, general]
WorkorderStatusChanged (user) [PERSONAL, GENERAL]
WorkorderItemOutsideServiceOverdue [personal?, general]
WorkorderItemOutsideServiceReceivedBack [PERSONAL, GENERAL]
WorkorderItemPartRequestPartsReceived [PERSONAL, GENERAL]
WorkorderCloseByDatePassed (user) [general]
WorkorderStatusChanged (user) [GENERAL]
WorkorderItemOutsideServiceOverdue [general]
WorkorderItemOutsideServiceReceivedBack [GENERAL]
WorkorderItemPartRequestPartsReceived [GENERAL]
## NEW
Daily_Notify_health_check (biz and ops) [GENERAL]
@@ -41,13 +55,19 @@ WorkorderItemPartRequestCreated case 3652 [GENERAL]
ContractExpiring - Customer version in addition to User version [CUSTOMER]
WorkorderTotalExceedsThreshold - Custom notification case 1745 "the andy" [GENERAL]
WorkOrderStatusAge "deadman" delivery if not changed before XX time period [GENERAL]
QuoteStatusAge [PERSONAL (prepared by), GENERAL]
UnitWarranyExpiry case 1361 [GENERAL]
UnitMeterReadingMultipleExceeded case 1254 [GENERAL]
DefaultNotification case 3792 used for all system and old Quick notifications [EVERYONE]
TagNotification case 3799
PERSONAL? OR COVERED BY TAG FILTER ALREADY BETTER?
WorkorderItemPartRequestPartsReceivedWhenIAmScheduled [PERSONAL]
WorkorderItemOutsideServiceReceivedBackWhenIAmScheduled
WorkorderItemOutsideServiceOverdueWhenIAmScheduled
WorkorderCloseByDatePassedWhenIAmScheduled
WorkorderStatusChangedWhenIAmScheduled [PERSONAL]
Not for certain but in the hopper to think about:
@@ -71,13 +91,22 @@ General
All notifications can be optionally filtered IN or OUT via tags on notification related object. I.E. a workorder status change can be ignored or only see if it's tagged "region-new-york" etc
All users can receive general notifications which come from both the system itself and from other users using the new ad-hoc send notification from any form
UI
Subscribe from the object itself's menu rather than centralized subscription setup (new)
Admin can still subscribe users on their behalf (new)
SYSTEM
-=-=-=-=-=-=-=-=-=-
EVENT_OF_INTEREST_CLASS
Internal workings:
Should cache the event of interest for quick saving processing and save db getting hammered every time an object is saved
One enum list of NotificationType for any possible notification that can be processed
Notify type is divided by actual type and then by actual delivery method
No delivery schedule anymore, let user decide how to handle at their device end, not our concern, just deliver immediately always
@@ -85,6 +114,7 @@ Notify BEfore shoudl support multiple time frames, not just one
Users not involved should not be notified, have choice on that`
e.g. if a user is not booked on a workorder and is just a lowly tech they don't care about other workorder status changes
Types of notifications sitting in delivery queue:
Deliver if something not changed before date "DEADMAN SWITCH"
upon change that negates it from source object it removes the event as no longer required
@@ -134,11 +164,5 @@ Maintenance
MISC
=-=-
- NOTIFICATION SUBSCRIPTIONS
- NOTIFICATION DELIVERIES (user or all if manager account)
- What is "Slack"?
- should we tie into it for notifications?