Have two references of one collection to another

Hello, I have the following model for a chat application (only between two people).

The scheme for the collection of chats was designed taking into account the following flow:

  1. The chats of each user are loaded through the owner field.

  2. Each user has a copy of a chat so each chat will also have a copy of each message. This in order to be able to delete conversations and messages independently

  3. The target field that refers to the receiver, is used to insert or update (upsert) the chats when new messages arrive with the query { owner: senderId, target: receiverId }

  4. The last4 field is only used for app notifications.

I have 2 questions regarding the explained design:

  1. Is it a good design? I applied the extended reference pattern by copying the recipient’s avatar and name in each chat, but I don’t see the need to apply more patterns.

psdt: Although the schema versionning pattern and the bucket pattern are ideal for versioning and packaging of data, it is not my priority at the moment.

  1. It is a bad practice to have two references of the same collection in another ?, as it happens with the collection of chats with the owner and target fields.

Thank you very much !