ChannelEntity(c: Channel)
create a ChannelStateEntity from a Channel object
ChannelEntity(type: String, channelId: String)
ChannelStateEntity stores both the channel information as well as references to all of the channel's state
note that we don't store channel watchers or watcher_count. as that information is likely to go stale when you go offline.
messages are stored on their own table for easier pagination and updates