Collections structure for multi company register application?

I would like to try to build Restaurant App for Public Register.

  • Register new user account for the new company (Admin)
  • One company could have multiple shop (Branches). Ex: A shop, B shop…
  • Owner user (Admin) could create new user for system usage

Could help me for Collection structure, for example

- users: {
  username,
  profile: {...}
}

- registers: {
  companyName:
  ownerId: (userId),
  ... 
}
- office/shop:{
  name,
  registerId, 
}

- transactions: {
  tranDate,
  officeId, 
}
..
```

I recommend using a package like mizzao:partitioner (or my own lighterweight fork wildhart:partitioner).

Once you partition all your collections and assign a new Admin user to their own groupId, any new users they create, or any documents created by any user will automatically inherit the same groupId, and any search or update of documents are restricted to documents in the same groupId.

Thanks for your reply.
My question is Model Collection/Schema Structure to manage example my application?