class CollaborativeEditor:
def __init__(self, doc_id):
self.doc_id = doc_id
self.users = {}
self.cursors = {}
self.changes = []
self.conflicts = []
def add_user(self, user_id, name):
self.users[user_id] = {
'name': name,
'joined_at': time.time(),
'active': True
}
self.broadcast_presence(user_id, 'joined')
def remove_user(self, user_id):
if user_id in self.users:
self.users[user_id]['active'] = False
self.cursors.pop(user_id, None)
self.broadcast_presence(user_id, 'left')