# Friends and Accounts System 

## V1: basic feature set

# !!!(THIS DOCUMENT IS A DRAFT)!!!

## 

Each account represents a user
- Email/password login, with password reset and account recovery settings.
- Have avatar settings tied to user accounts.
- Accounts with Steam/Oculus profile:
    - Steam and Oculus "prefills" user profiled variable with default, but people can change username and profile photo after the fact - these are independant of the steam and oculus info.
- Users can edit profile basics (email, username)
- Users can log in and out.

Friends system V1 Feature Set
- To add a friend, Logged-in user creates an invite (internally, invite contains a sender account id and a recipient account id).
- Logged-in users can see pending invites they've made or received.
- Logged-in user can reject an invite (just deletes it for now)
- Logged-in user can accept an invite (friend id gets copied to user's friends list).
- Logged-in user can view all friends (paginated)
- Logged-in user can see status of all friends (online vs offline)
- Room invite system: Logged-in user can invite anyone on their friends list into a room:
    - Internally sends an invite message to the friend
    - If friend is online, they should see the invite message ASAP.
- Logged-in user can Block/remove a friend.
- Room invites should be deleted if the room is deleted from signal server.