Due to the way they work, we need to provide both the last message id of a channel and the read state for it (last read message id & mention count)
I decoupled the lastMessageId from DomainChannel to avoid unnecessary updates and made it be stored separately in MessageStore. A flow for "new message ids" isn't really needed because we already essentially have one, that being the regular message event which the ChannelViewModel now subscribes to
Mention count & marking a channel read will come later
Adds support for unread indicators logic
Due to the way they work, we need to provide both the last message id of a channel and the read state for it (last read message id & mention count)
I decoupled the lastMessageId from DomainChannel to avoid unnecessary updates and made it be stored separately in MessageStore. A flow for "new message ids" isn't really needed because we already essentially have one, that being the regular message event which the ChannelViewModel now subscribes to
Mention count & marking a channel read will come later