Updated architecture for generating conversation logs (aka. chat documents) between two contacts
User A has an array to store all conversations, where the key is user B's id, and the value is the chat document's id.
User B also has the same thing, but with user A's id as the key and the value as the same chat document id (they share the same conversation!)

This chat document id is contained in the Chat model, which will eventually store all the chat messages