Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

class Guest:

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

self.name = name

self.email = email

self.reservation = reservation

self.service_requests = []

def add_service_request(self, service_request):

self.service_requests.append(service_request)

def remove_service_request(self, service_request):

self.service_requests.remove(service_request)

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

def update_guest_reservation(self, guest, new_reservation):

guest.reservation = new_reservation

def generate_guest_report(self, guest_email):

guest = self.get_guest_by_email(guest_email)

if guest:

print("Guest Report for:", guest.name)

print("Email:", guest.email)

print("Room Type:", guest.reservation.room_type)

print("Check-in Date:", guest.reservation.check_in_date)

print("Check-out Date:", guest.reservation.check_out_date)

print("Service Requests:")

for request in guest.service_requests:

print("-", request)

else:
print('Guest not found.')

def add_service_request(self, guest_email, service_request):

guest = self.get_guest_by_email(guest_email)

if guest:

guest.add_service_request(service_request)

else:

print('Guest not found.')

def remove_service_request(self, guest_email, service_request):

guest = self.get_guest_by_email(guest_email)

if guest:

guest.remove_service_request(service_request)

else:

print('Guest not found.')

# 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)

# Add service requests for a guest

tracker.add_service_request('hadom2607@example.com', 'Extra towels')


tracker.add_service_request('hadom2607@example.com', 'Room cleaning')

# Remove a service request for a guest

tracker.remove_service_request('hadom2607@example.com', 'Extra towels')

# Generate report for a guest

tracker.generate_guest_report('hadom2607@example.com')

# the Guest class is enhanced to include service request functionality. Guests can add and remove
service requests through the add_service_request and remove_service_request methods. The
GuestTracker class is updated to include methods for managing guest service requests and generating
guest reports.

The generate_guest_report method retrieves a guest by email and prints a report with guest
information, reservation details, and service requests.

You might also like