Name | DBO | Migration | DTO |
---|
(Immutable after creation) | - Primary key: ID
- Foreign key: CreatedBy (UserGroup)
- Foreign key: MessageBody (S3 File Handle ID)
- Etag
- CreatedOn
| Backup via ID Note: Etag is required because MessageStatus is mutable. | Interface - ID
- CreatedBy (principal ID)
- S3 File Handle ID
- CreatedOn
|
(Immutable after creation) | - Foreign key: ID (MessageContent)
- Subject (nullable)
- Self foreign key: InReplyTo (ID) (nullable)
- Foreign key: InReplyToRootId
- Recursive foreign key to primary key
| Secondary to MessageContent | Implements MessageContent - Subject (string, optional)
- List of recipient IDs
- inReplyTo (optional)
- inReplyToRoot (optional)
|
(Immutable after creation) | - Foreign key: ID (MessageContent)
- Foreign key: Recipient ID (UserGroup)
| Secondary to MessageContent | |
| - Foreign key: ID (MessageContent)
- Foreign key: Recipient ID (UserGroup)
- States: UNREAD, READ, ARCHIVED
| Secondary to MessageContent | |
(Immutable after creation) | - Foreign key: ID (MessageContent)
- Target type (Enum ObjectType)
- Target ID
- TBD: references to other Comments in the conversation*
| Secondary to MessageContent | Implements MessageContent |
| - Primary key: Message ID
- Up votes
- Down votes
- Is-comment-inappropriate votes
| TBD | |
| - Foreign key: User ID (UserGroup)
- Etag
- Blob of settings
| TBD | - 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
- Blacklist of blocked users
|
| | | Bundles the MessageToUser and Message Status |