import json
from channels.generic.websocket import AsyncJsonWebsocketConsumer

class HotelBookingConsumer(AsyncJsonWebsocketConsumer):
    async def connect(self):
        self.booking_id = self.scope['url_route']['kwargs']['booking_id']
        self.room_group_name = f'hotel_booking_{self.booking_id}'

        # Join room group
        await self.channel_layer.group_add(
            self.room_group_name,
            self.channel_name
        )

        await self.accept()

    async def disconnect(self, close_code):
        # Leave room group
        await self.channel_layer.group_discard(
            self.room_group_name,
            self.channel_name
        )

    # Receive message from WebSocket
    async def receive_json(self, content):
        pass

    # Handle status update type events
    async def status_update(self, event):
        await self.send_json({
            'type': 'status_update',
            'status': event.get('status'),
            'booking_id': event.get('booking_id'),
            'message': event.get('message')
        })
