@startuml
actor User
participant Hotel
participant Room
participant Reservation

User -> Hotel: makeReservation(guestName, roomNumber)
activate Hotel
Hotel -> Hotel : validateRoom(roomNumber)
Hotel -> Room: isOccupied(roomNumber)
activate Room
Room -> Hotel: occupiedStatus
deactivate Room
Hotel -> Reservation: createReservation(guestName, roomNumber)
activate Reservation
Reservation -> Hotel: reservation
deactivate Reservation
Hotel -> Hotel: addReservation(reservation)
Hotel -> Room: setOccupied(true)
activate Room
Room -> Hotel: UpdateRoom
deactivate Room
Hotel -> User: "Reservation Successful, Room number: roomNumber"

@enduml