Get desktop application:
View/edit binary Protocol Buffers messages
Chat represents the 'metadata' about a Chat. A chat is fundamentally broken down into: 1. Metadata (id, type info, etc) 2. Message Log (log of actual messages) 3. Pointer States This represents (1), while the other two only have accessors via APIs, since implementations of (2) and (3) are highly varied between server and clients.
Used in:
,Contains minimal chat info depending on the type of chat. Note that this oneof is required.
Optional chat theme of this chat.
Optional mute status of this chat. Note that this is caller sensitive as it denotes whether or not the _caller_ has muted the chat. Multiple members of a chat might see different mute statuses here.
An optional preview of the chat. This is only to be used for rendering purposes on the chat list stream. It must not be used for any chat storage.
NameUpdate indicates that there is an update to the name of the chat.
If ProfilePicUpdate is set, then there is an update to the chat's profile picture.
If ParticipansChange is set, then the participants of the chat has changed, and clients should call out to the respective services to refresh their participants list.
todo: fill me out
Used in:
(message has no fields)
Used in:
Note: If name is an empty string, then this is indicitive of the name being cleared. It is up to the client to determine what should be rendered.
Used in:
todo: deal with diffing? perhaps anything larger than a certain size will not be participants
Used in:
Used in:
Message represents the a message. For now, it only includes the bare minimum for message routing / MLSM model. A fully defined message model still needs to be defined (initial work was started multiple times).
Note: ID will be constructed in such a way that ID(M_n) < ID(M_n+1), where n is the order in the underlying message log (as seen by server). If time was a universal truth, and servers had 100% accuracy, ID(M_n) would be the time that the server inserted it into the log. The ID(M_n) < ID(M_n+1) invariant is the _only_ assumption that can be made about the ID. The comparator is a lexical sort. IDs are _only_ gaurenteed to be unique within a given Chat. Collisions can (and will) occure cross-chats. For example, upgrading a 1:1 -> Group chat results in a log copy, which (intentionally) retains the IDs.
Only used for rendering purposes.
Used in:
,Used in: