Name | DBO | DTO |
---|
- Message
(Immutable after creation) | - Primary key: Message ID
- Foreign key: CreatedBy (UserGroup)
- RecipientType (stringEnum ObjectType)
- Recipients (gzip-blob of longs)
- Subject (nullable)
- Foreign key: S3 File Handle ID
- CreatedOn
- Foreign key: replyTo (Message ID) (nullable)
| - ID (derived from ID generator)
- CreatedBy (principal ID) (upon creation filled in for the authenticated user)
- RecipientBundle
- Subject (string, optional)
- S3 File Handle ID
- CreatedOn
- ReplyTo (optional)
|
| - Primary key: Thread Message ID
- Foreign key: Thread ID (is a Message ID)
- Recursive foreign key to primary key
| |
- ThreadObjectLinkMessage Thread Object
| - Foreign Primary key: Thread ID
- Unique key: Thread ID, Object ID, Object type
| |
| - Primary key: Message ID
- Up votes
- Down votes
| TBD |
| - Foreign key: Message ID
- Foreign key: Recipient ID (UserGroup)
- States: UNREAD, READ, ARCHIVED
| |
| - Foreign key: User ID (UserGroup)
- Etag
- Blob of settingsEtag
| - ID
- Notification levels
- Update to an owned entity
- Update to some favorite entity
- Team
- Message from user
- Mail to everyone
- Etc...
- Message receipt email (if more than one)
- Auto-mark mail as read if forwarded to email
|
| | Bundles the Message and Message Status |
| | - RecipientType
- May be a principal, entity, ...
- Array of IDs
- All IDs must be valid (404 otherwise)
|