Versions Compared

Key

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

...

Objects

NameDBOMigration

DTO

  •  MessageContent

(Immutable after creation)

  • Primary key: ID
  • Foreign key: CreatedBy (
PK
  • UserGroup)

Etag

  • Foreign key: MessageBody (S3 File Handle ID)

CreatedOn

CreatedBy (FK to JDOUSERGROUP)

  • Self foreign key: InReplyTo (
FK to
  • ID
column
  • ) (nullable)
backUpID is
  • Etag
  • CreatedOn

Backup via ID

Note:  Etag is required because MessageStatus is mutable

interface (superclass represented as JSON schema)

ID (derived from ID generator)

.

Interface

  • ID
  • CreatedBy (principal ID) (upon creation filled in for the authenticated user)RecipientBundleList of recipient IDs
  • S3 File Handle IDCreatedOn
  • inReplyTo * (optional)
  • CreatedOn
  •  MessageToUser

(Immutable after creation)MessageContentID (FK to

  • Foreign key: ID (MessageContent)
  • Subject (nullable)

Secondary to MessageContent

backUpID is MessageContentID

implements Implements MessageContent

  • Subject (string, optional)
  • List of recipient IDs
  •  MessageRecipient

(Immutable after creation)

FK to MessageContent

FK to JDOUSERGOUP
  • Foreign key: ID (MessageContent)
  • Foreign key: Recipient ID (UserGroup)

Secondary to MessageContent

backUpID is MessageContentID
n/a 
  •  MessageStatus
  • Foreign key: MessageContentIDID (MessageContent)
  • Foreign key: Recipient ID (UserGroup)
  • States: UNREAD, READ, ARCHIVED

Secondary to MessageContent

backUpID is MessageContentID

  • ID
  • Recipient
  • State
  •  Comment

(Immutable after creation)MessageContentID (FK to

  • Foreign key: ID (MessageContent)
TargetType
  • Target type (Enum ObjectType)
TargetID
  • Target ID

Secondary to MessageContent

backUpID is MessageContentIDimplements MessageContent

Implements MessageContent

  • Target type
  • Target ID

MessageInReplyToRoot

(Immutable after creation)

  • Primary key: MessageContentID (FK to MessageContent)
  • Foreign key: InReplyToRootID
    • Recursive foreign key to primary key

Secondary to MessageContent

backUpID is MessageContentID

n/a
  •  Message votes
  • Primary key: Message ID
  • Up votes
  • Down votes
 
  • ID
  • Up
  • Down
  •  MessageSettings
  • 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
  •  MessageBundle
  Bundles the Message and Message Status
  •  RecipientBundle
  
  • RecipientType
    • May be a principal, entity, ...
  • Array of IDs
    • All IDs must be valid (404 otherwise)

...