SearchManager:
ClaudioBooking Manager:
ArmorHotel Manager:
KavisanUserManager:
PabloDer SearchManager verwaltet die Suche nach Hotels, verfügbaren Zimmern und Zimmereinzelheiten. Zusätzlich enthält er Funktionen zur Validierung von Benutzereingaben und Datumsformaten.
get_all_cities_with_hotels:
Ruft eine Liste von Städten mit Hotels ab.get_available_rooms:
get_available_hotels_by_city_stars_and_guests:
get_room_details:
Holt Details zu verfügbaren Zimmern in einem bestimmten Hotel ab.check_user_input(question, valid):
Validieren von Benutzereingaben anhand get_date_input(prompt):
Validieren und Parsen von Benutzereingaben für einDatum im Format "TT.MM.JJJJ".
Konsolenschnittstelle
Der BaseManager übernimmt die Verwaltung der Datenbank-Sitzung (_session), die für die Ausführung von Datenbankabfragen verwendet wird. Abgeleitete Klassen können somit direkt auf die Datenbank zugreifen, ohne eigene Sitzungen erstellen zu müssen.
select_all(self, query: Select):
Wird im Hotelmanager verwendet, um alle Ergebnisse als Liste zurückzuerhalten.select_one(self, query: Select):
Wird im UserManager verwendet, um einen spezifischen Benutzer basierend auf Benutzername und Passwort basierend auf dem Login abzurufen.Die Klasse HotelManager kümmert sich um die Verwaltung von Hotels. Sie kann Hotels hinzufügen, entfernen und aktualisieren. Außerdem verwaltet sie die zugehörigen Zimmer und Adressen der Hotels.
__init__(self, db_file: Path):
Initialisiert den HotelManager mit der angegebenen Datenbankdatei, add_hotel:
Fügt ein Hotel mit dem angegebenen Namen, Sternen, Adresse und Zimmer hinzu.remove_hotel:
Entfernt das Hotel mit der angegebenen ID aus der Datenbank.get_all_hotels:
Gibt eine Liste aller Hotels in der Datenbank zurück.update_hotel:
Aktualisiert den Namen und die Sterne des Hotels mit der angegebenen ID.update_address:
Aktualisiert die Adresse mit der angegebenen ID.update_room:
Aktualisiert die Zimmereinzelheiten mit der angegebenen aktuellen Zimmernummer.get_rooms_by_hotel_id:
Ruft alle Zimmer für das Hotel mit der angegebenen ID ab.add_hotel_console:
Konsolenschnittstelle zum Hinzufügen eines neuen Hotels.update_hotel_console:
Konsolenschnittstelle zum Aktualisieren der Hoteldetails.remove_hotel_console:
Konsolenschnittstelle zum Entfernen eines Hotels.Konsolenschnittstelle Die Konsolenschnittstelle bietet Administratoren Optionen zur Verwaltung von Hotels:
Nur Benutzer mit der Administratorrolle können auf die Funktionen von HotelManager zugreifen.
Im UserManager kann man sich anmelden (login_user) oder registrieren (register_user).
login_user:
Überprüft, ob der Benutzername und das Passwort übereinstimmen.register_user:
Registriert einen neuen Benutzer, nachdem überprüft wurde, get_current_user:
Gibt den aktuell angemeldeten Benutzer zurück.is_admin:
Überprüft, ob der angemeldete Benutzer ein Administrator ist.Der Einstiegspunkt der Anwendung befindet sich im Block if __name__ == '__main__':
,
der die Datenbank initialisiert und die Hauptmenüschleife startet.
Der BookingManager erweitert BaseManager und bietet Methoden zur Verwaltung von Buchungen:
get_bookings_of(guest_id):
Ruft Buchungen für einen bestimmten Gast ab.create_booking:
Erstellt eine neue Buchung.get_available_rooms:
Ruft verfügbare Zimmer in einem Hotel für einen bestimmten Zeitraum und eine bestimmte Gästeanzahl ab.get_all_bookings:
Ruft alle Buchungen ab.get_bookings_by_hotel:
Ruft Buchungen für ein bestimmtes Hotel ab.get_guest(id):
Ruft Gastdetails anhand der ID ab.create_guest:
Fordert den Benutzer auf, Gastdetails einzugeben und erstellt einen neuen Gast.update_booking:
Aktualisiert die Details einer Buchung.delete_booking:
Löscht eine Buchung.update_room_availability:
Aktualisiert den Verfügbarkeitsstatus eines Zimmers.update_room_price:
Aktualisiert den Preis eines Zimmers.download_booking_details:
Lädt Buchungsdetails in eine Textdatei herunter.display_hotels:
Zeigt eine Liste verfügbarer Hotels an.display_rooms:
Zeigt eine Liste verfügbarer Zimmer an.handle_guest_session:
Verwaltet die Sitzung für einen Gast und ermöglicht ihm, neue Buchungen zu erstellen.handle_admin_session:
Verwaltet die Sitzung für einen Administrator und ermöglicht ihm, Hotels und Buchungen zu verwalten.handle_registered_user_session:
Verwaltet die Sitzung für einen registrierten Benutzer und ermöglicht ihm, seine Buchungen anzusehen und zu verwalten.Das Hauptmenü bietet Optionen, als Gast fortzufahren,
sich anzumelden oder die Anwendung zu beenden.
Je nach Auswahl des Benutzers wird zur entsprechenden Sitzungsverwaltungsfunktion
navigiert.