import { makeObservable, observable, action } from 'mobx'; export class Person { id; name; lastMessage = null; rooms = new Set(); status = 'Online'; constructor(id, name) { makeObservable(this, { name: observable, lastMessage: observable, rooms: observable, status: observable, setName: action, setLastMessage: action, addRoom: action, removeRoom: action, setStatus: action, }); this.id = id; this.name = name; } setName(name) { this.name = name; } setLastMessage(message) { this.lastMessage = message; } addRoom(room) { this.rooms.add(room); } removeRoom(room) { this.rooms.delete(room); } setStatus(status) { this.status = status; this.rooms.forEach(room => { room.addStatusUpdate(this, status); }); } }