Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

NameDBO

DTO

  •  Message
  • Primary key: Message ID
  • Foreign key: CreatedBy (UserGroup)
  • RecipientType (string)
  • Recipients (gzip-blob)
  • Subject
  • S3 File Handle
  • CreatedOn
  •  Foreign key: parent Message ID
  • ID (derived from ID generator)
  • Thread ID (optional or derived from ID generator)
    • (question) Seems like this field can be hidden, instead users supply a replyTo parameter/field, which fills in this value
  • To (RecipientBundle)
  • Subject (string)
  • Message Body (string, no attachments)
  • CreatedOn
  • CreatedBy (principal ID) (upon creation filled in for the authenticated user)
  • RecipientBundle
    • List of recipient IDs
  • Subject (string)
  • S3 File Handle
  • CreatedOn
  •  Message thread
  • Primary key: Thread ID
  • Foreign key: Message ID
 
  •  Message votes
  • Primary key: Message ID
  • Up votes
  • Down votes
TBD
  •  MessageStatus
  • Foreign key: Message ID
  • Foreign key: Recipient ID (UserGroup)
  • States: UNREAD, READ, ARCHIVED
  • ID
  • Recipient
  • State
  •  NodeMessages
  • Foreign key: Thread ID
  • Unique key: Object ID, Object type
 
  •  MessageSettings
  • Foreign key: User ID (UserGroup)
  • Blob of settings
  • Etag
  • 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
  •  MessageBundle
 Bundles the User Message and Message Status
  •  RecipientBundle
 
  • RecipientType
    • May be a principal, entity, ...
  • Array of IDs
    • All IDs must be valid (404 otherwise)

...