0% found this document useful (0 votes)
9 views4 pages

Code 5class Guest

The document defines classes for Guests, Reservations, and a GuestTracker. A Guest has a name, email, reservation, and can add/remove service requests. A Reservation stores room details. GuestTracker manages a list of Guests, allows adding/removing Guests and service requests, retrieving Guests by date range or email, and generating a report for a Guest's information and requests. Sample code shows creating Guests, adding them to a GuestTracker, managing requests, and generating a report.

Uploaded by

Harrison Adom
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views4 pages

Code 5class Guest

The document defines classes for Guests, Reservations, and a GuestTracker. A Guest has a name, email, reservation, and can add/remove service requests. A Reservation stores room details. GuestTracker manages a list of Guests, allows adding/removing Guests and service requests, retrieving Guests by date range or email, and generating a report for a Guest's information and requests. Sample code shows creating Guests, adding them to a GuestTracker, managing requests, and generating a report.

Uploaded by

Harrison Adom
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 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', '[email protected]', reservation1)

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

guest2 = Guest('Robert Zigah', '[email protected]', reservation2)

tracker = GuestTracker()

tracker.add_guest(guest1)

tracker.add_guest(guest2)

# Add service requests for a guest

tracker.add_service_request('[email protected]', 'Extra towels')


tracker.add_service_request('[email protected]', 'Room cleaning')

# Remove a service request for a guest

tracker.remove_service_request('[email protected]', 'Extra towels')

# Generate report for a guest

tracker.generate_guest_report('[email protected]')

# 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