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)
- Set 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 |
| 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
|
| - Primary key: Message ID
- Up votes
- Down votes
- Is-comment-inappropriate votes
| TBD | |
| | | Bundles the MessageToUser and Message Status |
| | | |