...
Should we support attachments (might be synapse file handles)? mark-up/down?
Should Synapse keep a record of messages sent?
...
- myregence.com simply provides
- in box
- out box ("sent messages")
- display a message
- compose / send a message
- reply
- delete
- discovercard.com is similar to myregence: in box, display, sent messages, compose, NO delete (messages deleted after 30 days)
...
A possible design
include:
- add message object to synapse. Body is text, no attachments; services for create, read, delete, and various queries (get all messages I've created, get all messages sent to me, optionally filtered)
- add message status/annotation for <message,recipient>, esp. "READ", i.e. a user can mark that a message (possibly sent to them as well as others) has been read. Could also implement "DELETE" in this way (i.e the message is 'deleted' for a user though it is in the system).
- delete old messages (e.g. older than a month)
- authorization: any single user can send a message to any other single user, but to send to a Team requires MESSAGE permission on the Team, typically granted only to Team members.
- users controls whether message is sent by email or whether they go to their 'in box' to see messages (3rd option would be to be notified by email to go to Synapse in-box).
defer:
- messages and in-box quotas
- "following" entities and users
- notification of system events (e.g. deleting an entity)
- blocking senders
- distribution to groups other than individuals and teams