role table with id and namerole_user_assignment table with role_id, user_id to give a user a rolerole_channel_permission table with permission enum "react" "reply_in_thread" and pointer to channel_id, role_id to give users of a certain role a permission in a certain channel.message_reaction on a message for users who have a role that has a role_channel_permission in the given channel to "react".