ConversationService Specification
From MacroDeckDevWiki
This is a draft document. It may change at any time.
ConversationService will provide logging for arbitrary conversation data. Its intended purpose is to store the conversations between ChatService users and also store the conversations from any other protocol if the user has a local client sending out data. The data will be searchable, taggable, and sharable.
Contents |
Local Features
- Conversation creation/editing/etc. (messages are contained in conversations)
- Message creation/editing/etc. (within a conversation)
- Status updates (within a conversation)
- Non-message data creation/editing/etc. (within a conversation)
Remote Features
- Conversation creation/editing/etc. (messages are contained in conversations)
- Message creation/editing/etc. (within a conversation)
- Status updates (within a conversation)
- Non-message data creation/editing/etc. (within a conversation)
Widget-Specific Features
- Conversation creation/editing/etc. (messages are contained in conversations)
- Message creation/editing/etc. (within a conversation)
- Status updates (within a conversation)
- Non-message data creation/editing/etc. (within a conversation)
Application-Specific Features
This service is designed to be functionally similar on applications outside of MacroDeck as well as widgets on MacroDeck.
Synchronizable Data
- Conversations (it does not make sense to synchronize individual messages, since they'll lack context)
Interaction With Other Services
- UserService will be used for access control.
- DataService will be used for storing conversations. The message data should be stored in the stringdata field and any extra data (sender, font style, etc.) should be stored as a Hash in objectdata.
Technical Data
UUIDs
No UUIDs are currently defined.
APIs
No APIs are currently defined.
Front End
This service may not need a front-end. I think perhaps a widget should be provided for searching through logs, and the search engine should definitely return data from here. So if there is a front-end, it shouldn't be too involved other than showing all of the known conversations for your user and letting you view them.

