Name | DBO | Migration | DTO |
---|
(Immutable after creation) | - Primary key: ID
- Foreign key: CreatedBy (UserGroup)
- Foreign key: MessageBody (S3 File Handle ID)
- Self foreign key: InReplyTo (ID) (nullable)
- Etag
- CreatedOn
| Backup via ID Note: Etag is required because MessageStatus is mutable. | Interface - ID
- CreatedBy (principal ID)
- S3 File Handle ID
- inReplyTo (optional)
- CreatedOn
|
(Immutable after creation) | - Foreign key: ID (MessageContent)
- Subject (nullable)
| Secondary to MessageContent | Implements MessageContent - Subject (string, optional)
- List of recipient IDs
|
(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
| Secondary to MessageContent | Implements MessageContent |
MessageInReplyToRoot (Immutable after creation) | - Primary key: MessageContentID (FK to MessageContent)
- Foreign key: InReplyToRootID
- Recursive foreign key to primary key
| Secondary to MessageContent | n/a |
| - Primary key: Message ID
- Up votes
- Down votes
| | |
| - Foreign key: User ID (UserGroup)
- Etag
- Blob of settings
| | - 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)
|