DMs and groups share one conversations table
Separate tables would make a direct message cheaper — two user ids and no membership rows. They would also duplicate messages, attachments, reactions and pins across two paths forever, and every feature would have to be built twice. One table with a type column costs two member rows for a DM and makes everything downstream singular.