package pt.ist.messaging.domain; class MessagingSystem { } class Sender { String fromName; String fromAddress; } class Message { String subject; String body; String htmlBody; DateTime created; DateTime sent; String bccString; } class ReplyTo { } class ConcreteReplyTo extends ReplyTo { String replyToAddress; } class CurrentUserReplyTo extends ReplyTo { } class UserReplyTo extends ReplyTo { } class MessageTask extends .pt.ist.fenixframework.plugins.scheduler.domain.Task { } class SenderGroup extends .pt.ist.bennu.core.domain.groups.PersistentGroup { } relation MyOrgMessagingSystem { .pt.ist.bennu.core.domain.MyOrg playsRole myOrg { multiplicity 1..1; } MessagingSystem playsRole messagingSystem; } relation MessagingSystemSender { MessagingSystem playsRole messagingSystem { multiplicity 1..1; } Sender playsRole sender { multiplicity *; } } relation MessagingSystemMessage { MessagingSystem playsRole messagingSystem { multiplicity 1..1; } Message playsRole Message { multiplicity *; } } relation MessagingSystemMessagePending { MessagingSystem playsRole messagingSystemFromPendingDispatch; Message playsRole messagePendingDispatch { multiplicity *; } } relation SenderPersistentGroupMembers { Sender playsRole senderFromMembers { multiplicity *; } .pt.ist.bennu.core.domain.groups.PersistentGroup playsRole members { multiplicity 1..1; } } relation SenderPersistentGroupRecipients { Sender playsRole senderFromRecipients { multiplicity *; } .pt.ist.bennu.core.domain.groups.PersistentGroup playsRole recipients { multiplicity *; } } relation SenderMessage { Sender playsRole sender { multiplicity 1..1; } Message playsRole message { multiplicity *; } } relation SenderReplyTo { Sender playsRole sender { multiplicity *; } ReplyTo playsRole replyTo { multiplicity *; } } relation MessageReplyTo { Message playsRole message { multiplicity *; } ReplyTo playsRole replyTo { multiplicity *; } } relation UserReplyToUser { UserReplyTo playsRole userReplyTo; .pt.ist.bennu.core.domain.User playsRole user { multiplicity 1..1; } } relation MessageRecipientTo { Message playsRole messageFromTos { multiplicity *; } .pt.ist.bennu.core.domain.groups.PersistentGroup playsRole to { multiplicity *; } } relation MessageRecipientCc { Message playsRole messageFromCc { multiplicity *; } .pt.ist.bennu.core.domain.groups.PersistentGroup playsRole cc { multiplicity *; } } relation MessageRecipientBcc { Message playsRole messageFromBcc { multiplicity *; } .pt.ist.bennu.core.domain.groups.PersistentGroup playsRole bcc { multiplicity *; } } relation MessageUser { Message playsRole message { multiplicity *; } .pt.ist.bennu.core.domain.User playsRole user { multiplicity 1..1; } } relation EmailMessage { .pt.ist.emailNotifier.domain.Email playsRole email { multiplicity *; } Message playsRole message; } relation SenderVirtualHost { Sender playsRole sender { multiplicity *; } .pt.ist.bennu.core.domain.VirtualHost playsRole virtualHost { multiplicity 1..1; } } relation SystemSenderVirtualHost { Sender playsRole systemSender; .pt.ist.bennu.core.domain.VirtualHost playsRole virtualHostFromSystemSender; }