Messaging services
Questions
When we send emails to users, should we download the body of the email and send it in the email body? Or should we tell them to visit the portal?
At the moment, the body of the email == the body of the message. And files are assumed to be stored as plain text.
Should notifications of this nature be implemented now or later?
Also, if the affected entity has child entities, should those be included in the notification?
How should we tie Entities to users in terms of notifications?
Ownership? << It might be this.
Favorites? << It might be this.
Permissions? << I don't think it's this.
Something else? << It could be a completely new set of services, allowing users to enable/disable notification. (Could be initialized from Favorites and Owners.)
Objects
Name | DBO | Migration | DTO |
|---|---|---|---|
MessageContent (Immutable after creation) |
| Backup via ID Note: Etag is required because MessageStatus is mutable. | Interface
|
MessageToUser (Immutable after creation) |
| Secondary to MessageContent | Implements MessageContent
|
MessageRecipient (Immutable after creation) |
| Secondary to MessageContent |
|
MessageStatus |
| Secondary to MessageContent |
|
Comment (Immutable after creation) |
TBD: references to other Comments in the conversation* | Secondary to MessageContent | Implements MessageContent
|
MessagingSettings | Part of UserProfile Use existing services to support this | Secondary to UserGroup | Should email be sent? Should emailed messages be READ automatically? Other options (as necessary) Blacklist of blocked users |
CommentVotes |
| TBD |
|
MessageBundle |
|
| Bundles the MessageToUser and Message Status |
MessageRecipientSet |
|
|
|
'* per Marcel, Comments may have a more complex set of references/relationships than Messages to Users have. Rather than just 'inReplyTo', it might be that one Comment is an 'answer' to another comment which is a question. Further, the multiple answers to a question may have 'previous' references which order them.
Other TODOs
Throttle message input
When adding a new person to a conversation, the new person should get the whole history of the conversation
Configure Amazon SES
Add methods to send messages according to templates