You are on page 1of 3

class Guest:

def __init__(self, name, email, reservation):


self.name = name
self.email = email
self.reservation = reservation

class Reservation:
def __init__(self, room_type, check_in_date, check_out_date):
self.room_type = room_type
self.check_in_date = check_in_date
self.check_out_date = check_out_date

class GuestTracker:
def __init__(self):
self.guests = []

def add_guest(self, guest):


self.guests.append(guest)

def remove_guest(self, guest):


self.guests.remove(guest)

def get_guest_by_email(self, email):


for guest in self.guests:
if guest.email == email:
return guest
return None
def get_guests_by_date_range(self, start_date, end_date):
result = []
for guest in self.guests:
reservation = guest.reservation
if reservation.check_in_date >= start_date and reservation.check_out_date <= end_date:
result.append(guest)
return result

# Example usage
reservation1 = Reservation('Standard', '2023-07-10', '2023-07-15')
guest1 = Guest('Harrison Adom', 'hadom2607@example.com', reservation1)

reservation2 = Reservation('Deluxe', '2023-07-12', '2023-07-17')


guest2 = Guest('Robert Zigah', Robzigah@example.com', reservation2)

tracker = GuestTracker()
tracker.add_guest(guest1)
tracker.add_guest(guest2)

# Get guest by email


guest = tracker.get_guest_by_email('hadom2607@example.com')
if guest:
print('Guest found:', guest.name)
else:
print('Guest not found')

# Get guests by date range


guests = tracker.get_guests_by_date_range('2023-07-11', '2023-07-14')
print('Guests in date range:')
for guest in guests:
print(guest.name)
# The GuestTracker class acts as a container for managing guest information, including adding
and removing guests, and providing methods to retrieve guest information based on email or date
range.

You might also like