from flask_jwt_extended import get_jwt_identity, jwt_required from flask_socketio import emit, join_room from infra.server import socketio from repos.reservation_repo import ReservationRepository @socketio.on('connect') #@jwt_required() def handle_connect(): #current_user = get_jwt_identity() #print(f'Client connected: {current_user}') emit('status', {'message': 'Connected'}) @socketio.on('disconnect') def handle_disconnect(): print('Client disconnected') @socketio.on('subscribe_reservations') def handle_subscribe(data): date = data.get('date') room_id = data.get('room_id') if room_id: room = f"{date}_{room_id}" filters = {'date': date, 'room_id': room_id} else: room = date filters = {'date': date} join_room(room) reservations = ReservationRepository.list_all(filters) emit('reservations_update', reservations) def notify_clients(date, room_id=None): all_reservations = ReservationRepository.list_all({'date': date}) socketio.emit('reservations_update', all_reservations, room=date) if room_id: room_reservations = [r for r in all_reservations if r.room_id == room_id] socketio.emit('reservations_update', room_reservations, room=f"{date}_{room_id}")