We need to design what type of user status we support. From XMPP we can get:
away -- The entity is temporarily away. chat -- The entity is actively interested in chatting. dnd -- The entity is busy (dnd = "Do Not Disturb"). xa -- The entity is away for an extended period (xa = "eXtended Away").
I'd add 'online' which is not defined there. Also, how about 'offline'? Should we allow logged users to set their status to 'offline'?
And probably we should have an additional "comment" somewhere (users table?).